diff --git a/include/JSystem/JFramework/JFWDisplay.h b/include/JSystem/JFramework/JFWDisplay.h index f481003d7..42039d6b0 100644 --- a/include/JSystem/JFramework/JFWDisplay.h +++ b/include/JSystem/JFramework/JFWDisplay.h @@ -65,14 +65,14 @@ public: static JFWDisplay* getManager() { return sManager; } - int startFadeOut(int param_0) { + BOOL startFadeOut(int param_0) { if (mpFader != NULL) { return mpFader->startFadeOut(param_0); } return 1; } - int startFadeIn(int param_0) { + BOOL startFadeIn(int param_0) { if (mpFader != NULL) { return mpFader->startFadeIn(param_0); } diff --git a/include/SSystem/SComponent/c_request.h b/include/SSystem/SComponent/c_request.h index 3133a5021..8b1b37730 100644 --- a/include/SSystem/SComponent/c_request.h +++ b/include/SSystem/SComponent/c_request.h @@ -4,204 +4,9 @@ #include "dolphin/types.h" struct request_base_class { - struct { - u8 flag0 : 1; - u8 flag1 : 1; - u8 flag2 : 6; - } field_0x0; - u8 field_0x1; - u8 field_0x2; - u8 field_0x3; - u16 field_0x4; - u8 field_0x6; - u8 field_0x7; - u32 field_0x8; - s8 field_0xc; - u8 field_0xd; - u8 field_0xe; - u8 field_0xf; - int* field_0x10; - // u8 field_0x11; - // u8 field_0x12; - // u8 field_0x13; - u8 field_0x14; - u8 field_0x15; - u8 field_0x16; - u8 field_0x17; - u8 field_0x18; - u8 field_0x19; - u8 field_0x1a; - u8 field_0x1b; - u8 field_0x1c; - u8 field_0x1d; - u8 field_0x1e; - u8 field_0x1f; - u32* field_0x20; - u8 field_0x24; - u8 field_0x25; - u8 field_0x26; - u8 field_0x27; - u8 field_0x28; - u8 field_0x29; - u8 field_0x2a; - u8 field_0x2b; - u8 field_0x2c; - u8 field_0x2d; - u8 field_0x2e; - u8 field_0x2f; - u8 field_0x30; - u8 field_0x31; - u8 field_0x32; - u8 field_0x33; - u8 field_0x34; - u8 field_0x35; - u8 field_0x36; - u8 field_0x37; - u8 field_0x38; - u8 field_0x39; - u8 field_0x3a; - u8 field_0x3b; - u8 field_0x3c; - u8 field_0x3d; - u8 field_0x3e; - u8 field_0x3f; - u8 field_0x40; - u8 field_0x41; - u8 field_0x42; - u8 field_0x43; - u8 field_0x44; - u8 field_0x45; - u8 field_0x46; - u8 field_0x47; - u8 field_0x48; - u8 field_0x49; - u8 field_0x4a; - u8 field_0x4b; - u8 field_0x4c; - u8 field_0x4d; - u8 field_0x4e; - u8 field_0x4f; - u8 field_0x50; - u8 field_0x51; - u8 field_0x52; - u8 field_0x53; - u8 field_0x54; - u8 field_0x55; - u8 field_0x56; - u8 field_0x57; - u8 field_0x58; - u8 field_0x59; - u8 field_0x5a; - u8 field_0x5b; - u8 field_0x5c; - u8 field_0x5d; - u8 field_0x5e; - u8 field_0x5f; - u8 field_0x60; - u8 field_0x61; - u8 field_0x62; - u8 field_0x63; - u8 field_0x64; - u8 field_0x65; - u8 field_0x66; - u8 field_0x67; - u8 field_0x68; - u8 field_0x69; - u8 field_0x6a; - u8 field_0x6b; - u8 field_0x6c; - u8 field_0x6d; - u8 field_0x6e; - u8 field_0x6f; - u8 field_0x70; - u8 field_0x71; - u8 field_0x72; - u8 field_0x73; - u8 field_0x74; - u8 field_0x75; - u8 field_0x76; - u8 field_0x77; - u8 field_0x78; - u8 field_0x79; - u8 field_0x7a; - u8 field_0x7b; - u8 field_0x7c; - u8 field_0x7d; - u8 field_0x7e; - u8 field_0x7f; - u8 field_0x80; - u8 field_0x81; - u8 field_0x82; - u8 field_0x83; - u8 field_0x84; - u8 field_0x85; - u8 field_0x86; - u8 field_0x87; - u8 field_0x88; - u8 field_0x89; - u8 field_0x8a; - u8 field_0x8b; - u8 field_0x8c; - u8 field_0x8d; - u8 field_0x8e; - u8 field_0x8f; - u8 field_0x90; - u8 field_0x91; - u8 field_0x92; - u8 field_0x93; - u8 field_0x94; - u8 field_0x95; - u8 field_0x96; - u8 field_0x97; - u8 field_0x98; - u8 field_0x99; - u8 field_0x9a; - u8 field_0x9b; - u8 field_0x9c; - u8 field_0x9d; - u8 field_0x9e; - u8 field_0x9f; - u8 field_0xa0; - u8 field_0xa1; - u8 field_0xa2; - u8 field_0xa3; - u8 field_0xa4; - u8 field_0xa5; - u8 field_0xa6; - u8 field_0xa7; - u8 field_0xa8; - u8 field_0xa9; - u8 field_0xaa; - u8 field_0xab; - u8 field_0xac; - u8 field_0xad; - u8 field_0xae; - u8 field_0xaf; - u8 field_0xb0; - u8 field_0xb1; - u8 field_0xb2; - u8 field_0xb3; - u8 field_0xb4; - u8 field_0xb5; - u8 field_0xb6; - u8 field_0xb7; - u8 field_0xb8; - u8 field_0xb9; - u8 field_0xba; - u8 field_0xbb; - u8 field_0xbc; - u8 field_0xbd; - u8 field_0xbe; - u8 field_0xbf; - u32 field_0xc0; - // u8 field_0xc1; - // u8 field_0xc2; - // u8 field_0xc3; - request_base_class* field_0xc4; - // u8 field_0xc5; - // u8 field_0xc6; - // u8 field_0xc7; - u32* field_0xc8; + u8 flag0 : 1; + u8 flag1 : 1; + u8 flag2 : 6; }; int cReq_Is_Done(request_base_class*); diff --git a/include/f_op/f_op_overlap.h b/include/f_op/f_op_overlap.h index 2f69bd3a8..87aafefe0 100644 --- a/include/f_op/f_op_overlap.h +++ b/include/f_op/f_op_overlap.h @@ -1,6 +1,9 @@ + #ifndef F_F_OP_OVERLAP_H_ #define F_F_OP_OVERLAP_H_ -static s32 fopOvlp_Draw(void* param_1); +#include "f_pc/f_pc_leaf.h" + +extern leafdraw_method_class g_fopOvlp_Method; #endif diff --git a/include/f_op/f_op_overlap_mng.h b/include/f_op/f_op_overlap_mng.h index 897f83208..4423ce105 100644 --- a/include/f_op/f_op_overlap_mng.h +++ b/include/f_op/f_op_overlap_mng.h @@ -2,20 +2,24 @@ #define F_F_OP_OVERLAP_MNG_H_ #include "f_pc/f_pc_leaf.h" +#include "f_op/f_op_overlap_req.h" struct request_base_class; +struct overlap_method_class { + /* 0x00 */ leafdraw_method_class base; +}; + class overlap_task_class : public leafdraw_class { public: - /* 0xC0 */ leafdraw_method_class* field_0xc0; - /* 0xC4 */ u8 field_0xc4; // used as both u8 and request_base_class* ?? - /* 0xC8 */ int field_0xc8; - -}; // Size: 0xD8? + /* 0xC0 */ overlap_method_class* mSubMtd; + /* 0xC4 */ request_base_class mRq; + /* 0xC8 */ int mScenePId; +}; // Size: 0xCC struct overlap_process_profile_definition { /* 0x00 */ leaf_process_profile_definition base; - /* 0x24 */ leafdraw_method_class* mSubMtd; + /* 0x24 */ overlap_method_class* mSubMtd; }; // Size: 0x28 int fopOvlpM_SceneIsStop(); @@ -23,12 +27,12 @@ int fopOvlpM_SceneIsStart(); void fopOvlpM_Management(); int fopOvlpM_IsOutReq(overlap_task_class* i_this); void fopOvlpM_Done(overlap_task_class* i_this); -void fopOvlpM_ToldAboutID(unsigned int param_1); +void fopOvlpM_ToldAboutID(u32 pid); int fopOvlpM_IsPeek(); int fopOvlpM_IsDone(); int fopOvlpM_IsDoingReq(); int fopOvlpM_ClearOfReq(); -request_base_class* fopOvlpM_Request(s16 param_1, u16 param_2); +request_base_class* fopOvlpM_Request(s16 procName, u16 peekTime); int fopOvlpM_Cancel(); void fopOvlpM_Init(); diff --git a/include/f_op/f_op_overlap_req.h b/include/f_op/f_op_overlap_req.h index 7a71f937e..7d01ee36d 100644 --- a/include/f_op/f_op_overlap_req.h +++ b/include/f_op/f_op_overlap_req.h @@ -2,32 +2,32 @@ #define F_F_OP_OVERLAP_REQ_H_ #include "SSystem/SComponent/c_phase.h" +#include "SSystem/SComponent/c_request.h" -typedef struct layer_class layer_class; -struct request_base_class; +struct layer_class; +class overlap_task_class; -class overlap_request_class { +class overlap_request_class : public request_base_class { public: - s8 field_0x0; - u8 field_0x1; - s16 field_0x2; - u16 field_0x4; - u16 mPeektime; - u32 field_0x8; - u32 field_0xc; - s16 field_0x10; - u8 field_0x12; - u8 field_0x13; - int field_0x14; - request_of_phase_process_class field_0x18; - u8* field_0x20; - layer_class* pCurrentLayer; + /* 0x01 */ u8 field_0x1; + /* 0x02 */ s16 mDelay; + /* 0x04 */ u16 field_0x4; + /* 0x06 */ u16 mPeektime; + /* 0x08 */ u32 mIsPeek; + /* 0x0C */ u32 field_0xc; + /* 0x10 */ s16 mProcName; + /* 0x12 */ u8 field_0x12; + /* 0x13 */ u8 field_0x13; + /* 0x14 */ int mPId; + /* 0x18 */ request_of_phase_process_class mPhs; + /* 0x20 */ overlap_task_class * mpTask; + /* 0x24 */ layer_class* pCurrentLayer; }; + int fopOvlpReq_OverlapClr(overlap_request_class* param_1); -request_base_class* fopOvlpReq_Request(overlap_request_class*, s16, u16); -int fopOvlpReq_Handler(overlap_request_class*); -int fopOvlpReq_Cancel(overlap_request_class*); -static int fopOvlpReq_phase_Done(overlap_request_class* param_1); -int fopOvlpReq_Is_PeektimeLimit(overlap_request_class*); +overlap_request_class* fopOvlpReq_Request(overlap_request_class*, s16, u16); +s32 fopOvlpReq_Handler(overlap_request_class*); +BOOL fopOvlpReq_Cancel(overlap_request_class*); +BOOL fopOvlpReq_Is_PeektimeLimit(overlap_request_class*); #endif diff --git a/include/f_pc/f_pc_stdcreate_req.h b/include/f_pc/f_pc_stdcreate_req.h index dcd4144da..d2ec4fa6a 100644 --- a/include/f_pc/f_pc_stdcreate_req.h +++ b/include/f_pc/f_pc_stdcreate_req.h @@ -24,11 +24,6 @@ s32 fpcSCtRq_phase_Done(standard_create_request_class*); s32 fpcSCtRq_Handler(standard_create_request_class* pStdCreateReq); s32 fpcSCtRq_Delete(standard_create_request_class*); s32 fpcSCtRq_Cancel(standard_create_request_class*); -s32 fpcSCtRq_Request(layer_class* param_1, s16 param_2, stdCreateFunc param_3, void* param_4, - void* param_5); - -extern "C" { -void fpcSCtRq_Request__FP11layer_classsPFPvPv_iPvPv(void); -} +s32 fpcSCtRq_Request(layer_class* param_1, s16 param_2, stdCreateFunc param_3, void* param_4, void* param_5); #endif diff --git a/include/m_Do/m_Do_graphic.h b/include/m_Do/m_Do_graphic.h index 024800f41..43b4f1272 100644 --- a/include/m_Do/m_Do_graphic.h +++ b/include/m_Do/m_Do_graphic.h @@ -29,8 +29,8 @@ public: mFader = fader; } - static int startFadeOut(int param_0) { return JFWDisplay::getManager()->startFadeOut(param_0); } - static int startFadeIn(int param_0) { return JFWDisplay::getManager()->startFadeIn(param_0); } + static BOOL startFadeOut(int param_0) { return JFWDisplay::getManager()->startFadeOut(param_0); } + static BOOL startFadeIn(int param_0) { return JFWDisplay::getManager()->startFadeIn(param_0); } static void setFadeColor(JUtility::TColor color) { mFader->mColor.set(color); } static void setClearColor(JUtility::TColor color) { JFWDisplay::getManager()->setClearColor(color); diff --git a/src/SSystem/SComponent/c_request.cpp b/src/SSystem/SComponent/c_request.cpp index a72a8fd97..0e3444c87 100644 --- a/src/SSystem/SComponent/c_request.cpp +++ b/src/SSystem/SComponent/c_request.cpp @@ -7,30 +7,29 @@ #include "dolphin/types.h" /* 80245364-80245390 .text cReq_Is_Done__FP18request_base_class */ -int cReq_Is_Done(request_base_class* param_0) { - if (param_0->field_0x0.flag1 == 1) { - param_0->field_0x0.flag1 = 0; +int cReq_Is_Done(request_base_class* i_this) { + if (i_this->flag1 == 1) { + i_this->flag1 = 0; return 1; } return 0; } /* 80245390-802453C0 .text cReq_Done__FP18request_base_class */ -void cReq_Done(request_base_class* param_0) { - param_0->field_0x0.flag0 = 0; - param_0->field_0x0.flag1 = 1; - param_0->field_0x0.flag2 = 0; +void cReq_Done(request_base_class* i_this) { + i_this->flag0 = 0; + i_this->flag1 = 1; + i_this->flag2 = 0; } - /* 802453C0-802453E0 .text cReq_Command__FP18request_base_classUc */ -void cReq_Command(request_base_class* param_0, u8 param_1) { - cReq_Create(param_0, param_1); +void cReq_Command(request_base_class* i_this, u8 param_1) { + cReq_Create(i_this, param_1); } /* 802453E0-80245410 .text cReq_Create__FP18request_base_classUc */ -void cReq_Create(request_base_class* param_0, u8 param_1) { - param_0->field_0x0.flag0 = 1; - param_0->field_0x0.flag1 = 0; - param_0->field_0x0.flag2 = param_1; +void cReq_Create(request_base_class* i_this, u8 param_1) { + i_this->flag0 = 1; + i_this->flag1 = 0; + i_this->flag2 = param_1; } diff --git a/src/d/actor/d_a_agbsw0.cpp b/src/d/actor/d_a_agbsw0.cpp index fe64b5b4b..31ba2f2af 100644 --- a/src/d/actor/d_a_agbsw0.cpp +++ b/src/d/actor/d_a_agbsw0.cpp @@ -2514,7 +2514,7 @@ static actor_method_class l_daAgbsw0_Method = { (process_method_func)daAgbsw0_Draw, }; -extern actor_process_profile_definition g_profile_AGBSW0 = { +actor_process_profile_definition g_profile_AGBSW0 = { fpcLy_CURRENT_e, 7, fpcPi_CURRENT_e, diff --git a/src/d/actor/d_a_alldie.cpp b/src/d/actor/d_a_alldie.cpp index 49995f024..67ceaf203 100644 --- a/src/d/actor/d_a_alldie.cpp +++ b/src/d/actor/d_a_alldie.cpp @@ -131,7 +131,7 @@ static actor_method_class l_daAlldie_Method = { (process_method_func)daAlldie_Draw, }; -extern actor_process_profile_definition g_profile_ALLDIE = { +actor_process_profile_definition g_profile_ALLDIE = { fpcLy_CURRENT_e, 2, fpcPi_CURRENT_e, diff --git a/src/d/actor/d_a_am.cpp b/src/d/actor/d_a_am.cpp index 8145a7ecd..0f2cad961 100644 --- a/src/d/actor/d_a_am.cpp +++ b/src/d/actor/d_a_am.cpp @@ -1445,7 +1445,7 @@ static actor_method_class l_daAM_Method = { (process_method_func)daAM_Draw, }; -extern actor_process_profile_definition g_profile_AM = { +actor_process_profile_definition g_profile_AM = { /* LayerID */ fpcLy_CURRENT_e, /* ListID */ 7, /* ListPrio */ fpcPi_CURRENT_e, diff --git a/src/d/actor/d_a_andsw0.cpp b/src/d/actor/d_a_andsw0.cpp index 81983cea5..d232c9380 100644 --- a/src/d/actor/d_a_andsw0.cpp +++ b/src/d/actor/d_a_andsw0.cpp @@ -354,7 +354,7 @@ static actor_method_class l_daAndsw0_Method = { (process_method_func)daAndsw0_Draw, }; -extern actor_process_profile_definition g_profile_ANDSW0 = { +actor_process_profile_definition g_profile_ANDSW0 = { fpcLy_CURRENT_e, 7, fpcPi_CURRENT_e, diff --git a/src/d/actor/d_a_andsw2.cpp b/src/d/actor/d_a_andsw2.cpp index 8d7c9e111..a1263bf2b 100644 --- a/src/d/actor/d_a_andsw2.cpp +++ b/src/d/actor/d_a_andsw2.cpp @@ -282,7 +282,7 @@ static actor_method_class l_daAndsw2_Method = { (process_method_func)daAndsw2_Draw, }; -extern actor_process_profile_definition g_profile_ANDSW2 = { +actor_process_profile_definition g_profile_ANDSW2 = { fpcLy_CURRENT_e, 7, fpcPi_CURRENT_e, diff --git a/src/d/actor/d_a_arrow.cpp b/src/d/actor/d_a_arrow.cpp index f219d67ac..8ef003d0e 100644 --- a/src/d/actor/d_a_arrow.cpp +++ b/src/d/actor/d_a_arrow.cpp @@ -1290,7 +1290,7 @@ actor_method_class daArrowMethodTable = { (process_method_func)daArrowDraw, }; -extern actor_process_profile_definition g_profile_ARROW = { +actor_process_profile_definition g_profile_ARROW = { /* LayerID */ fpcLy_CURRENT_e, /* ListID */ 9, /* ListPrio */ fpcLy_CURRENT_e, diff --git a/src/d/actor/d_a_bomb.cpp b/src/d/actor/d_a_bomb.cpp index 858a8d8b1..227e5d79c 100644 --- a/src/d/actor/d_a_bomb.cpp +++ b/src/d/actor/d_a_bomb.cpp @@ -1308,7 +1308,7 @@ actor_method_class l_daBomb_Method = { (process_method_func)daBomb_Draw, }; -extern actor_process_profile_definition g_profile_BOMB = { +actor_process_profile_definition g_profile_BOMB = { fpcLy_CURRENT_e, 7, fpcPi_CURRENT_e, diff --git a/src/d/actor/d_a_bomb2.cpp b/src/d/actor/d_a_bomb2.cpp index 0aaff5ab2..ab2f9297d 100644 --- a/src/d/actor/d_a_bomb2.cpp +++ b/src/d/actor/d_a_bomb2.cpp @@ -1074,7 +1074,7 @@ namespace daBomb2 { } } -extern actor_process_profile_definition g_profile_Bomb2 = { +actor_process_profile_definition g_profile_Bomb2 = { fpcLy_CURRENT_e, 7, fpcPi_CURRENT_e, diff --git a/src/d/actor/d_a_boss_item.cpp b/src/d/actor/d_a_boss_item.cpp index 3b8d44538..a290204aa 100644 --- a/src/d/actor/d_a_boss_item.cpp +++ b/src/d/actor/d_a_boss_item.cpp @@ -58,7 +58,7 @@ static actor_method_class daBossItem_METHODS = { (process_method_func)0, }; -extern actor_process_profile_definition g_profile_BOSSITEM = { +actor_process_profile_definition g_profile_BOSSITEM = { fpcLy_CURRENT_e, 7, fpcLy_CURRENT_e, diff --git a/src/d/actor/d_a_branch.cpp b/src/d/actor/d_a_branch.cpp index ce5167061..afba6596f 100644 --- a/src/d/actor/d_a_branch.cpp +++ b/src/d/actor/d_a_branch.cpp @@ -259,7 +259,7 @@ static actor_method_class l_daBranch_Method = { (process_method_func)daBranch_Draw, }; -extern actor_process_profile_definition g_profile_BRANCH = { +actor_process_profile_definition g_profile_BRANCH = { fpcLy_CURRENT_e, 7, fpcLy_CURRENT_e, diff --git a/src/d/actor/d_a_disappear.cpp b/src/d/actor/d_a_disappear.cpp index ab911114a..f67708150 100644 --- a/src/d/actor/d_a_disappear.cpp +++ b/src/d/actor/d_a_disappear.cpp @@ -130,7 +130,7 @@ actor_method_class l_daDisappear_Method = { (process_method_func)daDisappear_Draw, }; -extern actor_process_profile_definition g_profile_DISAPPEAR = { +actor_process_profile_definition g_profile_DISAPPEAR = { fpcLy_CURRENT_e, 7, fpcLy_CURRENT_e, diff --git a/src/d/actor/d_a_item.cpp b/src/d/actor/d_a_item.cpp index aabef656f..37fc302a2 100644 --- a/src/d/actor/d_a_item.cpp +++ b/src/d/actor/d_a_item.cpp @@ -1071,7 +1071,7 @@ static actor_method_class l_daItem_Method = { (process_method_func)daItem_Draw, }; -extern actor_process_profile_definition g_profile_ITEM = { +actor_process_profile_definition g_profile_ITEM = { /* LayerID */ fpcLy_CURRENT_e, /* ListID */ 7, /* ListPrio */ fpcPi_CURRENT_e, diff --git a/src/d/actor/d_a_kaji.cpp b/src/d/actor/d_a_kaji.cpp index cf1cd76c5..7ba25f45f 100644 --- a/src/d/actor/d_a_kaji.cpp +++ b/src/d/actor/d_a_kaji.cpp @@ -152,7 +152,7 @@ static actor_method_class daKajiMethodTable = { (process_method_func)daKajiDraw, }; -extern actor_process_profile_definition g_profile_Kaji = { +actor_process_profile_definition g_profile_Kaji = { fpcLy_CURRENT_e, 3, fpcLy_CURRENT_e, diff --git a/src/d/actor/d_a_kytag04.cpp b/src/d/actor/d_a_kytag04.cpp index 2d875e558..086e5175d 100644 --- a/src/d/actor/d_a_kytag04.cpp +++ b/src/d/actor/d_a_kytag04.cpp @@ -77,7 +77,7 @@ static actor_method_class l_daKytag04_Method = { (process_method_func)daKytag04_Draw, }; -extern actor_process_profile_definition g_profile_KYTAG04 = { +actor_process_profile_definition g_profile_KYTAG04 = { fpcLy_CURRENT_e, 7, fpcLy_CURRENT_e, diff --git a/src/d/actor/d_a_kytag05.cpp b/src/d/actor/d_a_kytag05.cpp index b4bdb72d2..5765d20bd 100644 --- a/src/d/actor/d_a_kytag05.cpp +++ b/src/d/actor/d_a_kytag05.cpp @@ -154,7 +154,7 @@ static actor_method_class l_daKytag05_Method = { (process_method_func)daKytag05_Draw, }; -extern actor_process_profile_definition g_profile_KYTAG05 = { +actor_process_profile_definition g_profile_KYTAG05 = { fpcLy_CURRENT_e, 7, fpcLy_CURRENT_e, diff --git a/src/d/actor/d_a_kytag06.cpp b/src/d/actor/d_a_kytag06.cpp index 1743abcf8..3550298af 100644 --- a/src/d/actor/d_a_kytag06.cpp +++ b/src/d/actor/d_a_kytag06.cpp @@ -81,7 +81,7 @@ static actor_method_class l_daKytag06_Method = { (process_method_func)daKytag06_Draw, }; -extern actor_process_profile_definition g_profile_KYTAG06 = { +actor_process_profile_definition g_profile_KYTAG06 = { fpcLy_CURRENT_e, 7, fpcLy_CURRENT_e, diff --git a/src/d/actor/d_a_magma.cpp b/src/d/actor/d_a_magma.cpp index b26e21441..b41a43f59 100644 --- a/src/d/actor/d_a_magma.cpp +++ b/src/d/actor/d_a_magma.cpp @@ -62,7 +62,7 @@ static actor_method_class l_daMagma_Method = { (process_method_func)0, }; -extern actor_process_profile_definition g_profile_MAGMA = { +actor_process_profile_definition g_profile_MAGMA = { fpcLy_CURRENT_e, 7, fpcPi_CURRENT_e, diff --git a/src/d/actor/d_a_mbdoor.cpp b/src/d/actor/d_a_mbdoor.cpp index 0db41691f..48c2ec8a7 100644 --- a/src/d/actor/d_a_mbdoor.cpp +++ b/src/d/actor/d_a_mbdoor.cpp @@ -622,7 +622,7 @@ static actor_method_class l_daMbdoor_Method = { (process_method_func)daMbdoor_Draw, }; -extern actor_process_profile_definition g_profile_MBDOOR = { +actor_process_profile_definition g_profile_MBDOOR = { /* LayerID */ fpcLy_CURRENT_e, /* ListID */ 3, /* ListPrio */ fpcPi_CURRENT_e, diff --git a/src/d/actor/d_a_mozo.cpp b/src/d/actor/d_a_mozo.cpp index 925abd1fc..2d4b4e10a 100644 --- a/src/d/actor/d_a_mozo.cpp +++ b/src/d/actor/d_a_mozo.cpp @@ -360,7 +360,7 @@ static actor_method_class l_daMozo_Method = { (process_method_func)daMozo_Draw, }; -extern actor_process_profile_definition g_profile_MOZO = { +actor_process_profile_definition g_profile_MOZO = { fpcLy_CURRENT_e, 7, fpcPi_CURRENT_e, diff --git a/src/d/actor/d_a_nh.cpp b/src/d/actor/d_a_nh.cpp index 11fff8b6d..7f0f2f99f 100644 --- a/src/d/actor/d_a_nh.cpp +++ b/src/d/actor/d_a_nh.cpp @@ -616,7 +616,7 @@ actor_method_class l_daNh_Method = { (process_method_func)daNh_Draw, }; -extern actor_process_profile_definition g_profile_NH = { +actor_process_profile_definition g_profile_NH = { /* LayerID */ fpcLy_CURRENT_e, /* ListID */ 7, /* ListPrio */ fpcLy_CURRENT_e, diff --git a/src/d/actor/d_a_obj_Ygush00.cpp b/src/d/actor/d_a_obj_Ygush00.cpp index 5ddf2d63a..f3b5a32c8 100644 --- a/src/d/actor/d_a_obj_Ygush00.cpp +++ b/src/d/actor/d_a_obj_Ygush00.cpp @@ -185,7 +185,7 @@ static actor_method_class l_daObjYgush00_Method = { (process_method_func)daObjYgush00_Draw, }; -extern actor_process_profile_definition g_profile_Obj_Ygush00 = { +actor_process_profile_definition g_profile_Obj_Ygush00 = { fpcLy_CURRENT_e, 3, fpcPi_CURRENT_e, diff --git a/src/d/actor/d_a_obj_barrier.cpp b/src/d/actor/d_a_obj_barrier.cpp index 4557ad119..0f85bb637 100644 --- a/src/d/actor/d_a_obj_barrier.cpp +++ b/src/d/actor/d_a_obj_barrier.cpp @@ -715,7 +715,7 @@ static actor_method_class l_daObjBarrier_Method = { (process_method_func)daObjBarrier_Draw, }; -extern actor_process_profile_definition g_profile_Obj_Barrier = { +actor_process_profile_definition g_profile_Obj_Barrier = { /* LayerID */ fpcLy_CURRENT_e, /* ListID */ 7, /* ListPrio */ fpcPi_CURRENT_e, diff --git a/src/d/actor/d_a_obj_hole.cpp b/src/d/actor/d_a_obj_hole.cpp index 37ad6ed34..b56921627 100644 --- a/src/d/actor/d_a_obj_hole.cpp +++ b/src/d/actor/d_a_obj_hole.cpp @@ -370,7 +370,7 @@ static actor_method_class daObj_HoleMethodTable = { (process_method_func)daObj_HoleDraw, }; -extern actor_process_profile_definition g_profile_OBJ_HOLE = { +actor_process_profile_definition g_profile_OBJ_HOLE = { fpcLy_CURRENT_e, 3, fpcPi_CURRENT_e, diff --git a/src/d/actor/d_a_obj_mknjd.cpp b/src/d/actor/d_a_obj_mknjd.cpp index b777baef4..500dee0f2 100644 --- a/src/d/actor/d_a_obj_mknjd.cpp +++ b/src/d/actor/d_a_obj_mknjd.cpp @@ -1119,7 +1119,7 @@ namespace daObjMknjD { } } -extern actor_process_profile_definition g_profile_Obj_MknjD = { +actor_process_profile_definition g_profile_Obj_MknjD = { fpcLy_CURRENT_e, 3, fpcPi_CURRENT_e, diff --git a/src/d/actor/d_a_obj_movebox.cpp b/src/d/actor/d_a_obj_movebox.cpp index b4077adb7..7d5edd472 100644 --- a/src/d/actor/d_a_obj_movebox.cpp +++ b/src/d/actor/d_a_obj_movebox.cpp @@ -858,7 +858,7 @@ namespace daObjMovebox { } } -extern actor_process_profile_definition g_profile_Obj_Movebox = { +actor_process_profile_definition g_profile_Obj_Movebox = { fpcLy_CURRENT_e, 3, fpcLy_CURRENT_e, diff --git a/src/d/actor/d_a_obj_paper.cpp b/src/d/actor/d_a_obj_paper.cpp index fcd838a3c..a3328e996 100644 --- a/src/d/actor/d_a_obj_paper.cpp +++ b/src/d/actor/d_a_obj_paper.cpp @@ -390,7 +390,7 @@ namespace daObjPaper { }; } - extern actor_process_profile_definition g_profile_Obj_Paper = { + actor_process_profile_definition g_profile_Obj_Paper = { fpcLy_CURRENT_e, 7, fpcLy_CURRENT_e, diff --git a/src/d/actor/d_a_obj_toripost.cpp b/src/d/actor/d_a_obj_toripost.cpp index 9b7c22cc7..c1d9ef782 100644 --- a/src/d/actor/d_a_obj_toripost.cpp +++ b/src/d/actor/d_a_obj_toripost.cpp @@ -1092,7 +1092,7 @@ static actor_method_class daObjTpostMethodTable = { (process_method_func)daObjTpostDraw, }; -extern actor_process_profile_definition g_profile_OBJ_TORIPOST = { +actor_process_profile_definition g_profile_OBJ_TORIPOST = { fpcLy_CURRENT_e, 3, fpcPi_CURRENT_e, diff --git a/src/d/actor/d_a_rectangle.cpp b/src/d/actor/d_a_rectangle.cpp index 025195025..5154cf6d1 100644 --- a/src/d/actor/d_a_rectangle.cpp +++ b/src/d/actor/d_a_rectangle.cpp @@ -40,7 +40,7 @@ static actor_method_class l_daRct_Method = { (process_method_func)daRct_Draw, }; -extern actor_process_profile_definition g_profile_RECTANGLE = { +actor_process_profile_definition g_profile_RECTANGLE = { fpcLy_CURRENT_e, 7, fpcLy_CURRENT_e, diff --git a/src/d/actor/d_a_scene_change.cpp b/src/d/actor/d_a_scene_change.cpp index 966545283..d2b721b0d 100644 --- a/src/d/actor/d_a_scene_change.cpp +++ b/src/d/actor/d_a_scene_change.cpp @@ -81,7 +81,7 @@ static actor_method_class daSceneChgMethodTable = { (process_method_func)daSceneChgDraw, }; -extern actor_process_profile_definition g_profile_SCENECHG = { +actor_process_profile_definition g_profile_SCENECHG = { fpcLy_CURRENT_e, 3, fpcLy_CURRENT_e, diff --git a/src/d/actor/d_a_seatag.cpp b/src/d/actor/d_a_seatag.cpp index d5ddd8b61..6d4fa490f 100644 --- a/src/d/actor/d_a_seatag.cpp +++ b/src/d/actor/d_a_seatag.cpp @@ -40,7 +40,7 @@ static actor_method_class l_daSeatag_Method = { (process_method_func)daSeatag_Draw, }; -extern actor_process_profile_definition g_profile_SEATAG = { +actor_process_profile_definition g_profile_SEATAG = { fpcLy_CURRENT_e, 2, fpcLy_CURRENT_e, diff --git a/src/d/actor/d_a_shop_item.cpp b/src/d/actor/d_a_shop_item.cpp index e989a1f4a..8d8762b84 100644 --- a/src/d/actor/d_a_shop_item.cpp +++ b/src/d/actor/d_a_shop_item.cpp @@ -249,7 +249,7 @@ static actor_method_class daShopItemMethodTable = { (process_method_func)daShopItem_Draw, }; -extern actor_process_profile_definition g_profile_ShopItem = { +actor_process_profile_definition g_profile_ShopItem = { fpcLy_CURRENT_e, 7, fpcPi_CURRENT_e, diff --git a/src/d/actor/d_a_swc00.cpp b/src/d/actor/d_a_swc00.cpp index 846e41bce..5bc8dd585 100644 --- a/src/d/actor/d_a_swc00.cpp +++ b/src/d/actor/d_a_swc00.cpp @@ -75,7 +75,7 @@ static actor_method_class l_daSwc00_Method = { (process_method_func)0, }; -extern actor_process_profile_definition g_profile_SWC00 = { +actor_process_profile_definition g_profile_SWC00 = { fpcLy_CURRENT_e, 7, fpcPi_CURRENT_e, diff --git a/src/d/actor/d_a_tag_kb_item.cpp b/src/d/actor/d_a_tag_kb_item.cpp index 076c64a08..1d6dac616 100644 --- a/src/d/actor/d_a_tag_kb_item.cpp +++ b/src/d/actor/d_a_tag_kb_item.cpp @@ -113,7 +113,7 @@ static actor_method_class daTagKbItemMethodTable = { (process_method_func)daTagKbItem_Draw, }; -extern actor_process_profile_definition g_profile_TAG_KB_ITEM = { +actor_process_profile_definition g_profile_TAG_KB_ITEM = { fpcLy_CURRENT_e, 7, fpcLy_CURRENT_e, diff --git a/src/d/actor/d_a_tag_msg.cpp b/src/d/actor/d_a_tag_msg.cpp index c1a75cf99..566131ab8 100644 --- a/src/d/actor/d_a_tag_msg.cpp +++ b/src/d/actor/d_a_tag_msg.cpp @@ -309,7 +309,7 @@ static actor_method_class l_daTag_Msg_Method = { (process_method_func)daTag_Msg_Draw, }; -extern actor_process_profile_definition g_profile_TAG_MSG = { +actor_process_profile_definition g_profile_TAG_MSG = { fpcLy_CURRENT_e, 7, fpcPi_CURRENT_e, diff --git a/src/d/actor/d_a_tag_ret.cpp b/src/d/actor/d_a_tag_ret.cpp index 46666de6b..1dad18054 100644 --- a/src/d/actor/d_a_tag_ret.cpp +++ b/src/d/actor/d_a_tag_ret.cpp @@ -146,7 +146,7 @@ namespace daTagRet { }; }; -extern actor_process_profile_definition g_profile_Tag_Ret = { +actor_process_profile_definition g_profile_Tag_Ret = { /* LayerID */ fpcLy_CURRENT_e, /* ListID */ 3, /* ListPrio */ fpcLy_CURRENT_e, diff --git a/src/d/d_ovlp_fade.cpp b/src/d/d_ovlp_fade.cpp index 10b5a4416..b94b879fb 100644 --- a/src/d/d_ovlp_fade.cpp +++ b/src/d/d_ovlp_fade.cpp @@ -3,46 +3,170 @@ // Translation Unit: d_ovlp_fade.cpp // -#include "d_ovlp_fade.h" -#include "dolphin/types.h" +#include "f_op/f_op_overlap.h" +#include "f_op/f_op_overlap_mng.h" +#include "f_pc/f_pc_manager.h" +#include "d/d_procname.h" +#include "m_Do/m_Do_graphic.h" + +class overlap1_class : public overlap_task_class { +public: + /* 0xCC */ s32 mFadeOutTime; + /* 0xD0 */ s32 mFadeInTime; +}; + +BOOL (*dOvlpFd_execute_f)(overlap1_class*); /* 802235CC-802235D4 .text dOvlpFd_Draw__FP14overlap1_class */ -void dOvlpFd_Draw(overlap1_class*) { - /* Nonmatching */ +BOOL dOvlpFd_Draw(overlap1_class* i_this) { + return TRUE; } /* 802235D4-802236AC .text dOvlpFd_FadeOut__FP14overlap1_class */ -void dOvlpFd_FadeOut(overlap1_class*) { - /* Nonmatching */ +BOOL dOvlpFd_FadeOut(overlap1_class* i_this) { + /* Nonmatching - extra comparisons */ + if (i_this->mFadeOutTime == 0) { + if (fpcM_GetProfName(i_this) != PROC_OVERLAP6) { + if (!mDoGph_gInf_c::startFadeIn(26)) + return TRUE; + i_this->mFadeOutTime = 26; + } else { + if (mDoGph_gInf_c::startFadeIn(0)) + return TRUE; + i_this->mFadeOutTime = 1; + } + } + + fopOvlpM_SceneIsStart(); + if (--i_this->mFadeOutTime == 0) { + fopOvlpM_Done(i_this); + i_this->mFadeOutTime++; + } + + return TRUE; } /* 802236AC-802236E4 .text dOvlpFd_Wait__FP14overlap1_class */ -void dOvlpFd_Wait(overlap1_class*) { - /* Nonmatching */ +BOOL dOvlpFd_Wait(overlap1_class* i_this) { + if (fopOvlpM_IsOutReq(i_this)) + dOvlpFd_execute_f = dOvlpFd_FadeOut; + return TRUE; } /* 802236E4-802237A4 .text dOvlpFd_FadeIn__FP14overlap1_class */ -void dOvlpFd_FadeIn(overlap1_class*) { - /* Nonmatching */ +BOOL dOvlpFd_FadeIn(overlap1_class* i_this) { + if (i_this->mFadeInTime == 0) { + i_this->mFadeInTime = 26; + if (fpcM_GetProfName(i_this) == PROC_OVERLAP0 || fpcM_GetProfName(i_this) == PROC_OVERLAP7) { + mDoGph_gInf_c::startFadeOut(26); + } + } + + if (--i_this->mFadeInTime == 0) { + dOvlpFd_execute_f = dOvlpFd_Wait; + mDoGph_gInf_c::startFadeOut(0); + fopOvlpM_Done(i_this); + } + + return TRUE; } /* 802237A4-802237D0 .text dOvlpFd_Execute__FP14overlap1_class */ -void dOvlpFd_Execute(overlap1_class*) { - /* Nonmatching */ +BOOL dOvlpFd_Execute(overlap1_class* i_this) { + dOvlpFd_execute_f(i_this); + return TRUE; } /* 802237D0-802237D8 .text dOvlpFd_IsDelete__FP14overlap1_class */ -void dOvlpFd_IsDelete(overlap1_class*) { - /* Nonmatching */ +BOOL dOvlpFd_IsDelete(overlap1_class* i_this) { + return TRUE; } /* 802237D8-802237E0 .text dOvlpFd_Delete__FP14overlap1_class */ -void dOvlpFd_Delete(overlap1_class*) { - /* Nonmatching */ +BOOL dOvlpFd_Delete(overlap1_class* i_this) { + return TRUE; } /* 802237E0-802237F4 .text dOvlpFd_Create__FPv */ -void dOvlpFd_Create(void*) { - /* Nonmatching */ +BOOL dOvlpFd_Create(void* i_this) { + dOvlpFd_execute_f = dOvlpFd_FadeIn; + return cPhs_COMPLEATE_e; } +overlap_method_class l_dOvlpFd_Method = { + (process_method_func)dOvlpFd_Create, + (process_method_func)dOvlpFd_Delete, + (process_method_func)dOvlpFd_Execute, + (process_method_func)dOvlpFd_IsDelete, + (process_method_func)dOvlpFd_Draw, +}; + +overlap_process_profile_definition g_profile_OVERLAP0 = { + fpcLy_ROOT_e, + 0, + fpcPi_CURRENT_e, + PROC_OVERLAP0, + &g_fpcLf_Method.mBase, + sizeof(overlap1_class), + 0, + 0, + &g_fopOvlp_Method, + 0x1E1, + &l_dOvlpFd_Method, +}; + +overlap_process_profile_definition g_profile_OVERLAP1 = { + fpcLy_ROOT_e, + 0, + fpcPi_CURRENT_e, + PROC_OVERLAP1, + &g_fpcLf_Method.mBase, + sizeof(overlap1_class), + 0, + 0, + &g_fopOvlp_Method, + 0x1E2, + &l_dOvlpFd_Method, +}; + +overlap_process_profile_definition g_profile_OVERLAP6 = { + fpcLy_ROOT_e, + 0, + fpcPi_CURRENT_e, + PROC_OVERLAP6, + &g_fpcLf_Method.mBase, + sizeof(overlap1_class), + 0, + 0, + &g_fopOvlp_Method, + 0x1E7, + &l_dOvlpFd_Method, +}; + +overlap_process_profile_definition g_profile_OVERLAP7 = { + fpcLy_ROOT_e, + 0, + fpcPi_CURRENT_e, + PROC_OVERLAP7, + &g_fpcLf_Method.mBase, + sizeof(overlap1_class), + 0, + 0, + &g_fopOvlp_Method, + 0x1E8, + &l_dOvlpFd_Method, +}; + +overlap_process_profile_definition g_profile_OVERLAP8 = { + fpcLy_ROOT_e, + 0, + fpcPi_CURRENT_e, + PROC_OVERLAP8, + &g_fpcLf_Method.mBase, + sizeof(overlap1_class), + 0, + 0, + &g_fopOvlp_Method, + 0x1E9, + &l_dOvlpFd_Method, +}; diff --git a/src/d/d_s_open.cpp b/src/d/d_s_open.cpp index 76f97a8d1..9d2d46a23 100644 --- a/src/d/d_s_open.cpp +++ b/src/d/d_s_open.cpp @@ -155,7 +155,7 @@ scene_method_class l_dScnOpen_Method = { (process_method_func)dScnOpen_Draw, }; -extern scene_process_profile_definition g_profile_OPEN_SCENE = { +scene_process_profile_definition g_profile_OPEN_SCENE = { fpcLy_ROOT_e, 1, fpcPi_CURRENT_e, @@ -169,7 +169,7 @@ extern scene_process_profile_definition g_profile_OPEN_SCENE = { NULL, }; -extern scene_process_profile_definition g_profile_OPEN2_SCENE = { +scene_process_profile_definition g_profile_OPEN2_SCENE = { fpcLy_ROOT_e, 1, fpcPi_CURRENT_e, diff --git a/src/f_op/f_op_overlap.cpp b/src/f_op/f_op_overlap.cpp index 0ef938967..4894d3e77 100644 --- a/src/f_op/f_op_overlap.cpp +++ b/src/f_op/f_op_overlap.cpp @@ -8,43 +8,44 @@ #include "f_op/f_op_overlap_mng.h" #include "f_pc/f_pc_manager.h" -static s32 fopOvlp_Draw(void* i_this) { - overlap_task_class* _this = (overlap_task_class*)i_this; - return fpcLf_DrawMethod(_this->field_0xc0, i_this); +static s32 fopOvlp_Draw(void* i_ovlp) { + overlap_task_class* i_this = (overlap_task_class*)i_ovlp; + return fpcLf_DrawMethod((leafdraw_method_class*)i_this->mSubMtd, i_this); } -static s32 fopOvlp_Execute(void* i_this) { - overlap_task_class* _this = (overlap_task_class*)i_this; - return fpcMtd_Execute(&_this->field_0xc0->mBase, i_this); +static s32 fopOvlp_Execute(void* i_ovlp) { + overlap_task_class* i_this = (overlap_task_class*)i_ovlp; + return fpcMtd_Execute((process_method_class*)i_this->mSubMtd, i_this); } -static s32 fopOvlp_IsDelete(void* i_this) { - overlap_task_class* _this = (overlap_task_class*)i_this; - return fpcMtd_IsDelete(&_this->field_0xc0->mBase, i_this); +static s32 fopOvlp_IsDelete(void* i_ovlp) { + overlap_task_class* i_this = (overlap_task_class*)i_ovlp; + return fpcMtd_IsDelete((process_method_class*)i_this->mSubMtd, i_this); } -static s32 fopOvlp_Delete(void* i_this) { - overlap_task_class* _this = (overlap_task_class*)i_this; - return fpcMtd_Delete(&_this->field_0xc0->mBase, i_this); +static s32 fopOvlp_Delete(void* i_ovlp) { + overlap_task_class* i_this = (overlap_task_class*)i_ovlp; + return fpcMtd_Delete((process_method_class*)i_this->mSubMtd, i_this); } -static s32 fopOvlp_Create(void* i_this) { - overlap_task_class* _this = (overlap_task_class*)i_this; +static s32 fopOvlp_Create(void* i_ovlp) { + overlap_task_class* i_this = (overlap_task_class*)i_ovlp; - if (fpcM_IsFirstCreating(_this)) { - overlap_process_profile_definition* profile = - (overlap_process_profile_definition*)fpcM_GetProfile(_this); + if (fpcM_IsFirstCreating(i_this)) { + overlap_process_profile_definition* profile = (overlap_process_profile_definition*)fpcM_GetProfile(i_this); - cReq_Create((request_base_class*)&_this->field_0xc4, 1); - _this->field_0xc0 = profile->mSubMtd; - _this->field_0xc8 = -1; + cReq_Create(&i_this->mRq, 1); + i_this->mSubMtd = profile->mSubMtd; + i_this->mScenePId = -1; } - return fpcMtd_Create(&_this->field_0xc0->mBase, _this); + return fpcMtd_Create((process_method_class*)i_this->mSubMtd, i_this); } -extern leafdraw_method_class g_fopOvlp_Method = { - (process_method_func)fopOvlp_Create, (process_method_func)fopOvlp_Delete, - (process_method_func)fopOvlp_Execute, (process_method_func)fopOvlp_IsDelete, +leafdraw_method_class g_fopOvlp_Method = { + (process_method_func)fopOvlp_Create, + (process_method_func)fopOvlp_Delete, + (process_method_func)fopOvlp_Execute, + (process_method_func)fopOvlp_IsDelete, (process_method_func)fopOvlp_Draw, }; diff --git a/src/f_op/f_op_overlap_mng.cpp b/src/f_op/f_op_overlap_mng.cpp index 5a7b7d36d..56e57c735 100644 --- a/src/f_op/f_op_overlap_mng.cpp +++ b/src/f_op/f_op_overlap_mng.cpp @@ -11,44 +11,49 @@ #include "JSystem/JUtility/JUTAssert.h" // making it not an array put it in .bss -static request_base_class* l_fopOvlpM_overlap[1] = {NULL}; +static overlap_request_class* l_fopOvlpM_overlap[1] = {NULL}; int fopOvlpM_SceneIsStop() { - if (l_fopOvlpM_overlap[0]) { - return fopScnPause_Enable( - (scene_class*)fpcEx_SearchByID(l_fopOvlpM_overlap[0]->field_0x20[0x32])); + if (l_fopOvlpM_overlap[0] != NULL) { + return fopScnPause_Enable((scene_class*)fpcEx_SearchByID(l_fopOvlpM_overlap[0]->mpTask->mScenePId)); } else { return 0; } } int fopOvlpM_SceneIsStart() { - if (l_fopOvlpM_overlap[0]) { - return fopScnPause_Disable( - (scene_class*)fpcEx_SearchByID(l_fopOvlpM_overlap[0]->field_0x20[0x32])); + if (l_fopOvlpM_overlap[0] != NULL) { + return fopScnPause_Disable((scene_class*)fpcEx_SearchByID(l_fopOvlpM_overlap[0]->mpTask->mScenePId)); } else { return 0; } } int fopOvlpM_IsOutReq(overlap_task_class* pTaskClass) { - return (pTaskClass->field_0xc4 & 0x3F) == 2; + return pTaskClass->mRq.flag2 == 2; } void fopOvlpM_Done(overlap_task_class* pTaskClass) { - cReq_Done((request_base_class*)&pTaskClass->field_0xc4); + cReq_Done(&pTaskClass->mRq); } -void fopOvlpM_ToldAboutID(unsigned int param_1) { - l_fopOvlpM_overlap[0] ? l_fopOvlpM_overlap[0]->field_0x20[0x32] = param_1 : 0; +void fopOvlpM_ToldAboutID(u32 pcId) { + if (l_fopOvlpM_overlap[0] != NULL) + l_fopOvlpM_overlap[0]->mpTask->mScenePId = pcId; } int fopOvlpM_IsPeek() { - return l_fopOvlpM_overlap[0] ? l_fopOvlpM_overlap[0]->field_0x8 : 0; + if (l_fopOvlpM_overlap[0] != NULL) + return l_fopOvlpM_overlap[0]->mIsPeek; + else + return 0; } int fopOvlpM_IsDone() { - return l_fopOvlpM_overlap[0] ? cReq_Is_Done(l_fopOvlpM_overlap[0]) : 0; + if (l_fopOvlpM_overlap[0] != NULL) + return cReq_Is_Done(l_fopOvlpM_overlap[0]); + else + return 0; } int fopOvlpM_IsDoingReq() { @@ -60,26 +65,26 @@ int fopOvlpM_IsDoingReq() { } int fopOvlpM_ClearOfReq() { - return l_fopOvlpM_overlap[0] ? - fopOvlpReq_OverlapClr((overlap_request_class*)l_fopOvlpM_overlap[0]) : - 0; + if (l_fopOvlpM_overlap[0] != NULL) + return fopOvlpReq_OverlapClr(l_fopOvlpM_overlap[0]); + else + return 0; } static overlap_request_class l_fopOvlpM_Request; -request_base_class* fopOvlpM_Request(s16 param_1, u16 param_2) { - if (!l_fopOvlpM_overlap[0]) { - request_base_class* tmp = fopOvlpReq_Request(&l_fopOvlpM_Request, param_1, param_2); - l_fopOvlpM_overlap[0] = tmp; - return tmp; +request_base_class* fopOvlpM_Request(s16 procName, u16 peekTime) { + if (l_fopOvlpM_overlap[0] == NULL) { + l_fopOvlpM_overlap[0] = fopOvlpReq_Request(&l_fopOvlpM_Request, procName, peekTime); + return l_fopOvlpM_overlap[0]; } return 0; } void fopOvlpM_Management() { - if (l_fopOvlpM_overlap[0]) { - int tmp = fopOvlpReq_Handler((overlap_request_class*)l_fopOvlpM_overlap[0]); + if (l_fopOvlpM_overlap[0] != NULL) { + int tmp = fopOvlpReq_Handler(l_fopOvlpM_overlap[0]); if (6 <= tmp || 3 > tmp) { return; } @@ -88,11 +93,10 @@ void fopOvlpM_Management() { } int fopOvlpM_Cancel() { - if (!l_fopOvlpM_overlap[0]) { + if (l_fopOvlpM_overlap[0] == NULL) return 1; - } - if (fopOvlpReq_Cancel((overlap_request_class*)l_fopOvlpM_overlap[0]) == true) { + if (fopOvlpReq_Cancel(l_fopOvlpM_overlap[0]) == true) { l_fopOvlpM_overlap[0] = NULL; JUT_WARN(331, "%s", "fopOvlpM_Cancel SUCCESSED"); return 1; diff --git a/src/f_op/f_op_overlap_req.cpp b/src/f_op/f_op_overlap_req.cpp index a85650d12..03afdc6d7 100644 --- a/src/f_op/f_op_overlap_req.cpp +++ b/src/f_op/f_op_overlap_req.cpp @@ -5,85 +5,84 @@ #include "SSystem/SComponent/c_request.h" #include "f_op/f_op_overlap_req.h" +#include "f_op/f_op_overlap_mng.h" #include "f_pc/f_pc_manager.h" #include "f_pc/f_pc_stdcreate_req.h" void fopOvlpReq_SetPeektime(overlap_request_class*, u16); -static int fopOvlpReq_phase_Done(overlap_request_class* i_overlapReq) { - if (fpcM_Delete(i_overlapReq->field_0x20) == 1) { - i_overlapReq->field_0x20 = 0; - i_overlapReq->field_0x4 = 0; - i_overlapReq->mPeektime = 0; - i_overlapReq->field_0x8 = 0; - i_overlapReq->field_0xc = 0; - return 2; +static int fopOvlpReq_phase_Done(overlap_request_class* i_this) { + if (fpcM_Delete(i_this->mpTask) == 1) { + i_this->mpTask = 0; + i_this->field_0x4 = 0; + i_this->mPeektime = 0; + i_this->mIsPeek = 0; + i_this->field_0xc = 0; + return cPhs_NEXT_e; } - return 0; + return cPhs_INIT_e; } -static s32 fopOvlpReq_phase_IsDone(overlap_request_class* param_1) { - cReq_Done((request_base_class*)param_1); - return param_1->field_0x2-- <= 0 ? 2 : 0; +static s32 fopOvlpReq_phase_IsDone(overlap_request_class* i_this) { + cReq_Done(i_this); + if (i_this->mDelay-- <= 0) + return cPhs_NEXT_e; + else + return cPhs_INIT_e; } -static int fopOvlpReq_phase_IsWaitOfFadeout(overlap_request_class* i_overlapReq) { - if (cReq_Is_Done((request_base_class*)(i_overlapReq->field_0x20 + 0xC4))) { - i_overlapReq->field_0x8 = 0; - return 2; +static s32 fopOvlpReq_phase_IsWaitOfFadeout(overlap_request_class* i_this) { + if (cReq_Is_Done(&i_this->mpTask->mRq)) { + i_this->mIsPeek = 0; + return cPhs_NEXT_e; } - return 0; + return cPhs_INIT_e; } -static int fopOvlpReq_phase_WaitOfFadeout(overlap_request_class* i_overlapReq) { - if (i_overlapReq->mPeektime) { - i_overlapReq->mPeektime--; +static s32 fopOvlpReq_phase_WaitOfFadeout(overlap_request_class* i_this) { + if (i_this->mPeektime) + i_this->mPeektime--; + + if (i_this->flag2 == 2 && !i_this->mPeektime) { + cReq_Command(&i_this->mpTask->mRq, 2); + return cPhs_NEXT_e; } - if (((u8)(i_overlapReq->field_0x0 & 0x3F)) == 2 && !i_overlapReq->mPeektime) { - cReq_Command((request_base_class*)(i_overlapReq->field_0x20 + 0xC4), 2); - return 2; - } - - i_overlapReq->field_0x8 = 1; - return 0; + i_this->mIsPeek = 1; + return cPhs_INIT_e; } -static int fopOvlpReq_phase_IsComplete(overlap_request_class* i_overlapReq) { - if (cReq_Is_Done((request_base_class*)(i_overlapReq->field_0x20 + 0xC4))) { - cReq_Done((request_base_class*)i_overlapReq); - return 2; +static s32 fopOvlpReq_phase_IsComplete(overlap_request_class* i_this) { + if (cReq_Is_Done(&i_this->mpTask->mRq)) { + cReq_Done(i_this); + return cPhs_NEXT_e; } - return 0; + return cPhs_INIT_e; } -static int fopOvlpReq_phase_IsCreated(overlap_request_class* i_overlapReq) { - if (fpcM_IsCreating(i_overlapReq->field_0x14) == 0) { - base_process_class* pBaseProc = fpcEx_SearchByID(i_overlapReq->field_0x14); - - if (pBaseProc == NULL) { +static s32 fopOvlpReq_phase_IsCreated(overlap_request_class* i_this) { + if (fpcM_IsCreating(i_this->mPId) == 0) { + base_process_class* pBaseProc = fpcEx_SearchByID(i_this->mPId); + if (pBaseProc == NULL) return cPhs_ERROR_e; - } - - i_overlapReq->field_0x20 = (u8*)pBaseProc; - return 2; + + i_this->mpTask = (overlap_task_class*)pBaseProc; + return cPhs_NEXT_e; } - return 0; + return cPhs_INIT_e; } -static int fopOvlpReq_phase_Create(overlap_request_class* i_overlapReq) { - fpcLy_SetCurrentLayer(i_overlapReq->pCurrentLayer); - i_overlapReq->field_0x14 = - fpcSCtRq_Request(fpcLy_CurrentLayer(), i_overlapReq->field_0x10, 0, 0, 0); - return 2; +static s32 fopOvlpReq_phase_Create(overlap_request_class* i_this) { + fpcLy_SetCurrentLayer(i_this->pCurrentLayer); + i_this->mPId = fpcSCtRq_Request(fpcLy_CurrentLayer(), i_this->mProcName, 0, 0, 0); + return cPhs_NEXT_e; } -request_base_class* fopOvlpReq_Request(overlap_request_class* i_overlapReq, s16 param_2, - u16 param_3) { +overlap_request_class* fopOvlpReq_Request(overlap_request_class* i_this, s16 procName, u16 peekTime) { static cPhs__Handler phaseMethod[8] = { (cPhs__Handler)fopOvlpReq_phase_Create, (cPhs__Handler)fopOvlpReq_phase_IsCreated, @@ -95,30 +94,30 @@ request_base_class* fopOvlpReq_Request(overlap_request_class* i_overlapReq, s16 (cPhs__Handler)NULL, }; - if (i_overlapReq->field_0x4 == 1) { - i_overlapReq = 0; - return (request_base_class*)i_overlapReq; + if (i_this->field_0x4 == 1) { + i_this = NULL; + return i_this; } - cReq_Command((request_base_class*)i_overlapReq, 1); - i_overlapReq->field_0x10 = param_2; - cPhs_Set(&i_overlapReq->field_0x18, phaseMethod); - fopOvlpReq_SetPeektime(i_overlapReq, param_3); - i_overlapReq->field_0x4 = 1; - i_overlapReq->field_0x2 = 1; - i_overlapReq->field_0x20 = 0; - i_overlapReq->field_0x8 = 0; - i_overlapReq->field_0xc = 0; - i_overlapReq->pCurrentLayer = fpcLy_RootLayer(); - return (request_base_class*)i_overlapReq; + cReq_Command(i_this, 1); + i_this->mProcName = procName; + cPhs_Set(&i_this->mPhs, phaseMethod); + fopOvlpReq_SetPeektime(i_this, peekTime); + i_this->field_0x4 = 1; + i_this->mDelay = 1; + i_this->mpTask = NULL; + i_this->mIsPeek = 0; + i_this->field_0xc = 0; + i_this->pCurrentLayer = fpcLy_RootLayer(); + return i_this; } -int fopOvlpReq_Handler(overlap_request_class* i_overlapReq) { - int phase_state = cPhs_Do(&i_overlapReq->field_0x18, i_overlapReq); +s32 fopOvlpReq_Handler(overlap_request_class* i_this) { + s32 phase_state = cPhs_Do(&i_this->mPhs, i_this); switch (phase_state) { case cPhs_NEXT_e: - return fopOvlpReq_Handler(i_overlapReq); + return fopOvlpReq_Handler(i_this); case cPhs_INIT_e: return cPhs_INIT_e; case cPhs_LOADING_e: @@ -133,28 +132,25 @@ int fopOvlpReq_Handler(overlap_request_class* i_overlapReq) { } } -int fopOvlpReq_Cancel(overlap_request_class* i_overlapReq) { - return fopOvlpReq_phase_Done(i_overlapReq) == 2 ? 1 : 0; +BOOL fopOvlpReq_Cancel(overlap_request_class* i_this) { + return (fopOvlpReq_phase_Done(i_this) == cPhs_NEXT_e) ? TRUE : FALSE; } -int fopOvlpReq_Is_PeektimeLimit(overlap_request_class* i_overlapReq) { - return i_overlapReq->mPeektime == 0 ? 1 : 0; +BOOL fopOvlpReq_Is_PeektimeLimit(overlap_request_class* i_this) { + return i_this->mPeektime == 0 ? TRUE : FALSE; } -void fopOvlpReq_SetPeektime(overlap_request_class* i_overlapReq, u16 param_2) { - if (0x7fff < param_2) { +void fopOvlpReq_SetPeektime(overlap_request_class* i_this, u16 peekTime) { + if (peekTime > 0x7fff) return; - } - i_overlapReq->mPeektime = param_2; + i_this->mPeektime = peekTime; } -int fopOvlpReq_OverlapClr(overlap_request_class* i_overlapReq) { - if ((u8)((i_overlapReq->field_0x0 >> 7) & 1) == 1 || !fopOvlpReq_Is_PeektimeLimit(i_overlapReq)) - { +int fopOvlpReq_OverlapClr(overlap_request_class* i_this) { + if (i_this->flag0 == 1 || !fopOvlpReq_Is_PeektimeLimit(i_this)) return 0; - } - cReq_Create((request_base_class*)i_overlapReq, 2); + cReq_Create(i_this, 2); return 1; } diff --git a/src/f_op/f_op_scene_req.cpp b/src/f_op/f_op_scene_req.cpp index 0d6475df4..49993bb40 100644 --- a/src/f_op/f_op_scene_req.cpp +++ b/src/f_op/f_op_scene_req.cpp @@ -71,13 +71,11 @@ static int fopScnRq_Cancel(scene_request_class* i_sceneReq) { } } -static scene_request_class* fopScnRq_FadeRequest(s16 param_1, u16 param_2) { +static scene_request_class* fopScnRq_FadeRequest(s16 procName, u16 peekTime) { request_base_class* req = NULL; - if (l_fopScnRq_IsUsingOfOverlap == 0 && (req = fopOvlpM_Request(param_1, param_2), req != NULL)) - { + if (l_fopScnRq_IsUsingOfOverlap == 0 && (req = fopOvlpM_Request(procName, peekTime), req != NULL)) l_fopScnRq_IsUsingOfOverlap = 1; - } return (scene_request_class*)req; } diff --git a/src/f_pc/f_pc_stdcreate_req.cpp b/src/f_pc/f_pc_stdcreate_req.cpp index 8562f0bdc..a41f6e16a 100644 --- a/src/f_pc/f_pc_stdcreate_req.cpp +++ b/src/f_pc/f_pc_stdcreate_req.cpp @@ -92,8 +92,7 @@ s32 fpcSCtRq_Cancel(standard_create_request_class* i_SCtReq) { } /* 8004086C-80040900 .text fpcSCtRq_Request__FP11layer_classsPFPvPv_iPvPv */ -s32 fpcSCtRq_Request(layer_class* i_layer, s16 i_procName, stdCreateFunc i_createFunc, - void* param_4, void* param_5) { +s32 fpcSCtRq_Request(layer_class* i_layer, s16 i_procName, stdCreateFunc i_createFunc, void* param_4, void* param_5) { static create_request_method_class submethod = { (cPhs__Handler)fpcSCtRq_Handler, (process_method_func)fpcSCtRq_Cancel,