diff options
| author | TakaRikka <38417346+TakaRikka@users.noreply.github.com> | 2022-03-26 10:17:17 -0700 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-03-26 13:17:17 -0400 |
| commit | 02c7a47f133add5e4c1d8d7f88d1a7bddc13d9ad (patch) | |
| tree | 06978acd3c890efb153ab35a00ccbab29f89db49 /src | |
| parent | 0cfa10aea8453c47329ffc316029a9994b7b7169 (diff) | |
move remaining old progress (#186)
* move remaining old progress
* remove asm
Diffstat (limited to 'src')
| -rw-r--r-- | src/d/cc/d_cc_uty.cpp | 1 | ||||
| -rw-r--r-- | src/d/s/d_s_play.cpp | 1 | ||||
| -rw-r--r-- | src/f_ap/f_ap_game.cpp | 4 | ||||
| -rw-r--r-- | src/f_op/f_op_actor_mng.cpp | 4 | ||||
| -rw-r--r-- | src/f_op/f_op_camera.cpp | 38 | ||||
| -rw-r--r-- | src/f_op/f_op_kankyo_mng.cpp | 222 | ||||
| -rw-r--r-- | src/f_op/f_op_msg.cpp | 61 | ||||
| -rw-r--r-- | src/f_op/f_op_msg_mng.cpp | 237 | ||||
| -rw-r--r-- | src/f_op/f_op_overlap.cpp | 41 | ||||
| -rw-r--r-- | src/f_op/f_op_scene_mng.cpp | 4 | ||||
| -rw-r--r-- | src/m_Do/m_Do_controller_pad.cpp | 110 |
11 files changed, 268 insertions, 455 deletions
diff --git a/src/d/cc/d_cc_uty.cpp b/src/d/cc/d_cc_uty.cpp index 0680657eed..08bba8d939 100644 --- a/src/d/cc/d_cc_uty.cpp +++ b/src/d/cc/d_cc_uty.cpp @@ -36,7 +36,6 @@ extern "C" void cM_atan2s__Fff(); extern "C" void cM_rndFX__Ff(); extern "C" void _savegpr_25(); extern "C" void _restgpr_25(); -extern "C" extern u8 struct_80451124[4]; // // Declarations: diff --git a/src/d/s/d_s_play.cpp b/src/d/s/d_s_play.cpp index e04521f15d..c9ec6f018c 100644 --- a/src/d/s/d_s_play.cpp +++ b/src/d/s/d_s_play.cpp @@ -253,7 +253,6 @@ static u8 g_preLoadHIO[4]; /* 80451124-80451128 -00001 0004+00 3/3 7/7 38/38 .sbss None */ /* 80451124 0001+00 data_80451124 None */ /* 80451125 0003+00 data_80451125 None */ -extern s8 struct_80451124; s8 struct_80451124; s8 data_80451125; diff --git a/src/f_ap/f_ap_game.cpp b/src/f_ap/f_ap_game.cpp index 4fb6a4652d..d77fd5d5aa 100644 --- a/src/f_ap/f_ap_game.cpp +++ b/src/f_ap/f_ap_game.cpp @@ -28,8 +28,8 @@ fapGm_HIO_c::fapGm_HIO_c() mDisplayProcessID = false; mMemBlockOff = false; mColor.set(255, 255, 255, 255); - field_0xc = 0.9f; - field_0x10 = 0.6f; + mLROnValue = 0.9f; + mLROffValue = 0.6f; mLetterTopColor.set(255, 150, 0, 255); mLetterBottomColor.set(255, 120, 0, 255); mLetterTopShadowColor.set(0, 0, 0, 255); diff --git a/src/f_op/f_op_actor_mng.cpp b/src/f_op/f_op_actor_mng.cpp index b10d6f6e02..dcb067a643 100644 --- a/src/f_op/f_op_actor_mng.cpp +++ b/src/f_op/f_op_actor_mng.cpp @@ -6,20 +6,20 @@ #include "f_op/f_op_actor_mng.h" #include "JSystem/JKernel/JKRHeap.h" #include "JSystem/JKernel/JKRSolidHeap.h" +#include "MSL_C/math.h" #include "SSystem/SComponent/c_lib.h" #include "SSystem/SComponent/c_malloc.h" #include "dol2asm.h" #include "global.h" -#include "MSL_C/math.h" // #include "d/com/d_com_inf_game.h" #include "JSystem/J3DGraphBase/J3DSys.h" #include "JSystem/J3DU/J3DUClipper.h" +#include "MSL_C/math.h" #include "SSystem/SComponent/c_math.h" #include "d/d_stage.h" #include "f_op/f_op_actor.h" #include "m_Do/m_Do_ext.h" #include "m_Do/m_Do_lib.h" -#include "MSL_C/math.h" // // Types: diff --git a/src/f_op/f_op_camera.cpp b/src/f_op/f_op_camera.cpp index 50b01d2cc1..f912cf3da3 100644 --- a/src/f_op/f_op_camera.cpp +++ b/src/f_op/f_op_camera.cpp @@ -4,6 +4,8 @@ // #include "f_op/f_op_camera.h" +#include "d/com/d_com_inf_game.h" +#include "d/s/d_s_play.h" #include "dol2asm.h" #include "dolphin/types.h" #include "f_op/f_op_draw_tag.h" @@ -33,40 +35,26 @@ extern "C" void fpcMtd_Execute__FP20process_method_classPv(); extern "C" void fpcMtd_IsDelete__FP20process_method_classPv(); extern "C" void fpcMtd_Delete__FP20process_method_classPv(); extern "C" void fpcMtd_Create__FP20process_method_classPv(); -extern "C" extern u8 g_dComIfG_gameInfo[122384]; -extern "C" extern u8 struct_80451124[4]; // // Declarations: // /* 8001E140-8001E180 018A80 0040+00 1/0 0/0 0/0 .text fopCam_Draw__FP12camera_class */ -#if 0 -// TODO: move dComIfG static s32 fopCam_Draw(camera_class* pCamera) { - s32 tmp = 1; + s32 cam_proc = 1; - if (g_dComIfG_gameInfo.getPlay().isPauseFlag() == false) { - tmp = fpcLf_DrawMethod(pCamera->pMthd, pCamera); + if (!dComIfGp_isPauseFlag()) { + cam_proc = fpcLf_DrawMethod(pCamera->pMthd, pCamera); } - return tmp; + return cam_proc; } -#else -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm s32 fopCam_Draw(camera_class* param_0) { - nofralloc -#include "asm/f_op/f_op_camera/fopCam_Draw__FP12camera_class.s" -} -#pragma pop -#endif /* 8001E180-8001E1C8 018AC0 0048+00 1/0 0/0 0/0 .text fopCam_Execute__FP12camera_class */ // Matches, but wrong registers #ifdef NONMATCHING static void fopCam_Execute(camera_class* pCamera) { - if (!g_dComIfG_gameInfo.getPlay().isPauseFlag() && !lbl_80451124) { + if (!dComIfGp_isPauseFlag() && dScnPly_c::isPause()) { fpcMtd_Execute((process_method_class*)pCamera->pMthd, pCamera); } } @@ -84,22 +72,22 @@ static asm void fopCam_Execute(camera_class* param_0) { /* 8001E1C8-8001E21C 018B08 0054+00 1/0 0/0 0/0 .text fopCam_IsDelete__FP12camera_class */ int fopCam_IsDelete(camera_class* pCamera) { - int tmp = fpcMtd_IsDelete((process_method_class*)pCamera->pMthd, pCamera); - if (tmp == 1) { + int delete_stat = fpcMtd_IsDelete((process_method_class*)pCamera->pMthd, pCamera); + if (delete_stat == 1) { fopDwTg_DrawQTo(&pCamera->pCreateTag); } - return tmp; + return delete_stat; } /* 8001E21C-8001E270 018B5C 0054+00 1/0 0/0 0/0 .text fopCam_Delete__FP12camera_class */ int fopCam_Delete(camera_class* pCamera) { - int tmp = fpcMtd_Delete((process_method_class*)pCamera->pMthd, pCamera); - if (tmp == 1) { + int delete_stat = fpcMtd_Delete((process_method_class*)pCamera->pMthd, pCamera); + if (delete_stat == 1) { fopDwTg_DrawQTo(&pCamera->pCreateTag); } - return tmp; + return delete_stat; } /* 8001E270-8001E308 018BB0 0098+00 1/0 0/0 0/0 .text fopCam_Create__FPv */ diff --git a/src/f_op/f_op_kankyo_mng.cpp b/src/f_op/f_op_kankyo_mng.cpp index 7d06e88c75..c64c2df6e9 100644 --- a/src/f_op/f_op_kankyo_mng.cpp +++ b/src/f_op/f_op_kankyo_mng.cpp @@ -3,172 +3,112 @@ // Translation Unit: f_op/f_op_kankyo_mng // -// #include "f_op/f_op_kankyo_mng.h" +#include "f_op/f_op_kankyo_mng.h" +#include "SSystem/SComponent/c_lib.h" +#include "SSystem/SComponent/c_malloc.h" +#include "d/com/d_com_inf_game.h" +#include "d/d_procname.h" #include "dol2asm.h" #include "dolphin/types.h" -// -// Types: -// - -struct layer_class {}; - -struct dPa_levelEcallBack {}; - -struct dKy_tevstr_c {}; - -struct csXyz {}; - -struct _GXColor {}; - -struct cXyz {}; - -struct dPa_control_c { - /* 8004CA90 */ void set(u8, u16, cXyz const*, dKy_tevstr_c const*, csXyz const*, cXyz const*, - u8, dPa_levelEcallBack*, s8, _GXColor const*, _GXColor const*, - cXyz const*, f32); -}; - -struct cMl { - /* 80263228 */ void memalignB(int, u32); -}; - -// -// Forward References: -// - -extern "C" static void fopKyM_CreateAppend__Fv(); -extern "C" static void createAppend__FiP4cXyzP4cXyz(); -extern "C" void fopKyM_Delete__FPv(); -extern "C" static void fopKyM_Create__FsPFPv_iPv(); -extern "C" void fopKyM_create__FsiP4cXyzP4cXyzPFPv_i(); -extern "C" void fopKyM_fastCreate__FsiP4cXyzP4cXyzPFPv_i(); -extern "C" void fopKyM_createWpillar__FPC4cXyzfi(); -extern "C" void fopKyM_createMpillar__FPC4cXyzf(); - -// -// External References: -// +/* 8001F660-8001F6B8 019FA0 0058+00 2/2 0/0 0/0 .text fopKyM_CreateAppend__Fv */ +static fopKyM_prm_class* fopKyM_CreateAppend() { + fopKyM_prm_class* params = + static_cast<fopKyM_prm_class*>(cMl::memalignB(-4, sizeof(fopKyM_prm_class))); + + if (params != NULL) { + cLib_memSet(params, 0, sizeof(fopKyM_prm_class)); + params->field_0xc.set(1.0f, 1.0f, 1.0f); + } + return params; +} -extern "C" void fpcLy_CurrentLayer__Fv(); -extern "C" void fpcM_Delete__FPv(); -extern "C" void fpcM_FastCreate__FsPFPv_iPvPv(); -extern "C" void fpcSCtRq_Request__FP11layer_classsPFPvPv_iPvPv(); -extern "C" void -set__13dPa_control_cFUcUsPC4cXyzPC12dKy_tevstr_cPC5csXyzPC4cXyzUcP18dPa_levelEcallBackScPC8_GXColorPC8_GXColorPC4cXyzf(); -extern "C" void memalignB__3cMlFiUl(); -extern "C" void cLib_memSet__FPviUl(); -extern "C" void _savegpr_28(); -extern "C" void _savegpr_29(); -extern "C" void _restgpr_28(); -extern "C" void _restgpr_29(); -extern "C" extern u8 g_dComIfG_gameInfo[122384]; +/* 8001F6B8-8001F748 019FF8 0090+00 2/2 0/0 0/0 .text createAppend__FiP4cXyzP4cXyz */ +static fopKyM_prm_class* createAppend(int param_0, cXyz* param_1, cXyz* param_2) { + fopKyM_prm_class* params = fopKyM_CreateAppend(); -// -// Declarations: -// + if (params == NULL) { + return NULL; + } -/* ############################################################################################## */ -/* 80451C68-80451C70 000268 0004+04 2/2 0/0 0/0 .sdata2 @3713 */ -SECTION_SDATA2 static f32 lit_3713[1 + 1 /* padding */] = { - 1.0f, - /* padding */ - 0.0f, -}; + if (param_1 != NULL) { + params->field_0x0 = *param_1; + } -/* 8001F660-8001F6B8 019FA0 0058+00 2/2 0/0 0/0 .text fopKyM_CreateAppend__Fv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void fopKyM_CreateAppend() { - nofralloc -#include "asm/f_op/f_op_kankyo_mng/fopKyM_CreateAppend__Fv.s" -} -#pragma pop + if (param_2 != NULL) { + params->field_0xc = *param_2; + } + params->field_0x18 = param_0; -/* 8001F6B8-8001F748 019FF8 0090+00 2/2 0/0 0/0 .text createAppend__FiP4cXyzP4cXyz */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void createAppend(int param_0, cXyz* param_1, cXyz* param_2) { - nofralloc -#include "asm/f_op/f_op_kankyo_mng/createAppend__FiP4cXyzP4cXyz.s" + return params; } -#pragma pop /* 8001F748-8001F768 01A088 0020+00 0/0 3/3 1/1 .text fopKyM_Delete__FPv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void fopKyM_Delete(void* param_0) { - nofralloc -#include "asm/f_op/f_op_kankyo_mng/fopKyM_Delete__FPv.s" +void fopKyM_Delete(void* process) { + fpcM_Delete(process); } -#pragma pop /* 8001F768-8001F7B8 01A0A8 0050+00 2/2 0/0 0/0 .text fopKyM_Create__FsPFPv_iPv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void fopKyM_Create(s16 param_0, int (*param_1)(void*), void* param_2) { - nofralloc -#include "asm/f_op/f_op_kankyo_mng/fopKyM_Create__FsPFPv_iPv.s" +static int fopKyM_Create(s16 procName, fopKyM_CreateFunc createFunc, void* process) { + return fpcM_Create(procName, createFunc, process); } -#pragma pop /* 8001F7B8-8001F818 01A0F8 0060+00 0/0 3/3 1/1 .text fopKyM_create__FsiP4cXyzP4cXyzPFPv_i */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void fopKyM_create(s16 param_0, int param_1, cXyz* param_2, cXyz* param_3, - int (*param_4)(void*)) { - nofralloc -#include "asm/f_op/f_op_kankyo_mng/fopKyM_create__FsiP4cXyzP4cXyzPFPv_i.s" +int fopKyM_create(s16 procName, int param_1, cXyz* param_2, cXyz* param_3, + fopKyM_CreateFunc createFunc) { + fopKyM_prm_class* params = createAppend(param_1, param_2, param_3); + + if (params == NULL) { + return -1; + } + + return fopKyM_Create(procName, createFunc, params); } -#pragma pop /* 8001F818-8001F87C 01A158 0064+00 0/0 1/1 0/0 .text fopKyM_fastCreate__FsiP4cXyzP4cXyzPFPv_i */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void fopKyM_fastCreate(s16 param_0, int param_1, cXyz* param_2, cXyz* param_3, - int (*param_4)(void*)) { - nofralloc -#include "asm/f_op/f_op_kankyo_mng/fopKyM_fastCreate__FsiP4cXyzP4cXyzPFPv_i.s" +base_process_class* fopKyM_fastCreate(s16 procName, int param_1, cXyz* param_2, cXyz* param_3, + fopKyM_CreateFunc createFunc) { + fopKyM_prm_class* params = createAppend(param_1, param_2, param_3); + + if (params == NULL) { + return NULL; + } + + return fpcM_FastCreate(procName, createFunc, NULL, params); } -#pragma pop /* 8001F87C-8001F90C 01A1BC 0090+00 0/0 6/6 37/37 .text fopKyM_createWpillar__FPC4cXyzfi */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void fopKyM_createWpillar(cXyz const* param_0, f32 param_1, int param_2) { - nofralloc -#include "asm/f_op/f_op_kankyo_mng/fopKyM_createWpillar__FPC4cXyzfi.s" +int fopKyM_createWpillar(cXyz const* param_0, f32 param_1, int param_2) { + fopKyM_prm_class* params = fopKyM_CreateAppend(); + + if (params == NULL) { + return -1; + } + + params->field_0x0 = *param_0; + params->field_0xc.x = param_1; + params->field_0xc.y = param_1; + params->field_0xc.z = param_1; + params->field_0x18 = param_2; + + return fopKyM_Create(PROC_WPILLAR, NULL, params); } -#pragma pop - -/* ############################################################################################## */ -/* 804505C0-804505C8 000040 0004+04 1/1 0/0 0/0 .sdata m_name$3788 */ -SECTION_SDATA static u8 m_name[4 + 4 /* padding */] = { - 0x87, - 0x57, - 0x87, - 0x58, - /* padding */ - 0x00, - 0x00, - 0x00, - 0x00, -}; /* 8001F90C-8001F9B4 01A24C 00A8+00 0/0 0/0 3/3 .text fopKyM_createMpillar__FPC4cXyzf */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void fopKyM_createMpillar(cXyz const* param_0, f32 param_1) { - nofralloc -#include "asm/f_op/f_op_kankyo_mng/fopKyM_createMpillar__FPC4cXyzf.s" +int fopKyM_createMpillar(cXyz const* param_0, f32 param_1) { + static u16 m_name[2] = { + 0x8757, + 0x8758, + }; + + cXyz tmp; + tmp.x = param_1; + tmp.y = param_1; + tmp.z = param_1; + + for (int i = 0; i < 2; i++) { + dComIfGp_particle_set(m_name[i], param_0, NULL, &tmp); + } + return -1; } -#pragma pop diff --git a/src/f_op/f_op_msg.cpp b/src/f_op/f_op_msg.cpp index c80912ee98..cc8d9c42f2 100644 --- a/src/f_op/f_op_msg.cpp +++ b/src/f_op/f_op_msg.cpp @@ -4,6 +4,8 @@ // #include "f_op/f_op_msg.h" +#include "d/msg/d_msg_class.h" +#include "d/s/d_s_play.h" #include "dol2asm.h" #include "dolphin/types.h" @@ -32,55 +34,54 @@ extern "C" void fpcMtd_Execute__FP20process_method_classPv(); extern "C" void fpcMtd_IsDelete__FP20process_method_classPv(); extern "C" void fpcMtd_Delete__FP20process_method_classPv(); extern "C" void fpcMtd_Create__FP20process_method_classPv(); -extern "C" extern u8 struct_80451124[4]; // // Declarations: // /* 8001F488-8001F4B0 019DC8 0028+00 1/0 0/0 0/0 .text fopMsg_Draw__FPv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm int fopMsg_Draw(void* param_0) { - nofralloc -#include "asm/f_op/f_op_msg/fopMsg_Draw__FPv.s" +static int fopMsg_Draw(void* msg) { + msg_class* m = static_cast<msg_class*>(msg); + return fpcLf_DrawMethod(m->field_0xd8, msg); } -#pragma pop /* 8001F4B0-8001F4E8 019DF0 0038+00 1/0 0/0 0/0 .text fopMsg_Execute__FPv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm int fopMsg_Execute(void* param_0) { - nofralloc -#include "asm/f_op/f_op_msg/fopMsg_Execute__FPv.s" +static int fopMsg_Execute(void* msg) { + msg_class* m = static_cast<msg_class*>(msg); + + int stat = 1; + if (dScnPly_c::isPause()) { + stat = fpcMtd_Execute(&m->field_0xd8->mBase, msg); + } + + return stat; } -#pragma pop /* 8001F4E8-8001F53C 019E28 0054+00 1/0 0/0 0/0 .text fopMsg_IsDelete__FPv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm int fopMsg_IsDelete(void* param_0) { - nofralloc -#include "asm/f_op/f_op_msg/fopMsg_IsDelete__FPv.s" +static int fopMsg_IsDelete(void* msg) { + msg_class* m = static_cast<msg_class*>(msg); + + int stat = fpcMtd_IsDelete(&m->field_0xd8->mBase, msg); + if (stat == 1) { + fopDwTg_DrawQTo(&m->field_0xc4); + } + + return stat; } -#pragma pop /* 8001F53C-8001F588 019E7C 004C+00 1/0 0/0 0/0 .text fopMsg_Delete__FPv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm int fopMsg_Delete(void* param_0) { - nofralloc -#include "asm/f_op/f_op_msg/fopMsg_Delete__FPv.s" +static int fopMsg_Delete(void* msg) { + msg_class* m = static_cast<msg_class*>(msg); + + int stat = fpcMtd_Delete(&m->field_0xd8->mBase, msg); + fopDwTg_DrawQTo(&m->field_0xc4); + + return stat; } -#pragma pop /* ############################################################################################## */ /* 80450CF0-80450CF8 0001F0 0004+04 1/1 0/0 0/0 .sbss fopMsg_MSG_TYPE */ -static u8 fopMsg_MSG_TYPE[4 + 4 /* padding */]; +static int fopMsg_MSG_TYPE; /* 8001F588-8001F660 019EC8 00D8+00 1/0 0/0 0/0 .text fopMsg_Create__FPv */ #pragma push diff --git a/src/f_op/f_op_msg_mng.cpp b/src/f_op/f_op_msg_mng.cpp index f86916988c..3b92dad6cd 100644 --- a/src/f_op/f_op_msg_mng.cpp +++ b/src/f_op/f_op_msg_mng.cpp @@ -5,6 +5,9 @@ #include "f_op/f_op_msg_mng.h" #include "JSystem/J2DGraph/J2DPane.h" +#include "SSystem/SComponent/c_malloc.h" +#include "d/com/d_com_inf_game.h" +#include "d/msg/d_msg_object.h" #include "dol2asm.h" #include "dolphin/types.h" @@ -12,42 +15,10 @@ // Types: // -struct dStage_roomControl_c { - static u8 mProcID[4]; -}; - -struct dMsgObject_c { - /* 80233D04 */ void setMessageIndex(u32, u32, bool); - /* 80233E70 */ void setMessageIndexDemo(u32, bool); - /* 80237A74 */ void setTalkPartner(fopAc_ac_c*); - /* 80238098 */ void endFlowGroup(); - /* 8023826C */ void setTalkActor(fopAc_ac_c*); -}; - -struct dMeter2_c { - /* 8021F6EC */ void emphasisButtonDelete(); -}; - -struct JMSMesgEntry_c {}; - -struct dMeter2Info_c { - /* 8021C250 */ void getString(u32, char*, JMSMesgEntry_c*); -}; - -struct cMl { - /* 80263228 */ void memalignB(int, u32); -}; - struct JMath { static u8 sincosTable_[65536]; }; -struct J2DPicture { - /* 800202CC */ void setBlendRatio(f32, f32); - /* 80020338 */ void append(char const*, f32); - /* 80020368 */ void insert(char const*, u8, f32); -}; - // // Forward References: // @@ -104,11 +75,8 @@ extern "C" void _restgpr_26(); extern "C" void _restgpr_27(); extern "C" void _restgpr_28(); extern "C" void _restgpr_29(); -extern "C" extern u8 g_dComIfG_gameInfo[122384]; -extern "C" extern u8 g_meter2_info[248]; extern "C" extern u8 g_MsgObject_HIO_c[1040]; extern "C" u8 sincosTable___5JMath[65536]; -extern "C" extern u8 g_fpcNd_type[4 + 4 /* padding */]; extern "C" u8 mProcID__20dStage_roomControl_c[4]; // @@ -116,44 +84,28 @@ extern "C" u8 mProcID__20dStage_roomControl_c[4]; // /* 8001F9B4-8001FA24 01A2F4 0070+00 0/0 3/3 0/0 .text fopMsgM_setStageLayer__FPv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void fopMsgM_setStageLayer(void* param_0) { - nofralloc -#include "asm/f_op/f_op_msg_mng/fopMsgM_setStageLayer__FPv.s" +s32 fopMsgM_setStageLayer(void* param_0) { + scene_class* scn = fopScnM_SearchByID(dStage_roomControl_c::getProcID()); + + int id = fopScnM_LayerID(scn); + return fpcM_ChangeLayerID(param_0, id); } -#pragma pop /* 8001FA24-8001FA44 01A364 0020+00 3/3 14/14 4/4 .text fopMsgM_SearchByID__FUi */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm msg_class* fopMsgM_SearchByID(unsigned int param_0) { - nofralloc -#include "asm/f_op/f_op_msg_mng/fopMsgM_SearchByID__FUi.s" +msg_class* fopMsgM_SearchByID(unsigned int id) { + return (msg_class*)fpcEx_SearchByID(id); } -#pragma pop /* 8001FA44-8001FA4C 01A384 0008+00 0/0 2/2 0/0 .text fopMsgM_GetAppend__FPv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void fopMsgM_GetAppend(void* param_0) { - nofralloc -#include "asm/f_op/f_op_msg_mng/fopMsgM_GetAppend__FPv.s" +fopMsg_prm_class* fopMsgM_GetAppend(void* msg) { + msg_class* m = static_cast<msg_class*>(msg); + return (fopMsg_prm_class*)m->field_0x0.mpUserData; } -#pragma pop /* 8001FA4C-8001FA6C 01A38C 0020+00 0/0 2/2 0/0 .text fopMsgM_Delete__FPv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void fopMsgM_Delete(void* param_0) { - nofralloc -#include "asm/f_op/f_op_msg_mng/fopMsgM_Delete__FPv.s" +void fopMsgM_Delete(void* process) { + fpcM_Delete(process); } -#pragma pop /* ############################################################################################## */ /* 80451C70-80451C74 000270 0004+00 6/6 0/0 0/0 .sdata2 @3902 */ @@ -166,23 +118,47 @@ SECTION_SDATA2 static u8 lit_3902[4] = { /* 8001FA6C-8001FB50 01A3AC 00E4+00 1/1 0/0 0/0 .text createAppend__FP10fopAc_ac_cP4cXyzPUlPUlUi */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void createAppend(fopAc_ac_c* param_0, cXyz* param_1, u32* param_2, u32* param_3, - unsigned int param_4) { - nofralloc -#include "asm/f_op/f_op_msg_mng/createAppend__FP10fopAc_ac_cP4cXyzPUlPUlUi.s" +static fopMsg_prm_class* createAppend(fopAc_ac_c* param_0, cXyz* param_1, u32* param_2, + u32* param_3, unsigned int param_4) { + fopMsg_prm_class* params = + static_cast<fopMsg_prm_class*>(cMl::memalignB(-4, sizeof(fopMsg_prm_class))); + + if (params == NULL) { + return NULL; + } + + params->field_0x0 = param_0; + dMsgObject_setTalkActor(param_0); + + if (param_2 != NULL) { + params->field_0x10 = *param_2; + } + + if (param_3 != NULL) { + params->field_0x14 = *param_3; + } + + if (param_1 != NULL) { + params->field_0x4 = *param_1; + } else { + f32 tmp_0 = FLOAT_LABEL(lit_3902); + cXyz tmp(tmp_0, tmp_0, tmp_0); + params->field_0x4 = tmp; + } + + params->field_0x18 = param_4; + + return params; } -#pragma pop /* 8001FB50-8001FC4C 01A490 00FC+00 1/1 0/0 0/0 .text createTimerAppend__FiUlUcUcffffUi */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -static asm void createTimerAppend(int param_0, u32 param_1, u8 param_2, u8 param_3, f32 param_4, - f32 param_5, f32 param_6, f32 param_7, unsigned int param_8) { +static asm fopMsg_prm_timer* createTimerAppend(int param_0, u32 param_1, u8 param_2, u8 param_3, + f32 param_4, f32 param_5, f32 param_6, f32 param_7, + unsigned int param_8) { nofralloc #include "asm/f_op/f_op_msg_mng/createTimerAppend__FiUlUcUcffffUi.s" } @@ -190,34 +166,34 @@ static asm void createTimerAppend(int param_0, u32 param_1, u8 param_2, u8 param /* 8001FC4C-8001FCC0 01A58C 0074+00 0/0 1/1 0/0 .text * fopMsgM_create__FsP10fopAc_ac_cP4cXyzPUlPUlPFPv_i */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void fopMsgM_create(s16 param_0, fopAc_ac_c* param_1, cXyz* param_2, u32* param_3, u32* param_4, - int (*param_5)(void*)) { - nofralloc -#include "asm/f_op/f_op_msg_mng/fopMsgM_create__FsP10fopAc_ac_cP4cXyzPUlPUlPFPv_i.s" +s32 fopMsgM_create(s16 param_0, fopAc_ac_c* param_1, cXyz* param_2, u32* param_3, u32* param_4, + fopMsgCreateFunc createFunc) { + fopMsg_prm_class* params = createAppend(param_1, param_2, param_3, param_4, -1); + + if (params == NULL) { + return -1; + } + + return fpcSCtRq_Request(fpcLy_CurrentLayer(), param_0, (stdCreateFunc)createFunc, NULL, params); } -#pragma pop /* 8001FCC0-8001FD34 01A600 0074+00 0/0 2/2 0/0 .text fop_Timer_create__FsUcUlUcUcffffPFPv_i */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void fop_Timer_create(s16 param_0, u8 param_1, u32 param_2, u8 param_3, u8 param_4, f32 param_5, - f32 param_6, f32 param_7, f32 param_8, int (*param_9)(void*)) { - nofralloc -#include "asm/f_op/f_op_msg_mng/fop_Timer_create__FsUcUlUcUcffffPFPv_i.s" +s32 fop_Timer_create(s16 param_0, u8 param_1, u32 param_2, u8 param_3, u8 param_4, f32 param_5, + f32 param_6, f32 param_7, f32 param_8, fopMsgCreateFunc createFunc) { + fopMsg_prm_timer* timer_prm = createTimerAppend(param_1, param_2, param_3, param_4, param_5, + param_6, param_7, param_8, -1); + + if (timer_prm == NULL) { + return -1; + } + + return fpcSCtRq_Request(fpcLy_CurrentLayer(), param_0, (stdCreateFunc)createFunc, NULL, + timer_prm); } -#pragma pop /* ############################################################################################## */ /* 804505C8-804505D0 000048 0004+04 4/4 0/0 0/0 .sdata i_msgID */ -SECTION_SDATA static u32 i_msgID[1 + 1 /* padding */] = { - 0xFFFFFFFF, - /* padding */ - 0x00000000, -}; +SECTION_SDATA static u32 i_msgID = 0xFFFFFFFF; /* 8001FD34-8001FE84 01A674 0150+00 0/0 2/2 1/1 .text fopMsgM_messageSet__FUlP10fopAc_ac_cUl */ #pragma push @@ -250,24 +226,15 @@ asm void fopMsgM_messageSetDemo(u32 param_0) { #pragma pop /* 800200C0-80020100 01AA00 0040+00 0/0 7/7 1/1 .text fopMsgM_messageGet__FPcUl */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void fopMsgM_messageGet(char* param_0, u32 param_1) { - nofralloc -#include "asm/f_op/f_op_msg_mng/fopMsgM_messageGet__FPcUl.s" +char* fopMsgM_messageGet(char* msg, u32 string_id) { + dMeter2Info_getString(string_id, msg, NULL); + return msg; } -#pragma pop /* 80020100-80020108 01AA40 0008+00 0/0 1/1 0/0 .text fopMsgM_setMessageID__FUi */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void fopMsgM_setMessageID(unsigned int param_0) { - nofralloc -#include "asm/f_op/f_op_msg_mng/fopMsgM_setMessageID__FUi.s" +void fopMsgM_setMessageID(unsigned int msg_id) { + i_msgID = msg_id; } -#pragma pop /* 80020108-80020158 01AA48 0050+00 0/0 2/2 0/0 .text fopMsgM_Create__FsPFPv_iPv */ #pragma push @@ -280,8 +247,8 @@ asm u32 fopMsgM_Create(s16 param_0, int (*param_1)(void*), void* param_2) { #pragma pop /* 80020158-80020160 -00001 0008+00 0/0 0/0 0/0 .text setAlpha__7J2DPaneFUc */ -void J2DPane::setAlpha(u8 param_0) { - *(u8*)(((u8*)this) + 178) /* this->field_0xb2 */ = (u8)(param_0); +void J2DPane::setAlpha(u8 alpha) { + mAlpha = alpha; } /* ############################################################################################## */ @@ -327,52 +294,32 @@ asm void fopMsgM_valueIncrease(int param_0, int param_1, u8 param_2) { #pragma pop /* 800202CC-80020338 01AC0C 006C+00 0/0 2/0 0/0 .text setBlendRatio__10J2DPictureFff */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void J2DPicture::setBlendRatio(f32 param_0, f32 param_1) { - nofralloc -#include "asm/f_op/f_op_msg_mng/setBlendRatio__10J2DPictureFff.s" +void J2DPicture::setBlendRatio(f32 param_0, f32 param_1) { + setBlendColorRatio(param_0, param_1); + setBlendAlphaRatio(param_0, param_1); } -#pragma pop /* 80020338-80020368 01AC78 0030+00 0/0 1/0 0/0 .text append__10J2DPictureFPCcf */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void J2DPicture::append(char const* param_0, f32 param_1) { - nofralloc -#include "asm/f_op/f_op_msg_mng/append__10J2DPictureFPCcf.s" +void J2DPicture::append(char const* param_0, f32 param_1) { + insert(param_0, mTextureCount, param_1); } -#pragma pop /* 80020368-8002039C 01ACA8 0034+00 0/0 1/0 0/0 .text insert__10J2DPictureFPCcUcf */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void J2DPicture::insert(char const* param_0, u8 param_1, f32 param_2) { - nofralloc -#include "asm/f_op/f_op_msg_mng/insert__10J2DPictureFPCcUcf.s" +void J2DPicture::insert(char const* param_0, u8 param_1, f32 param_2) { + insert(param_0, NULL, param_1, param_2); } -#pragma pop /* 8002039C-800203E0 01ACDC 0044+00 0/0 3/3 0/0 .text fopMsgM_createExpHeap__FUlP7JKRHeap */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm JKRExpHeap* fopMsgM_createExpHeap(u32 param_0, JKRHeap* param_1) { - nofralloc -#include "asm/f_op/f_op_msg_mng/fopMsgM_createExpHeap__FUlP7JKRHeap.s" +JKRExpHeap* fopMsgM_createExpHeap(u32 param_0, JKRHeap* heap) { + if (heap == NULL) { + heap = mDoExt_getGameHeap(); + } + + return JKRExpHeap::create(param_0, heap, false); } -#pragma pop /* 800203E0-80020400 01AD20 0020+00 0/0 3/3 0/0 .text fopMsgM_destroyExpHeap__FP10JKRExpHeap */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void fopMsgM_destroyExpHeap(JKRExpHeap* param_0) { - nofralloc -#include "asm/f_op/f_op_msg_mng/fopMsgM_destroyExpHeap__FP10JKRExpHeap.s" +void fopMsgM_destroyExpHeap(JKRExpHeap* heap) { + heap->destroy(); } -#pragma pop diff --git a/src/f_op/f_op_overlap.cpp b/src/f_op/f_op_overlap.cpp index 4438ab317c..73fe5487e1 100644 --- a/src/f_op/f_op_overlap.cpp +++ b/src/f_op/f_op_overlap.cpp @@ -6,6 +6,7 @@ #include "f_op/f_op_overlap.h" #include "dol2asm.h" #include "dolphin/types.h" +#include "f_op/f_op_overlap_mng.h" // // Forward References: @@ -34,44 +35,28 @@ extern "C" void cReq_Create__FP18request_base_classUc(); // /* 8001E37C-8001E3A4 018CBC 0028+00 1/0 0/0 0/0 .text fopOvlp_Draw__FPv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void fopOvlp_Draw(void* param_0) { - nofralloc -#include "asm/f_op/f_op_overlap/fopOvlp_Draw__FPv.s" +static s32 fopOvlp_Draw(void* ovlp) { + overlap_task_class* overlap = (overlap_task_class*)ovlp; + return fpcLf_DrawMethod(overlap->field_0xc0, ovlp); } -#pragma pop /* 8001E3A4-8001E3CC 018CE4 0028+00 1/0 0/0 0/0 .text fopOvlp_Execute__FPv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void fopOvlp_Execute(void* param_0) { - nofralloc -#include "asm/f_op/f_op_overlap/fopOvlp_Execute__FPv.s" +static s32 fopOvlp_Execute(void* ovlp) { + overlap_task_class* overlap = (overlap_task_class*)ovlp; + return fpcMtd_Execute(&overlap->field_0xc0->mBase, ovlp); } -#pragma pop /* 8001E3CC-8001E3F4 018D0C 0028+00 1/0 0/0 0/0 .text fopOvlp_IsDelete__FPv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void fopOvlp_IsDelete(void* param_0) { - nofralloc -#include "asm/f_op/f_op_overlap/fopOvlp_IsDelete__FPv.s" +static s32 fopOvlp_IsDelete(void* ovlp) { + overlap_task_class* overlap = (overlap_task_class*)ovlp; + return fpcMtd_IsDelete(&overlap->field_0xc0->mBase, ovlp); } -#pragma pop /* 8001E3F4-8001E41C 018D34 0028+00 1/0 0/0 0/0 .text fopOvlp_Delete__FPv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void fopOvlp_Delete(void* param_0) { - nofralloc -#include "asm/f_op/f_op_overlap/fopOvlp_Delete__FPv.s" +static s32 fopOvlp_Delete(void* ovlp) { + overlap_task_class* overlap = (overlap_task_class*)ovlp; + return fpcMtd_Delete(&overlap->field_0xc0->mBase, ovlp); } -#pragma pop /* 8001E41C-8001E484 018D5C 0068+00 1/0 0/0 0/0 .text fopOvlp_Create__FPv */ #pragma push diff --git a/src/f_op/f_op_scene_mng.cpp b/src/f_op/f_op_scene_mng.cpp index a71b3d7e48..6beef4ed59 100644 --- a/src/f_op/f_op_scene_mng.cpp +++ b/src/f_op/f_op_scene_mng.cpp @@ -15,8 +15,8 @@ // /* 8001ECB0-8001ECE0 0195F0 0030+00 0/0 7/7 1/1 .text fopScnM_SearchByID__FUi */ -void* fopScnM_SearchByID(unsigned int id) { - return fopScnIt_Judge((fop_ScnItFunc)fpcSch_JudgeByID, &id); +scene_class* fopScnM_SearchByID(unsigned int id) { + return (scene_class*)fopScnIt_Judge((fop_ScnItFunc)fpcSch_JudgeByID, &id); } /* ############################################################################################## */ diff --git a/src/m_Do/m_Do_controller_pad.cpp b/src/m_Do/m_Do_controller_pad.cpp index 0a3ebec8ac..45f9581cce 100644 --- a/src/m_Do/m_Do_controller_pad.cpp +++ b/src/m_Do/m_Do_controller_pad.cpp @@ -7,40 +7,13 @@ #include "SSystem/SComponent/c_lib.h" #include "dol2asm.h" #include "dolphin/types.h" - -// -// Forward References: -// - -extern "C" void create__8mDoCPd_cFv(); -extern "C" void read__8mDoCPd_cFv(); -extern "C" void convert__8mDoCPd_cFP27interface_of_controller_padP10JUTGamePad(); -extern "C" void LRlockCheck__8mDoCPd_cFP27interface_of_controller_pad(); -extern "C" void recalibrate__8mDoCPd_cFv(); -extern "C" u8 m_gamePad__8mDoCPd_c[16]; -extern "C" u8 m_cpadInfo__8mDoCPd_c[256]; +#include "f_ap/f_ap_game.h" // // External References: // -extern "C" void mDoRst_resetCallBack__FiPv(); -extern "C" void cLib_memSet__FPviUl(); -extern "C" void* __nw__FUl(); -extern "C" void __ct__10JUTGamePadFQ210JUTGamePad8EPadPort(); -extern "C" void read__10JUTGamePadFv(); -extern "C" void clearForReset__10JUTGamePadFv(); -extern "C" void getGamePad__10JUTGamePadFi(); -extern "C" void setEnabled__Q210JUTGamePad7CRumbleFUl(); -extern "C" void _savegpr_29(); -extern "C" void _restgpr_29(); -extern "C" extern u8 g_HIO[64 + 4 /* padding */]; extern "C" extern s8 data_80450580; -extern "C" u8 mResetData__6mDoRst[4 + 4 /* padding */]; -extern "C" u8 sAnalogMode__10JUTGamePad[4]; -extern "C" u8 sCallback__Q210JUTGamePad13C3ButtonReset[4]; -extern "C" u8 sCallbackArg__Q210JUTGamePad13C3ButtonReset[4 + 4 /* padding */]; -extern "C" extern bool struct_80451500; // // Declarations: @@ -85,37 +58,32 @@ void mDoCPd_c::create() { } /* 80007A94-80007B7C 0023D4 00E8+00 0/0 1/1 0/0 .text read__8mDoCPd_cFv */ -#ifdef NONMATCHING void mDoCPd_c::read() { JUTGamePad::read(); if (!mDoRst::isReset() && mDoRst::is3ButtonReset()) { JUTGamePad* pad = JUTGamePad::getGamePad(mDoRst::get3ButtonResetPort()); - if (!pad->isPushing3ButtonReset()) { // Make the rumble thing right + if (!pad->isPushing3ButtonReset()) { mDoRst::off3ButtonReset(); } } - for (int i = 0; i < 4; i++) { - if (m_gamePad[i] == NULL) { - cLib_memSet(m_gamePad[i], 0, 0x40); + JUTGamePad** pad = m_gamePad; + interface_of_controller_pad* interface = m_cpadInfo; + + for (u32 i = 0; i < 4; i++) { + if (*pad == NULL) { + cLib_memSet(interface, 0, sizeof(interface_of_controller_pad)); } else { - convert(&m_cpadInfo[i], m_gamePad[i]); - LRlockCheck(&m_cpadInfo[i]); + convert(interface, *pad); + LRlockCheck(interface); } + + pad++; + interface++; } } -#else -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void mDoCPd_c::read() { - nofralloc -#include "asm/m_Do/m_Do_controller_pad/read__8mDoCPd_cFv.s" -} -#pragma pop -#endif /* 80007B7C-80007CD0 0024BC 0154+00 1/1 0/0 0/0 .text * convert__8mDoCPd_cFP27interface_of_controller_padP10JUTGamePad */ @@ -141,44 +109,30 @@ void mDoCPd_c::convert(interface_of_controller_pad* pInterface, JUTGamePad* pPad /* 80007CD0-80007D74 002610 00A4+00 1/1 0/0 0/0 .text * LRlockCheck__8mDoCPd_cFP27interface_of_controller_pad */ -#ifdef NONMATCHING -void mDoCPd_c::LRlockCheck(interface_of_controller_pad* controllerInterface) { - float temp_1 = controllerInterface->trigger_left; // not sure if temp is left or right - controllerInterface->field_0x3a = false; - controllerInterface->field_0x3c = false; - if (temp_1 <= g_HIO.float_global_1) { // controllerInterface->trigger_left) { - if (temp_1 < g_HIO.float_global_2) { - controllerInterface->field_0x39 = false; - } - } else { - if (controllerInterface->field_0x39 == false) { - controllerInterface->field_0x3a = true; +void mDoCPd_c::LRlockCheck(interface_of_controller_pad* interface) { + f32 trig_left = interface->mTriggerLeft; + interface->mTrigLockL = false; + interface->mTrigLockR = false; + + if (trig_left > fapGmHIO_getLROnValue()) { + if (interface->mHoldLockL != true) { + interface->mTrigLockL = true; } - controllerInterface->field_0x39 = true; + interface->mHoldLockL = true; + } else if (trig_left < fapGmHIO_getLROffValue()) { + interface->mHoldLockL = false; } - if (controllerInterface->trigger_right > g_HIO.float_global_1) { - if (controllerInterface->field_0x3b == false) { - controllerInterface->field_0x3c = true; + + f32 trig_right = interface->mTriggerRight; + if (trig_right > fapGmHIO_getLROnValue()) { + if (interface->mHoldLockR != true) { + interface->mTrigLockR = true; } - controllerInterface->field_0x3b = true; - return; - } - if (controllerInterface->trigger_right >= g_HIO.float_global_2) { - return; + interface->mHoldLockR = true; + } else if (trig_right < fapGmHIO_getLROffValue()) { + interface->mHoldLockR = false; } - controllerInterface->field_0x3b = false; - return; -} -#else -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void mDoCPd_c::LRlockCheck(interface_of_controller_pad* param_0) { - nofralloc -#include "asm/m_Do/m_Do_controller_pad/LRlockCheck__8mDoCPd_cFP27interface_of_controller_pad.s" } -#pragma pop -#endif void mDoCPd_c::recalibrate(void) { JUTGamePad::clearForReset(); |
