d_ovlp_fade4

This commit is contained in:
Jcw87
2024-01-30 03:30:57 -08:00
parent af8b2dd2db
commit cb11285a10
2 changed files with 165 additions and 28 deletions
+85
View File
@@ -0,0 +1,85 @@
#ifndef D_OVLP_FADE4_H
#define D_OVLP_FADE4_H
#include "d/d_drawlist.h"
#include "f_op/f_op_overlap_mng.h"
class dDlst_snapShot2_c : public dDlst_base_c {
public:
~dDlst_snapShot2_c() {}
void draw();
/* 0x04 */ void* field_0x4;
/* 0x08 */ u16 field_0x8;
/* 0x0A */ u16 field_0xa;
};
class dDlst_2Dt_Sp_c : public dDlst_base_c {
public:
~dDlst_2Dt_Sp_c() {}
void draw();
void init(ResTIMG*, f32, f32, f32, f32, _GXColor);
/* 0x04 */ GXTexObj field_0x4;
/* 0x24 */ ResTIMG* field_0x24;
/* 0x28 */ void* field_0x28;
/* 0x2C */ u32 field_0x2c;
/* 0x30 */ u32 field_0x30;
/* 0x34 */ f32 field_0x34;
/* 0x38 */ f32 field_0x38;
/* 0x3C */ f32 field_0x3c;
/* 0x40 */ f32 field_0x40;
/* 0x44 */ GXColor field_0x44;
/* 0x48 */ f32 field_0x48;
};
class dDlst_2DtEff1_c : public dDlst_base_c {
public:
~dDlst_2DtEff1_c() {}
void init(_GXColor);
void draw();
/* 0x004 */ f32 field_0x4;
/* 0x008 */ u8 field_0x8[0xC - 0x8];
/* 0x00C */ dDlst_snapShot2_c field_0xc;
/* 0x018 */ dDlst_2Dt_Sp_c field_0x18;
/* 0x064 */ dDlst_snapShot2_c field_0x64;
/* 0x070 */ dDlst_2Dt_Sp_c field_0x70;
/* 0x0BC */ dDlst_snapShot2_c field_0xbc;
/* 0x0C8 */ dDlst_2Dt_Sp_c field_0xc8;
/* 0x114 */ short field_0x114;
/* 0x118 */ short field_0x118;
};
class dOvlpFd4_c : public overlap_task_class {
public:
dOvlpFd4_c();
void drawFadeOut();
void drawFadeIn();
void execFirstSnap();
void execFadeOut();
void execNextSnap();
void execFadeIn();
/* 0x0CC */ void (dOvlpFd4_c::*field_0xcc)();
/* 0x0D8 */ void (dOvlpFd4_c::*field_0xd8)();
/* 0x0E4 */ dDlst_snapShot2_c field_0xe4;
/* 0x0F0 */ dDlst_snapShot2_c field_0xf0;
/* 0x0FC */ dDlst_2Dt_Sp_c field_0xfc;
/* 0x148 */ dDlst_2Dt_Sp_c field_0x148;
/* 0x194 */ dDlst_2DtEff1_c field_0x194;
/* 0x2AC */ u8 field_0x2ac;
/* 0x2AD */ u8 field_0x2ad;
/* 0x2AE */ u8 field_0x2ae;
/* 0x2B0 */ short field_0x2b0;
/* 0x2B4 */ f32 field_0x2b4;
/* 0x2B8 */ u8 field_0x2b8[0x2BC - 0x2B8];
/* 0x2BC */ f32 field_0x2bc;
/* 0x2C0 */ u8 field_0x2c0;
/* 0x2C1 */ u8 field_0x2c1;
/* 0x2C2 */ u8 field_0x2c2[0x2C8 - 0x2C2];
/* 0x2C8 */ f32 field_0x2c8;
/* 0x2CC */ u8 field_0x2cc;
};
#endif /* D_OVLP_FADE4_H */
+80 -28
View File
@@ -3,8 +3,12 @@
// Translation Unit: d_ovlp_fade4.cpp
//
#include "d_ovlp_fade4.h"
#include "dolphin/types.h"
#include "d/d_ovlp_fade4.h"
#include "d/d_com_inf_game.h"
#include "d/d_procname.h"
#include "f_op/f_op_overlap.h"
#include "m_Do/m_Do_graphic.h"
#include "new.h"
/* 80224390-80224484 .text init__15dDlst_2DtEff1_cF8_GXColor */
void dDlst_2DtEff1_c::init(_GXColor) {
@@ -22,12 +26,12 @@ void dDlst_snapShot2_c::draw() {
}
/* 80224748-80224884 .text dDlst_setResTimgObj__FPC7ResTIMGP9_GXTexObjPvUlUl */
void dDlst_setResTimgObj(const ResTIMG*, _GXTexObj*, void*, unsigned long, unsigned long) {
void dDlst_setResTimgObj(const ResTIMG*, _GXTexObj*, void*, u32, u32) {
/* Nonmatching */
}
/* 80224884-802249C4 .text cnvAddress__FffPfPf */
void cnvAddress(float, float, float*, float*) {
void cnvAddress(f32, f32, f32*, f32*) {
/* Nonmatching */
}
@@ -37,13 +41,35 @@ void dDlst_2Dt_Sp_c::draw() {
}
/* 80224CC4-80224DBC .text init__14dDlst_2Dt_Sp_cFP7ResTIMGffff8_GXColor */
void dDlst_2Dt_Sp_c::init(ResTIMG*, float, float, float, float, _GXColor) {
void dDlst_2Dt_Sp_c::init(ResTIMG*, f32, f32, f32, f32, _GXColor) {
/* Nonmatching */
}
/* 80224DBC-80224F98 .text __ct__10dOvlpFd4_cFv */
dOvlpFd4_c::dOvlpFd4_c() {
/* Nonmatching */
field_0x2ac = 1;
field_0xcc = &dOvlpFd4_c::execFirstSnap;
field_0xd8 = &dOvlpFd4_c::drawFadeOut;
if (mBase.mProcName == PROC_OVERLAP4) {
field_0xfc.init(mDoGph_gInf_c::mFrameBufferTimg, 0.0f, 0.0f, 640.0f, 480.0f, g_saftyWhiteColor);
} else {
GXColor tmp = {0, 0, 0, 0};
field_0xfc.init(mDoGph_gInf_c::mFrameBufferTimg, 0.0f, 0.0f, 640.0f, 480.0f, tmp);
}
field_0x148.init(mDoGph_gInf_c::mFrameBufferTimg, 0.0f, 0.0f, 640.0f, 480.0f, g_whiteColor);
field_0xe4.field_0x4 = mDoGph_gInf_c::mFrameBufferTex;
field_0xe4.field_0x8 = 640;
field_0xe4.field_0xa = 480;
field_0xf0.field_0x4 = mDoGph_gInf_c::mFrameBufferTex;
field_0xf0.field_0x8 = 640;
field_0xf0.field_0xa = 480;
field_0x194.init(g_saftyWhiteColor);
dComIfGp_2dShowOff();
field_0x2b0 = 2;
field_0x2ae = 39;
field_0x2b4 = 0.0f;
field_0x2ad = 0;
}
/* 80224F98-80225060 .text drawFadeOut__10dOvlpFd4_cFv */
@@ -77,42 +103,68 @@ void dOvlpFd4_c::execFadeIn() {
}
/* 802255F4-80225658 .text dOvlpFd4_Draw__FP10dOvlpFd4_c */
void dOvlpFd4_Draw(dOvlpFd4_c*) {
/* Nonmatching */
s32 dOvlpFd4_Draw(dOvlpFd4_c* i_this) {
void (dOvlpFd4_c::*tmp)() = i_this->field_0xd8;
if (tmp) {
(i_this->*i_this->field_0xd8)();
}
return 1;
}
/* 80225658-80225684 .text dOvlpFd4_Execute__FP10dOvlpFd4_c */
void dOvlpFd4_Execute(dOvlpFd4_c*) {
/* Nonmatching */
s32 dOvlpFd4_Execute(dOvlpFd4_c* i_this) {
(i_this->*i_this->field_0xcc)();
return 1;
}
/* 80225684-8022568C .text dOvlpFd4_IsDelete__FP10dOvlpFd4_c */
void dOvlpFd4_IsDelete(dOvlpFd4_c*) {
/* Nonmatching */
s32 dOvlpFd4_IsDelete(dOvlpFd4_c*) {
return 1;
}
/* 8022568C-80225694 .text dOvlpFd4_Delete__FP10dOvlpFd4_c */
void dOvlpFd4_Delete(dOvlpFd4_c*) {
/* Nonmatching */
s32 dOvlpFd4_Delete(dOvlpFd4_c*) {
return 1;
}
/* 80225694-802256C0 .text dOvlpFd4_Create__FPv */
void dOvlpFd4_Create(void*) {
/* Nonmatching */
s32 dOvlpFd4_Create(void* i_this) {
new (i_this) dOvlpFd4_c();
return 4;
}
/* 802256C0-80225810 .text __dt__15dDlst_2DtEff1_cFv */
dDlst_2DtEff1_c::~dDlst_2DtEff1_c() {
/* Nonmatching */
}
overlap_method_class l_dOvlpFd4_Method = {
(process_method_func)dOvlpFd4_Create,
(process_method_func)dOvlpFd4_Delete,
(process_method_func)dOvlpFd4_Execute,
(process_method_func)dOvlpFd4_IsDelete,
(process_method_func)dOvlpFd4_Draw,
};
/* 80225810-8022586C .text __dt__14dDlst_2Dt_Sp_cFv */
dDlst_2Dt_Sp_c::~dDlst_2Dt_Sp_c() {
/* Nonmatching */
}
/* 8022586C-802258C8 .text __dt__17dDlst_snapShot2_cFv */
dDlst_snapShot2_c::~dDlst_snapShot2_c() {
/* Nonmatching */
}
overlap_process_profile_definition g_profile_OVERLAP4 = {
fpcLy_ROOT_e,
2,
fpcPi_CURRENT_e,
PROC_OVERLAP4,
&g_fpcLf_Method.mBase,
sizeof(dOvlpFd4_c),
0,
0,
&g_fopOvlp_Method,
0x1E5,
&l_dOvlpFd4_Method,
};
overlap_process_profile_definition g_profile_OVERLAP5 = {
fpcLy_ROOT_e,
2,
fpcPi_CURRENT_e,
PROC_OVERLAP5,
&g_fpcLf_Method.mBase,
sizeof(dOvlpFd4_c),
0,
0,
&g_fopOvlp_Method,
0x1E6,
&l_dOvlpFd4_Method,
};