diff options
| author | hatal175 <hatal175@users.noreply.github.com> | 2023-06-02 23:28:29 +0300 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-06-02 13:28:29 -0700 |
| commit | 598aa4aa8c939b4257e0cd1e009e53c948cd3e90 (patch) | |
| tree | 5a967a05705ae1f9c0315282dab3cf6fc59caa24 /src | |
| parent | 7b7dba2c12e0b67c4d28278ec209fdc8635a3cfd (diff) | |
d_shop_system, d_s_name, s_save_HIO (#343)
* d_s_name OK
* d_save_HIO ok
* d_shop_system functions matching except sinit order issue
Diffstat (limited to 'src')
| -rw-r--r-- | src/d/s/d_s_name.cpp | 293 | ||||
| -rw-r--r-- | src/d/save/d_save_HIO.cpp | 676 | ||||
| -rw-r--r-- | src/d/shop/d_shop_system.cpp | 396 |
3 files changed, 311 insertions, 1054 deletions
diff --git a/src/d/s/d_s_name.cpp b/src/d/s/d_s_name.cpp index 87cadcd654..dc42744c4f 100644 --- a/src/d/s/d_s_name.cpp +++ b/src/d/s/d_s_name.cpp @@ -8,10 +8,9 @@ #include "d/com/d_com_inf_game.h" #include "d/d_procname.h" #include "d/meter/d_meter2_info.h" -#include "dol2asm.h" #include "dolphin/types.h" #include "f_op/f_op_overlap_mng.h" -#include "f_op/f_op_scene.h" +#include "f_op/f_op_scene_mng.h" #include "f_pc/f_pc_manager.h" #include "global.h" #include "m_Do/m_Do_Reset.h" @@ -33,12 +32,7 @@ public: /* 0x5 */ u8 mFileSelWaitTime; }; -class dScnName_camera_c : public camera_process_class { -public: - dScnName_camera_c() { field_0x22f = 84; } - /* 80259294 */ virtual ~dScnName_camera_c() {} -}; - +// TODO: Remove when dFile_select_c virtual functions are properly defined in header class dFile_select_c { public: /* 8018366C */ dFile_select_c(JKRArchive*); @@ -67,6 +61,7 @@ private: /* 0x2375 */ u8 field_0x2375[0x237c - 0x2375]; }; +// TODO: Remove when dBrightCheck_c virtual functions are properly defined in header class dBrightCheck_c { public: /* 80192F10 */ dBrightCheck_c(JKRArchive*); @@ -80,129 +75,19 @@ public: /* 0x19 */ bool mEnd; }; -class dScnName_c : public scene_class { -public: - dScnName_c() {} - - /* 802588A0 */ s32 create(); - /* 80258B2C */ void setView(); - /* 80258BC8 */ s32 execute(); - /* 80258C5C */ s32 draw(); - /* 80258CC8 */ ~dScnName_c(); - /* 80258DD0 */ void FileSelectOpen(); - /* 80258E34 */ void FileSelectMain(); - /* 80258E78 */ void FileSelectMainNormal(); - /* 80258F20 */ void FileSelectClose(); - /* 80258FD4 */ void brightCheckOpen(); - /* 80259008 */ void brightCheck(); - /* 802590F8 */ void changeGameScene(); -private: - /* 0x1C4 */ request_of_phase_process_class field_0x1c4; - /* 0x1CC */ JKRExpHeap* mHeap; - /* 0x1D0 */ JKRExpHeap* field_0x1d0; - /* 0x1D4 */ dScnName_camera_c mCamera; - /* 0x414 */ dFile_select_c* dFs_c; - /* 0x418 */ dBrightCheck_c* mBrightCheck; - /* 0x41C */ u8 field_0x41c; - /* 0x41D */ u8 field_0x41d; - /* 0x41E */ u8 field_0x41e; - /* 0x41F */ u8 field_0x41f; - /* 0x420 */ u8 field_0x420; -}; // // Forward References: // -extern "C" void __ct__9dSn_HIO_cFv(); -extern "C" static void phase_1__FPc(); -extern "C" static void phase_2__FPc(); -extern "C" static void resLoad__FP30request_of_phase_process_classPc(); -extern "C" void create__10dScnName_cFv(); -extern "C" void setView__10dScnName_cFv(); -extern "C" void execute__10dScnName_cFv(); -extern "C" void draw__10dScnName_cFv(); -extern "C" void __dt__10dScnName_cFv(); -extern "C" void FileSelectOpen__10dScnName_cFv(); -extern "C" void FileSelectMain__10dScnName_cFv(); -extern "C" void FileSelectMainNormal__10dScnName_cFv(); -extern "C" void FileSelectClose__10dScnName_cFv(); -extern "C" void brightCheckOpen__10dScnName_cFv(); -extern "C" void brightCheck__10dScnName_cFv(); -extern "C" void changeGameScene__10dScnName_cFv(); -extern "C" static void dScnName_Draw__FP10dScnName_c(); -extern "C" static void dScnName_Execute__FP10dScnName_c(); -extern "C" static void dScnName_IsDelete__FP10dScnName_c(); -extern "C" static void dScnName_Delete__FP10dScnName_c(); -extern "C" static void dScnName_Create__FP11scene_class(); -extern "C" void __dt__17dScnName_camera_cFv(); -extern "C" void __dt__9dSn_HIO_cFv(); -extern "C" void __sinit_d_s_name_cpp(); -extern "C" extern char const* const d_s_d_s_name__stringBase0; - -// -// External References: -// - -extern "C" void mDoMtx_lookAt__FPA4_fPC3VecPC3Vecs(); -extern "C" void mDoMtx_concatProjView__FPA4_CfPA4_CfPA4_f(); -extern "C" void mDoExt_getGameHeap__Fv(); -extern "C" void mDoExt_setCurrentHeap__FP7JKRHeap(); -extern "C" void fopOvlpM_IsPeek__Fv(); -extern "C" void fopScnM_ChangeReq__FP11scene_classssUs(); -extern "C" void dComIfG_resetToOpening__FP11scene_class(); -extern "C" void dComIfGp_setNextStage__FPCcsScSc(); -extern "C" void dComIfGs_gameStart__Fv(); -extern "C" void dComLbG_PhaseHandler__FP30request_of_phase_process_classPPFPv_iPv(); -extern "C" void offFirstBit__21dSv_player_get_item_cFUc(); -extern "C" void setRes__14dRes_control_cFPCcP11dRes_info_ciPCcUcP7JKRHeap(); -extern "C" void syncRes__14dRes_control_cFPCcP11dRes_info_ci(); -extern "C" void deleteRes__14dRes_control_cFPCcP11dRes_info_ci(); -extern "C" void getResInfo__14dRes_control_cFPCcP11dRes_info_ci(); -extern "C" void cleanup__13dPa_control_cFv(); -extern "C" void setViewPort__14dDlst_window_cFffffff(); -extern "C" void setScissor__14dDlst_window_cFffff(); -extern "C" void Run__12dVibration_cFv(); -extern "C" void Init__12dVibration_cFv(); -extern "C" void __ct__14dFile_select_cFP10JKRArchive(); -extern "C" void _create__14dFile_select_cFv(); -extern "C" void _move__14dFile_select_cFv(); -extern "C" void _draw__14dFile_select_cFv(); -extern "C" void __ct__14dBrightCheck_cFP10JKRArchive(); -extern "C" void _move__14dBrightCheck_cFv(); -extern "C" void _draw__14dBrightCheck_cFv(); -extern "C" void dKy_clear_game_init__Fv(); -extern "C" void dKy_setLight_init__Fv(); -extern "C" void changeWater__13dMeter2Info_cFUc(); -extern "C" void bgmStart__8Z2SeqMgrFUlUll(); -extern "C" void bgmStop__8Z2SeqMgrFUll(); -extern "C" void bgmStreamPrepare__8Z2SeqMgrFUl(); -extern "C" void bgmStreamPlay__8Z2SeqMgrFv(); -extern "C" void becomeCurrentHeap__7JKRHeapFv(); -extern "C" void destroy__7JKRHeapFv(); -extern "C" void* __nw__FUl(); -extern "C" void __dl__FPv(); -extern "C" void create__10JKRExpHeapFUlP7JKRHeapb(); -extern "C" void __register_global_object(); -extern "C" void __ptmf_scall(); -extern "C" void _savegpr_28(); -extern "C" void _restgpr_28(); -// extern "C" extern void* g_fopScn_Method[5 + 1 /* padding */]; -// extern "C" extern void* g_fpcNd_Method[5 + 1 /* padding */]; -extern "C" void* mRenderModeObj__15mDoMch_render_c[1 + 1 /* padding */]; -extern "C" u8 mFader__13mDoGph_gInf_c[4]; -extern "C" u8 mResetData__6mDoRst[4 + 4 /* padding */]; -extern "C" u8 sManager__10JFWDisplay[4]; -extern "C" u8 mAudioMgrPtr__10Z2AudioMgr[4 + 4 /* padding */]; - // // Declarations: // /* ############################################################################################## */ /* 803C3040-803C304C 020160 000C+00 1/1 0/0 0/0 .data cNullVec__6Z2Calc */ -SECTION_DATA static u8 cNullVec__6Z2Calc[12] = { +static u8 cNullVec__6Z2Calc[12] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, }; @@ -211,46 +96,11 @@ static dSn_HIO_c g_snHIO; /* 803C3094-803C30DC 0201B4 0048+00 1/2 0/0 0/0 .data MainProc */ typedef void (dScnName_c::*mainProcFunc)(void); -SECTION_DATA static mainProcFunc MainProc[6] = { +static mainProcFunc MainProc[6] = { &dScnName_c::FileSelectOpen, &dScnName_c::FileSelectMain, &dScnName_c::FileSelectClose, &dScnName_c::brightCheckOpen, &dScnName_c::brightCheck, &dScnName_c::changeGameScene, }; -/* 803C30DC-803C30F0 -00001 0014+00 2/0 0/0 0/0 .data l_dScnName_Method */ -SECTION_DATA static void* l_dScnName_Method[5] = { - (void*)dScnName_Create__FP11scene_class, (void*)dScnName_Delete__FP10dScnName_c, - (void*)dScnName_Execute__FP10dScnName_c, (void*)dScnName_IsDelete__FP10dScnName_c, - (void*)dScnName_Draw__FP10dScnName_c, -}; - -/* 803C30F0-803C3118 -00001 0028+00 0/0 0/0 1/0 .data g_profile_NAME_SCENE */ -SECTION_DATA extern void* g_profile_NAME_SCENE[10] = { - (void*)NULL, - (void*)0x0001FFFD, - (void*)0x000D0000, - (void*)&g_fpcNd_Method, - (void*)0x00000424, - (void*)NULL, - (void*)NULL, - (void*)&g_fopScn_Method, - (void*)&l_dScnName_Method, - (void*)NULL, -}; - -/* 803C3118-803C3140 -00001 0028+00 0/0 0/0 1/0 .data g_profile_NAMEEX_SCENE */ -SECTION_DATA extern void* g_profile_NAMEEX_SCENE[10] = { - (void*)NULL, - (void*)0x0001FFFD, - (void*)0x000E0000, - (void*)&g_fpcNd_Method, - (void*)0x00000424, - (void*)NULL, - (void*)NULL, - (void*)&g_fopScn_Method, - (void*)&l_dScnName_Method, - (void*)NULL, -}; - /* 8025878C-802587A4 2530CC 0018+00 1/1 0/0 0/0 .text __ct__9dSn_HIO_cFv */ dSn_HIO_c::dSn_HIO_c() { mFileSelWaitTime = 15; @@ -286,47 +136,12 @@ static s32 resLoad(request_of_phase_process_class* i_phase, char* param_1) { } /* ############################################################################################## */ -/* 8039A2A8-8039A2A8 026908 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_8039A2B5 = "fileSel"; -#pragma pop - -/* 80454EF8-80454EFC 0034F8 0004+00 2/2 0/0 0/0 .sdata2 @3923 */ -SECTION_SDATA2 static u8 lit_3923[4] = { - 0x00, - 0x00, - 0x00, - 0x00, -}; - -/* 80454EFC-80454F00 0034FC 0004+00 1/1 0/0 0/0 .sdata2 @3924 */ -SECTION_SDATA2 static f32 lit_3924 = 1.0f; - -/* 80454F00-80454F04 003500 0004+00 1/1 0/0 0/0 .sdata2 @3925 */ -SECTION_SDATA2 static f32 lit_3925 = 100000.0f; - -/* 80454F04-80454F08 003504 0004+00 1/1 0/0 0/0 .sdata2 @3926 */ -SECTION_SDATA2 static f32 lit_3926 = 45.0f; - -/* 80454F08-80454F0C 003508 0004+00 1/1 0/0 0/0 .sdata2 @3927 */ -SECTION_SDATA2 static f32 lit_3927 = 19.0f / 14.0f; - -/* 80454F0C-80454F10 00350C 0004+00 1/1 0/0 0/0 .sdata2 @3928 */ -SECTION_SDATA2 static f32 lit_3928 = -1000.0f; -/* 80454F10-80454F18 003510 0008+00 1/1 0/0 0/0 .sdata2 @3930 */ -SECTION_SDATA2 static f64 lit_3930 = 4503599627370496.0 /* cast u32 to float */; - -/* 802588A0-80258B2C 2531E0 028C+00 1/1 0/0 0/0 .text create__10dScnName_cFv */ -#ifdef NONMATCHING s32 dScnName_c::create() { int phase_state = resLoad(&field_0x1c4, "fileSel"); if (phase_state == cPhs_COMPLEATE_e) { mHeap = JKRExpHeap::create(0x180000, mDoExt_getGameHeap(), false); - JKRExpHeap* heap = mHeap; - mDoExt_setCurrentHeap(heap); - field_0x1d0 = heap; + field_0x1d0 = (JKRExpHeap*)mDoExt_setCurrentHeap(mHeap); dRes_info_c* res = dComIfG_getObjectResInfo("fileSel"); dFs_c = new dFile_select_c(res->getArchive()); @@ -346,28 +161,20 @@ s32 dScnName_c::create() { dComIfGp_setWindowNum(1); dComIfGp_setWindow(0, 0.0f, 0.0f, mDoMch_render_c::getFbWidth(), mDoMch_render_c::getEfbHeight(), 0.0f, 1.0f, 0, 2); - dComIfGp_setCamera(0, &mCamera); - // dDlst_window_c* window = &g_dComIfG_gameInfo.play.mWindow[0]; - - /* fopCamM_SetNear(&mCamera, 1.0f); - fopCamM_SetFar(&mCamera, 100000.0f); - fopCamM_SetFovy(&mCamera, 45.0f); - fopCamM_SetAspect(&mCamera, mDoGph_gInf_c::getWidthF() / mDoGph_gInf_c::getHeightF()); - fopCamM_SetEye(&mCamera, 0.0f, 0.0f, -1000.0f); - fopCamM_SetCenter(&mCamera, 0.0f, 0.0f, 0.0f); - fopCamM_SetBank(&mCamera, 0); */ + dDlst_window_c* window = dComIfGp_getWindow(0); + dComIfGp_setCamera(0, (camera_class*)&mCamera); mCamera.mNear = 1.0f; mCamera.mFar = 100000.0f; mCamera.mFovy = 45.0f; mCamera.mAspect = mDoGph_gInf_c::getWidthF() / mDoGph_gInf_c::getHeightF(); - mCamera.field_0xd8.mEye.set(0.0f, 0.0f, -1000.0f); - mCamera.field_0xd8.mCenter.set(0.0f, 0.0f, 0.0f); + mCamera.mLookat.mEye.set(0.0f, 0.0f, -1000.0f); + mCamera.mLookat.mCenter.set(0.0f, 0.0f, 0.0f); mCamera.mBank = 0; dComIfGp_setPlayer(0, NULL); - dComIfGd_setWindow(g_dComIfG_gameInfo.play.mWindow); - dComIfGd_setViewport(g_dComIfG_gameInfo.play.mWindow->getViewPort()); + dComIfGd_setWindow(window); + dComIfGd_setViewport(window->getViewPort()); dComIfGd_setView(&mCamera); mDoGph_gInf_c::offAutoForcus(); setView(); @@ -381,16 +188,6 @@ s32 dScnName_c::create() { } return phase_state; } -#else -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm s32 dScnName_c::create() { - nofralloc -#include "asm/d/s/d_s_name/create__10dScnName_cFv.s" -} -#pragma pop -#endif /* 80258B2C-80258BC8 25346C 009C+00 1/1 0/0 0/0 .text setView__10dScnName_cFv */ void dScnName_c::setView() { @@ -400,10 +197,9 @@ void dScnName_c::setView() { mCamera.mBank); PSMTXInverse(mCamera.mViewMtx, mCamera.mInvViewMtx); PSMTXCopy(mCamera.mViewMtx, mCamera.mViewMtxNoTrans); - f32 tmp_0 = FLOAT_LABEL(lit_3923); - mCamera.mViewMtxNoTrans[0][3] = tmp_0; - mCamera.mViewMtxNoTrans[1][3] = tmp_0; - mCamera.mViewMtxNoTrans[2][3] = tmp_0; + mCamera.mViewMtxNoTrans[0][3] = 0.0f; + mCamera.mViewMtxNoTrans[1][3] = 0.0f; + mCamera.mViewMtxNoTrans[2][3] = 0.0f; PSMTXCopy(mCamera.mViewMtx, j3dSys.mViewMtx); mDoMtx_concatProjView(mCamera.mProjMtx, mCamera.mViewMtx, mCamera.mProjViewMtx); } @@ -532,21 +328,12 @@ void dScnName_c::brightCheck() { } /* ############################################################################################## */ -/* 8039A2A8-8039A2A8 026908 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_8039A2BD = "F_SP108"; -/* @stringBase0 padding */ -SECTION_DEAD static char const* const pad_8039A2C5 = "\0\0"; -#pragma pop /* 802590F8-802591C0 253A38 00C8+00 1/0 0/0 0/0 .text changeGameScene__10dScnName_cFv */ -// weird comparison in changeReq -#ifdef NONMATCHING void dScnName_c::changeGameScene() { if (!mDoRst::isReset() && !fopOvlpM_IsPeek()) { dComIfGs_gameStart(); - fopScnM_ChangeReq(this, field_0x41f == 0 ? PROC_PLAY_SCENE : 10, 0, 5); + fopScnM_ChangeReq(this, field_0x41f == 0 ? PROC_PLAY_SCENE : PROC_PLAY_SCENE, 0, 5); dComIfGp_offEnableNextStage(); if (dFs_c->isDataNew(dFs_c->getSelectNum())) { @@ -557,16 +344,6 @@ void dScnName_c::changeGameScene() { dComIfGs_setRestartRoomParam(0); } } -#else -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dScnName_c::changeGameScene() { - nofralloc -#include "asm/d/s/d_s_name/changeGameScene__10dScnName_cFv.s" -} -#pragma pop -#endif /* 802591C0-802591E0 253B00 0020+00 1/0 0/0 0/0 .text dScnName_Draw__FP10dScnName_c */ static void dScnName_Draw(dScnName_c* scn) { @@ -598,3 +375,41 @@ static void dScnName_Create(scene_class* scn) { } /* 8039A2A8-8039A2A8 026908 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ + + +/* 803C30DC-803C30F0 -00001 0014+00 2/0 0/0 0/0 .data l_dScnName_Method */ +static leafdraw_method_class l_dScnName_Method = { + (process_method_func)dScnName_Create, (process_method_func)dScnName_Delete, + (process_method_func)dScnName_Execute, (process_method_func)dScnName_IsDelete, + (process_method_func)dScnName_Draw, +}; + +/* 803C30F0-803C3118 -00001 0028+00 0/0 0/0 1/0 .data g_profile_NAME_SCENE */ +extern scene_process_profile_definition g_profile_NAME_SCENE = { + 0, + 1, + -3, + PROC_NAME_SCENE, + &g_fpcNd_Method.mBase, + sizeof(dScnName_c), + 0, + 0, + &g_fopScn_Method.mBase, + (process_method_class*)&l_dScnName_Method, + NULL, +}; + +/* 803C3118-803C3140 -00001 0028+00 0/0 0/0 1/0 .data g_profile_NAMEEX_SCENE */ +extern scene_process_profile_definition g_profile_NAMEEX_SCENE = { + 0, + 1, + -3, + PROC_NAMEEX_SCENE, + &g_fpcNd_Method.mBase, + sizeof(dScnName_c), + 0, + 0, + &g_fopScn_Method.mBase, + (process_method_class*)&l_dScnName_Method, + NULL, +}; diff --git a/src/d/save/d_save_HIO.cpp b/src/d/save/d_save_HIO.cpp index f7092ae539..14060b8b94 100644 --- a/src/d/save/d_save_HIO.cpp +++ b/src/d/save/d_save_HIO.cpp @@ -5,651 +5,229 @@ #include "d/save/d_save_HIO.h" #include "d/com/d_com_inf_game.h" -#include "dol2asm.h" #include "dolphin/types.h" // // Forward References: // -extern "C" void __ct__29dSvBit_childSwPerfectionHIO_cFv(); -extern "C" void init__29dSvBit_childSwPerfectionHIO_cFv(); -extern "C" void __ct__26dSvBit_childSwDungeonHIO_cFv(); -extern "C" void init__26dSvBit_childSwDungeonHIO_cFv(); -extern "C" void __ct__23dSvBit_childSwZoneHIO_cFv(); -extern "C" void init__23dSvBit_childSwZoneHIO_cFv(); -extern "C" void __ct__26dSvBit_childSwOneZoneHIO_cFv(); -extern "C" void init__26dSvBit_childSwOneZoneHIO_cFv(); -extern "C" void __ct__29dSvBit_childItPerfectionHIO_cFv(); -extern "C" void init__29dSvBit_childItPerfectionHIO_cFv(); -extern "C" void __ct__26dSvBit_childItDungeonHIO_cFv(); -extern "C" void init__26dSvBit_childItDungeonHIO_cFv(); -extern "C" void __ct__23dSvBit_childItZoneHIO_cFv(); -extern "C" void init__23dSvBit_childItZoneHIO_cFv(); -extern "C" void __ct__26dSvBit_childItOneZoneHIO_cFv(); -extern "C" void init__26dSvBit_childItOneZoneHIO_cFv(); -extern "C" void __ct__29dSvBit_childTbPerfectionHIO_cFv(); -extern "C" void init__29dSvBit_childTbPerfectionHIO_cFv(); -extern "C" void __ct__25dSvBit_childDarknessHIO_cFv(); -extern "C" void init__25dSvBit_childDarknessHIO_cFv(); -extern "C" void __ct__26dSvBit_childTransformHIO_cFv(); -extern "C" void init__26dSvBit_childTransformHIO_cFv(); -extern "C" void __ct__22dSvBit_childOtherHIO_cFv(); -extern "C" void init__22dSvBit_childOtherHIO_cFv(); -extern "C" void init__12dSvBit_HIO_cFv(); -extern "C" void __dt__22dSvBit_childOtherHIO_cFv(); -extern "C" void __dt__26dSvBit_childTransformHIO_cFv(); -extern "C" void __dt__25dSvBit_childDarknessHIO_cFv(); -extern "C" void __dt__29dSvBit_childTbPerfectionHIO_cFv(); -extern "C" void __dt__26dSvBit_childItOneZoneHIO_cFv(); -extern "C" void __dt__23dSvBit_childItZoneHIO_cFv(); -extern "C" void __dt__26dSvBit_childItDungeonHIO_cFv(); -extern "C" void __dt__29dSvBit_childItPerfectionHIO_cFv(); -extern "C" void __dt__26dSvBit_childSwOneZoneHIO_cFv(); -extern "C" void __dt__23dSvBit_childSwZoneHIO_cFv(); -extern "C" void __dt__26dSvBit_childSwDungeonHIO_cFv(); -extern "C" void __dt__29dSvBit_childSwPerfectionHIO_cFv(); -extern "C" void __sinit_d_save_HIO_cpp(); -extern "C" void __dt__12dSvBit_HIO_cFv(); -extern "C" void __dt__25dSvBit_childTreasureHIO_cFv(); -extern "C" void __dt__21dSvBit_childItemHIO_cFv(); -extern "C" void __dt__23dSvBit_childSwitchHIO_cFv(); - -// -// External References: -// - -extern "C" void isDarkClearLV__21dSv_player_status_b_cCFi(); -extern "C" void isTransformLV__21dSv_player_status_b_cCFi(); -extern "C" void getLightDropNum__16dSv_light_drop_cCFUc(); -extern "C" void isLightDropGetFlag__16dSv_light_drop_cCFUc(); -extern "C" void isTbox__12dSv_memBit_cCFi(); -extern "C" void isSwitch__12dSv_memBit_cCFi(); -extern "C" void isItem__12dSv_memBit_cCFi(); -extern "C" void isEventBit__11dSv_event_cCFUs(); -extern "C" void isSwitch__12dSv_danBit_cCFi(); -extern "C" void isItem__12dSv_danBit_cCFi(); -extern "C" void __dl__FPv(); -extern "C" void __register_global_object(); -extern "C" void _savegpr_29(); -extern "C" void _restgpr_29(); - // // Declarations: // -/* ############################################################################################## */ -/* 803C3300-803C330C 020420 000C+00 3/3 0/0 0/0 .data __vt__22dSvBit_childOtherHIO_c */ -SECTION_DATA extern void* __vt__22dSvBit_childOtherHIO_c[3] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__22dSvBit_childOtherHIO_cFv, -}; - -/* 803C330C-803C3318 02042C 000C+00 3/3 0/0 0/0 .data __vt__26dSvBit_childTransformHIO_c - */ -SECTION_DATA extern void* __vt__26dSvBit_childTransformHIO_c[3] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__26dSvBit_childTransformHIO_cFv, -}; - -/* 803C3318-803C3324 020438 000C+00 3/3 0/0 0/0 .data __vt__25dSvBit_childDarknessHIO_c - */ -SECTION_DATA extern void* __vt__25dSvBit_childDarknessHIO_c[3] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__25dSvBit_childDarknessHIO_cFv, -}; - -/* 803C3324-803C3330 020444 000C+00 4/4 0/0 0/0 .data __vt__29dSvBit_childTbPerfectionHIO_c */ -SECTION_DATA extern void* __vt__29dSvBit_childTbPerfectionHIO_c[3] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__29dSvBit_childTbPerfectionHIO_cFv, -}; - -/* 803C3330-803C333C 020450 000C+00 4/4 0/0 0/0 .data __vt__26dSvBit_childItOneZoneHIO_c - */ -SECTION_DATA extern void* __vt__26dSvBit_childItOneZoneHIO_c[3] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__26dSvBit_childItOneZoneHIO_cFv, -}; - -/* 803C333C-803C3348 02045C 000C+00 4/4 0/0 0/0 .data __vt__23dSvBit_childItZoneHIO_c */ -SECTION_DATA extern void* __vt__23dSvBit_childItZoneHIO_c[3] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__23dSvBit_childItZoneHIO_cFv, -}; - -/* 803C3348-803C3354 020468 000C+00 4/4 0/0 0/0 .data __vt__26dSvBit_childItDungeonHIO_c - */ -SECTION_DATA extern void* __vt__26dSvBit_childItDungeonHIO_c[3] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__26dSvBit_childItDungeonHIO_cFv, -}; - -/* 803C3354-803C3360 020474 000C+00 4/4 0/0 0/0 .data __vt__29dSvBit_childItPerfectionHIO_c */ -SECTION_DATA extern void* __vt__29dSvBit_childItPerfectionHIO_c[3] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__29dSvBit_childItPerfectionHIO_cFv, -}; - -/* 803C3360-803C336C 020480 000C+00 4/4 0/0 0/0 .data __vt__26dSvBit_childSwOneZoneHIO_c - */ -SECTION_DATA extern void* __vt__26dSvBit_childSwOneZoneHIO_c[3] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__26dSvBit_childSwOneZoneHIO_cFv, -}; - -/* 803C336C-803C3378 02048C 000C+00 4/4 0/0 0/0 .data __vt__23dSvBit_childSwZoneHIO_c */ -SECTION_DATA extern void* __vt__23dSvBit_childSwZoneHIO_c[3] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__23dSvBit_childSwZoneHIO_cFv, -}; - -/* 803C3378-803C3384 020498 000C+00 4/4 0/0 0/0 .data __vt__26dSvBit_childSwDungeonHIO_c - */ -SECTION_DATA extern void* __vt__26dSvBit_childSwDungeonHIO_c[3] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__26dSvBit_childSwDungeonHIO_cFv, -}; - -/* 803C3384-803C3390 0204A4 000C+00 4/4 0/0 0/0 .data __vt__29dSvBit_childSwPerfectionHIO_c */ -SECTION_DATA extern void* __vt__29dSvBit_childSwPerfectionHIO_c[3] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__29dSvBit_childSwPerfectionHIO_cFv, -}; - /* 8025BB78-8025BBAC 2564B8 0034+00 1/1 0/0 0/0 .text __ct__29dSvBit_childSwPerfectionHIO_cFv */ dSvBit_childSwPerfectionHIO_c::dSvBit_childSwPerfectionHIO_c() { for (int i = 0; i < 0x80; i++) { - field_0x5[i] = false; - field_0x85[i] = false; + field_0x5[i] = 0; + field_0x85[i] = 0; } } /* 8025BBAC-8025BC14 2564EC 0068+00 1/1 0/0 0/0 .text init__29dSvBit_childSwPerfectionHIO_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dSvBit_childSwPerfectionHIO_c::init() { - nofralloc -#include "asm/d/save/d_save_HIO/init__29dSvBit_childSwPerfectionHIO_cFv.s" +void dSvBit_childSwPerfectionHIO_c::init() { + for (int i = 0; i < 0x80; i++) { + field_0x5[i] = dComIfGs_isSaveSwitch(i); + field_0x85[i] = field_0x5[i]; + } } -#pragma pop /* 8025BC14-8025BC48 256554 0034+00 1/1 0/0 0/0 .text __ct__26dSvBit_childSwDungeonHIO_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm dSvBit_childSwDungeonHIO_c::dSvBit_childSwDungeonHIO_c() { - nofralloc -#include "asm/d/save/d_save_HIO/__ct__26dSvBit_childSwDungeonHIO_cFv.s" +dSvBit_childSwDungeonHIO_c::dSvBit_childSwDungeonHIO_c() { + for (int i = 0; i < 0x40; i++) { + field_0x5[i] = 0; + field_0x45[i] = 0; + } } -#pragma pop /* 8025BC48-8025BCB0 256588 0068+00 1/1 0/0 0/0 .text init__26dSvBit_childSwDungeonHIO_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dSvBit_childSwDungeonHIO_c::init() { - nofralloc -#include "asm/d/save/d_save_HIO/init__26dSvBit_childSwDungeonHIO_cFv.s" +void dSvBit_childSwDungeonHIO_c::init() { + for (int i = 0; i < 0x40; i++) { + field_0x5[i] = dComIfGs_isSaveDunSwitch(i); + field_0x45[i] = field_0x5[i]; + } } -#pragma pop /* 8025BCB0-8025BCE4 2565F0 0034+00 1/1 0/0 0/0 .text __ct__23dSvBit_childSwZoneHIO_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm dSvBit_childSwZoneHIO_c::dSvBit_childSwZoneHIO_c() { - nofralloc -#include "asm/d/save/d_save_HIO/__ct__23dSvBit_childSwZoneHIO_cFv.s" +dSvBit_childSwZoneHIO_c::dSvBit_childSwZoneHIO_c() { + for (int i = 0; i < 0x20; i++) { + field_0x5[i] = 0; + field_0x25[i] = 0; + } } -#pragma pop /* 8025BCE4-8025BD10 256624 002C+00 1/1 0/0 0/0 .text init__23dSvBit_childSwZoneHIO_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dSvBit_childSwZoneHIO_c::init() { - nofralloc -#include "asm/d/save/d_save_HIO/init__23dSvBit_childSwZoneHIO_cFv.s" +void dSvBit_childSwZoneHIO_c::init() { + for (int i = 0; i < 0x20; i++) { + field_0x5[i] = 0; + field_0x25[i] = field_0x5[i]; + } } -#pragma pop /* 8025BD10-8025BD44 256650 0034+00 1/1 0/0 0/0 .text __ct__26dSvBit_childSwOneZoneHIO_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm dSvBit_childSwOneZoneHIO_c::dSvBit_childSwOneZoneHIO_c() { - nofralloc -#include "asm/d/save/d_save_HIO/__ct__26dSvBit_childSwOneZoneHIO_cFv.s" +dSvBit_childSwOneZoneHIO_c::dSvBit_childSwOneZoneHIO_c() { + for (int i = 0; i < 0x10; i++) { + field_0x5[i] = 0; + field_0x15[i] = 0; + } } -#pragma pop /* 8025BD44-8025BD70 256684 002C+00 1/1 0/0 0/0 .text init__26dSvBit_childSwOneZoneHIO_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dSvBit_childSwOneZoneHIO_c::init() { - nofralloc -#include "asm/d/save/d_save_HIO/init__26dSvBit_childSwOneZoneHIO_cFv.s" +void dSvBit_childSwOneZoneHIO_c::init() { + for (int i = 0; i < 0x10; i++) { + field_0x5[i] = 0; + field_0x15[i] = field_0x5[i]; + } } -#pragma pop /* 8025BD70-8025BDA4 2566B0 0034+00 1/1 0/0 0/0 .text __ct__29dSvBit_childItPerfectionHIO_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm dSvBit_childItPerfectionHIO_c::dSvBit_childItPerfectionHIO_c() { - nofralloc -#include "asm/d/save/d_save_HIO/__ct__29dSvBit_childItPerfectionHIO_cFv.s" +dSvBit_childItPerfectionHIO_c::dSvBit_childItPerfectionHIO_c() { + for (int i = 0; i < 0x20; i++) { + field_0x5[i] = 0; + field_0x25[i] = 0; + } } -#pragma pop /* 8025BDA4-8025BE0C 2566E4 0068+00 1/1 0/0 0/0 .text init__29dSvBit_childItPerfectionHIO_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dSvBit_childItPerfectionHIO_c::init() { - nofralloc -#include "asm/d/save/d_save_HIO/init__29dSvBit_childItPerfectionHIO_cFv.s" +void dSvBit_childItPerfectionHIO_c::init() { + for (int i = 0; i < 0x20; i++) { + field_0x5[i] = dComIfGs_isSaveItem(i); + field_0x25[i] = field_0x5[i]; + } } -#pragma pop /* 8025BE0C-8025BE40 25674C 0034+00 1/1 0/0 0/0 .text __ct__26dSvBit_childItDungeonHIO_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm dSvBit_childItDungeonHIO_c::dSvBit_childItDungeonHIO_c() { - nofralloc -#include "asm/d/save/d_save_HIO/__ct__26dSvBit_childItDungeonHIO_cFv.s" +dSvBit_childItDungeonHIO_c::dSvBit_childItDungeonHIO_c() { + for (int i = 0; i < 0x80; i++) { + field_0x5[i] = 0; + field_0x85[i] = 0; + } } -#pragma pop /* 8025BE40-8025BEA8 256780 0068+00 1/1 0/0 0/0 .text init__26dSvBit_childItDungeonHIO_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dSvBit_childItDungeonHIO_c::init() { - nofralloc -#include "asm/d/save/d_save_HIO/init__26dSvBit_childItDungeonHIO_cFv.s" +void dSvBit_childItDungeonHIO_c::init() { + for (int i = 0; i < 0x80; i++) { + field_0x5[i] = dComIfGs_isSaveDunItem(i); + field_0x85[i] = field_0x5[i]; + } } -#pragma pop /* 8025BEA8-8025BEDC 2567E8 0034+00 1/1 0/0 0/0 .text __ct__23dSvBit_childItZoneHIO_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm dSvBit_childItZoneHIO_c::dSvBit_childItZoneHIO_c() { - nofralloc -#include "asm/d/save/d_save_HIO/__ct__23dSvBit_childItZoneHIO_cFv.s" +dSvBit_childItZoneHIO_c::dSvBit_childItZoneHIO_c() { + for (int i = 0; i < 0x20; i++) { + field_0x5[i] = 0; + field_0x25[i] = 0; + } } -#pragma pop /* 8025BEDC-8025BF08 25681C 002C+00 1/1 0/0 0/0 .text init__23dSvBit_childItZoneHIO_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dSvBit_childItZoneHIO_c::init() { - nofralloc -#include "asm/d/save/d_save_HIO/init__23dSvBit_childItZoneHIO_cFv.s" +void dSvBit_childItZoneHIO_c::init() { + for (int i = 0; i < 0x20; i++) { + field_0x5[i] = 0; + field_0x25[i] = field_0x5[i]; + } } -#pragma pop /* 8025BF08-8025BF3C 256848 0034+00 1/1 0/0 0/0 .text __ct__26dSvBit_childItOneZoneHIO_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm dSvBit_childItOneZoneHIO_c::dSvBit_childItOneZoneHIO_c() { - nofralloc -#include "asm/d/save/d_save_HIO/__ct__26dSvBit_childItOneZoneHIO_cFv.s" +dSvBit_childItOneZoneHIO_c::dSvBit_childItOneZoneHIO_c() { + for (int i = 0; i < 0x10; i++) { + field_0x5[i] = 0; + field_0x15[i] = 0; + } } -#pragma pop /* 8025BF3C-8025BF68 25687C 002C+00 1/1 0/0 0/0 .text init__26dSvBit_childItOneZoneHIO_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dSvBit_childItOneZoneHIO_c::init() { - nofralloc -#include "asm/d/save/d_save_HIO/init__26dSvBit_childItOneZoneHIO_cFv.s" +void dSvBit_childItOneZoneHIO_c::init() { + for (int i = 0; i < 0x10; i++) { + field_0x5[i] = 0; + field_0x15[i] = field_0x5[i]; + } } -#pragma pop /* 8025BF68-8025BF9C 2568A8 0034+00 1/1 0/0 0/0 .text __ct__29dSvBit_childTbPerfectionHIO_cFv */ dSvBit_childTbPerfectionHIO_c::dSvBit_childTbPerfectionHIO_c() { for (int i = 0; i < 0x40; i++) { - field_0x5[i] = false; - field_0x45[i] = false; + field_0x5[i] = 0; + field_0x45[i] = 0; } } /* 8025BF9C-8025C004 2568DC 0068+00 1/1 0/0 0/0 .text init__29dSvBit_childTbPerfectionHIO_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dSvBit_childTbPerfectionHIO_c::init() { - nofralloc -#include "asm/d/save/d_save_HIO/init__29dSvBit_childTbPerfectionHIO_cFv.s" +void dSvBit_childTbPerfectionHIO_c::init() { + for (int i = 0; i < 0x40; i++) { + field_0x5[i] = dComIfGs_isTbox(i); + field_0x45[i] = field_0x5[i]; + } } -#pragma pop /* 8025C004-8025C038 256944 0034+00 1/1 0/0 0/0 .text __ct__25dSvBit_childDarknessHIO_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm dSvBit_childDarknessHIO_c::dSvBit_childDarknessHIO_c() { - nofralloc -#include "asm/d/save/d_save_HIO/__ct__25dSvBit_childDarknessHIO_cFv.s" +dSvBit_childDarknessHIO_c::dSvBit_childDarknessHIO_c() { + for (int i = 0; i < 6; i++) { + TW[i] = 0; + field_0xB[i] = 0; + } } -#pragma pop /* 8025C038-8025C0A0 256978 0068+00 1/1 0/0 0/0 .text init__25dSvBit_childDarknessHIO_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dSvBit_childDarknessHIO_c::init() { - nofralloc -#include "asm/d/save/d_save_HIO/init__25dSvBit_childDarknessHIO_cFv.s" +void dSvBit_childDarknessHIO_c::init() { + for (int i = 0; i < 6; i++) { + TW[i] = dComIfGs_isDarkClearLV(i); + field_0xB[i] = TW[i]; + } } -#pragma pop /* 8025C0A0-8025C0D4 2569E0 0034+00 1/1 0/0 0/0 .text __ct__26dSvBit_childTransformHIO_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm dSvBit_childTransformHIO_c::dSvBit_childTransformHIO_c() { - nofralloc -#include "asm/d/save/d_save_HIO/__ct__26dSvBit_childTransformHIO_cFv.s" +dSvBit_childTransformHIO_c::dSvBit_childTransformHIO_c() { + for (int i = 0; i < 4; i++) { + WF[i] = 0; + field_0x9[i] = 0; + } } -#pragma pop /* 8025C0D4-8025C13C 256A14 0068+00 1/1 0/0 0/0 .text init__26dSvBit_childTransformHIO_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dSvBit_childTransformHIO_c::init() { - nofralloc -#include "asm/d/save/d_save_HIO/init__26dSvBit_childTransformHIO_cFv.s" +void dSvBit_childTransformHIO_c::init() { + for (int i = 0; i < 4; i++) { + WF[i] = dComIfGs_isTransformLV(i); + field_0x9[i] = WF[i]; + } } -#pragma pop /* 8025C13C-8025C178 256A7C 003C+00 1/1 0/0 0/0 .text __ct__22dSvBit_childOtherHIO_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm dSvBit_childOtherHIO_c::dSvBit_childOtherHIO_c() { - nofralloc -#include "asm/d/save/d_save_HIO/__ct__22dSvBit_childOtherHIO_cFv.s" +dSvBit_childOtherHIO_c::dSvBit_childOtherHIO_c() { + mDropNum = 0; + field_0x6 = 0; + for (int i = 0; i < 4; i++) { + mLightVessel[i] = 0; + field_0xb[i] = 0; + } } -#pragma pop /* 8025C178-8025C1F8 256AB8 0080+00 1/1 0/0 0/0 .text init__22dSvBit_childOtherHIO_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dSvBit_childOtherHIO_c::init() { - nofralloc -#include "asm/d/save/d_save_HIO/init__22dSvBit_childOtherHIO_cFv.s" +void dSvBit_childOtherHIO_c::init() { + mDropNum = dComIfGs_getLightDropNum(dComIfGp_getStartStageDarkArea()); + field_0x6 = mDropNum; + for (int i = 0; i < 4; i++) { + mLightVessel[i] = dComIfGs_isLightDropGetFlag(i); + field_0xb[i] = mLightVessel[i]; + } } -#pragma pop /* 8025C1F8-8025C29C 256B38 00A4+00 0/0 1/1 0/0 .text init__12dSvBit_HIO_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dSvBit_HIO_c::init() { - nofralloc -#include "asm/d/save/d_save_HIO/init__12dSvBit_HIO_cFv.s" -} -#pragma pop - -/* 8025C29C-8025C2E4 256BDC 0048+00 1/0 0/0 0/0 .text __dt__22dSvBit_childOtherHIO_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -// asm dSvBit_childOtherHIO_c::~dSvBit_childOtherHIO_c() { -extern "C" asm void __dt__22dSvBit_childOtherHIO_cFv() { - nofralloc -#include "asm/d/save/d_save_HIO/__dt__22dSvBit_childOtherHIO_cFv.s" -} -#pragma pop - -/* 8025C2E4-8025C32C 256C24 0048+00 1/0 0/0 0/0 .text __dt__26dSvBit_childTransformHIO_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -// asm dSvBit_childTransformHIO_c::~dSvBit_childTransformHIO_c() { -extern "C" asm void __dt__26dSvBit_childTransformHIO_cFv() { - nofralloc -#include "asm/d/save/d_save_HIO/__dt__26dSvBit_childTransformHIO_cFv.s" -} -#pragma pop - -/* 8025C32C-8025C374 256C6C 0048+00 1/0 0/0 0/0 .text __dt__25dSvBit_childDarknessHIO_cFv - */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -// asm dSvBit_childDarknessHIO_c::~dSvBit_childDarknessHIO_c() { -extern "C" asm void __dt__25dSvBit_childDarknessHIO_cFv() { - nofralloc -#include "asm/d/save/d_save_HIO/__dt__25dSvBit_childDarknessHIO_cFv.s" -} -#pragma pop - -/* 8025C374-8025C3BC 256CB4 0048+00 1/0 0/0 0/0 .text __dt__29dSvBit_childTbPerfectionHIO_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -// asm dSvBit_childTbPerfectionHIO_c::~dSvBit_childTbPerfectionHIO_c() { -extern "C" asm void __dt__29dSvBit_childTbPerfectionHIO_cFv() { - nofralloc -#include "asm/d/save/d_save_HIO/__dt__29dSvBit_childTbPerfectionHIO_cFv.s" -} -#pragma pop - -/* 8025C3BC-8025C404 256CFC 0048+00 1/0 0/0 0/0 .text __dt__26dSvBit_childItOneZoneHIO_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -// asm dSvBit_childItOneZoneHIO_c::~dSvBit_childItOneZoneHIO_c() { -extern "C" asm void __dt__26dSvBit_childItOneZoneHIO_cFv() { - nofralloc -#include "asm/d/save/d_save_HIO/__dt__26dSvBit_childItOneZoneHIO_cFv.s" -} -#pragma pop - -/* 8025C404-8025C44C 256D44 0048+00 1/0 0/0 0/0 .text __dt__23dSvBit_childItZoneHIO_cFv - */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -// asm dSvBit_childItZoneHIO_c::~dSvBit_childItZoneHIO_c() { -extern "C" asm void __dt__23dSvBit_childItZoneHIO_cFv() { - nofralloc -#include "asm/d/save/d_save_HIO/__dt__23dSvBit_childItZoneHIO_cFv.s" -} -#pragma pop - -/* 8025C44C-8025C494 256D8C 0048+00 1/0 0/0 0/0 .text __dt__26dSvBit_childItDungeonHIO_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -// asm dSvBit_childItDungeonHIO_c::~dSvBit_childItDungeonHIO_c() { -extern "C" asm void __dt__26dSvBit_childItDungeonHIO_cFv() { - nofralloc -#include "asm/d/save/d_save_HIO/__dt__26dSvBit_childItDungeonHIO_cFv.s" -} -#pragma pop - -/* 8025C494-8025C4DC 256DD4 0048+00 1/0 0/0 0/0 .text __dt__29dSvBit_childItPerfectionHIO_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -// asm dSvBit_childItPerfectionHIO_c::~dSvBit_childItPerfectionHIO_c() { -extern "C" asm void __dt__29dSvBit_childItPerfectionHIO_cFv() { - nofralloc -#include "asm/d/save/d_save_HIO/__dt__29dSvBit_childItPerfectionHIO_cFv.s" -} -#pragma pop - -/* 8025C4DC-8025C524 256E1C 0048+00 1/0 0/0 0/0 .text __dt__26dSvBit_childSwOneZoneHIO_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -// asm dSvBit_childSwOneZoneHIO_c::~dSvBit_childSwOneZoneHIO_c() { -extern "C" asm void __dt__26dSvBit_childSwOneZoneHIO_cFv() { - nofralloc -#include "asm/d/save/d_save_HIO/__dt__26dSvBit_childSwOneZoneHIO_cFv.s" -} -#pragma pop - -/* 8025C524-8025C56C 256E64 0048+00 1/0 0/0 0/0 .text __dt__23dSvBit_childSwZoneHIO_cFv - */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -// asm dSvBit_childSwZoneHIO_c::~dSvBit_childSwZoneHIO_c() { -extern "C" asm void __dt__23dSvBit_childSwZoneHIO_cFv() { - nofralloc -#include "asm/d/save/d_save_HIO/__dt__23dSvBit_childSwZoneHIO_cFv.s" -} -#pragma pop - -/* 8025C56C-8025C5B4 256EAC 0048+00 1/0 0/0 0/0 .text __dt__26dSvBit_childSwDungeonHIO_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -// asm dSvBit_childSwDungeonHIO_c::~dSvBit_childSwDungeonHIO_c() { -extern "C" asm void __dt__26dSvBit_childSwDungeonHIO_cFv() { - nofralloc -#include "asm/d/save/d_save_HIO/__dt__26dSvBit_childSwDungeonHIO_cFv.s" -} -#pragma pop - -/* 8025C5B4-8025C5FC 256EF4 0048+00 1/0 0/0 0/0 .text __dt__29dSvBit_childSwPerfectionHIO_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -// asm dSvBit_childSwPerfectionHIO_c::~dSvBit_childSwPerfectionHIO_c() { -extern "C" asm void __dt__29dSvBit_childSwPerfectionHIO_cFv() { - nofralloc -#include "asm/d/save/d_save_HIO/__dt__29dSvBit_childSwPerfectionHIO_cFv.s" +void dSvBit_HIO_c::init() { + mSwitch.init(); + mItem.init(); + mTreasure.init(); + mDarkness.init(); + mTransform.init(); + mOther.init(); + mTransformFlag = field_0x49d = i_dComIfGs_isEventBit(dSv_event_flag_c::M_077); } -#pragma pop - -/* ############################################################################################## */ -/* 803C3390-803C339C 0204B0 000C+00 3/3 0/0 0/0 .data __vt__25dSvBit_childTreasureHIO_c - */ -SECTION_DATA extern void* __vt__25dSvBit_childTreasureHIO_c[3] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__25dSvBit_childTreasureHIO_cFv, -}; - -/* 803C339C-803C33A8 0204BC 000C+00 3/3 0/0 0/0 .data __vt__21dSvBit_childItemHIO_c */ -SECTION_DATA extern void* __vt__21dSvBit_childItemHIO_c[3] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__21dSvBit_childItemHIO_cFv, -}; - -/* 803C33A8-803C33B4 0204C8 000C+00 3/3 0/0 0/0 .data __vt__23dSvBit_childSwitchHIO_c */ -SECTION_DATA extern void* __vt__23dSvBit_childSwitchHIO_c[3] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__23dSvBit_childSwitchHIO_cFv, -}; - -/* 803C33B4-803C33C0 0204D4 000C+00 2/2 0/0 0/0 .data __vt__12dSvBit_HIO_c */ -SECTION_DATA extern void* __vt__12dSvBit_HIO_c[3] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__12dSvBit_HIO_cFv, -}; - -/* 804307E0-804307EC 05D500 000C+00 1/1 0/0 0/0 .bss @3659 */ -static u8 lit_3659[12]; /* 804307EC-80430C90 05D50C 04A0+04 1/1 2/2 0/0 .bss g_save_bit_HIO */ -extern u8 g_save_bit_HIO[1184 + 4 /* padding */]; -u8 g_save_bit_HIO[1184 + 4 /* padding */]; +dSvBit_HIO_c g_save_bit_HIO; -/* 8025C5FC-8025C6FC 256F3C 0100+00 0/0 1/0 0/0 .text __sinit_d_save_HIO_cpp */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void __sinit_d_save_HIO_cpp() { - nofralloc -#include "asm/d/save/d_save_HIO/__sinit_d_save_HIO_cpp.s" -} -#pragma pop - -#pragma push -#pragma force_active on -REGISTER_CTORS(0x8025C5FC, __sinit_d_save_HIO_cpp); -#pragma pop - -/* 8025C6FC-8025C874 25703C 0178+00 2/1 0/0 0/0 .text __dt__12dSvBit_HIO_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -// asm dSvBit_HIO_c::~dSvBit_HIO_c() { -extern "C" asm void __dt__12dSvBit_HIO_cFv() { - nofralloc -#include "asm/d/save/d_save_HIO/__dt__12dSvBit_HIO_cFv.s" -} -#pragma pop - -/* 8025C874-8025C8D4 2571B4 0060+00 1/0 0/0 0/0 .text __dt__25dSvBit_childTreasureHIO_cFv - */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -// asm dSvBit_childTreasureHIO_c::~dSvBit_childTreasureHIO_c() { -extern "C" asm void __dt__25dSvBit_childTreasureHIO_cFv() { - nofralloc -#include "asm/d/save/d_save_HIO/__dt__25dSvBit_childTreasureHIO_cFv.s" -} -#pragma pop - -/* 8025C8D4-8025C970 257214 009C+00 1/0 0/0 0/0 .text __dt__21dSvBit_childItemHIO_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -// asm dSvBit_childItemHIO_c::~dSvBit_childItemHIO_c() { -extern "C" asm void __dt__21dSvBit_childItemHIO_cFv() { - nofralloc -#include "asm/d/save/d_save_HIO/__dt__21dSvBit_childItemHIO_cFv.s" -} -#pragma pop - -/* 8025C970-8025CA0C 2572B0 009C+00 1/0 0/0 0/0 .text __dt__23dSvBit_childSwitchHIO_cFv - */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -// asm dSvBit_childSwitchHIO_c::~dSvBit_childSwitchHIO_c() { -extern "C" asm void __dt__23dSvBit_childSwitchHIO_cFv() { - nofralloc -#include "asm/d/save/d_save_HIO/__dt__23dSvBit_childSwitchHIO_cFv.s" -} -#pragma pop diff --git a/src/d/shop/d_shop_system.cpp b/src/d/shop/d_shop_system.cpp index 34b2ac1c67..c7dfe7e638 100644 --- a/src/d/shop/d_shop_system.cpp +++ b/src/d/shop/d_shop_system.cpp @@ -4,6 +4,7 @@ // #include "d/shop/d_shop_system.h" +#include "rel/d/a/tag/d_a_tag_shop_item/d_a_tag_shop_item.h" #include "SSystem/SComponent/c_math.h" #include "d/a/d_a_shop_item_static.h" #include "d/com/d_com_inf_game.h" @@ -208,7 +209,7 @@ SECTION_DATA static u8 cNullVec__6Z2Calc[12] = { }; /* 803BB8A4-803BB8C0 0189C4 001C+00 6/6 0/0 0/0 .data dShopSystem_itemActor */ -SECTION_DATA static fopAc_ac_c* dShopSystem_itemActor[7] = { +SECTION_DATA static daTag_ShopItem_c* dShopSystem_itemActor[7] = { NULL, NULL, NULL, NULL, NULL, NULL, NULL, }; @@ -249,10 +250,10 @@ static int dShopSystem_searchItemActor(void* param_0, void* param_1) { } else { if (param2 == 0) { data_80451060 = 1; - dShopSystem_itemActor[dShopSystem_item_count] = (fopAc_ac_c*) param_0; + dShopSystem_itemActor[dShopSystem_item_count] = (daTag_ShopItem_c*) param_0; dShopSystem_itemNo[dShopSystem_item_count] = item_no; } else if (dShopSystem_itemActor[param2 - 1] == NULL) { - dShopSystem_itemActor[param2 - 1] = (fopAc_ac_c*) param_0; + dShopSystem_itemActor[param2 - 1] = (daTag_ShopItem_c*) param_0; dShopSystem_itemNo[param2 - 1] = item_no; } dShopSystem_item_count++; @@ -298,25 +299,9 @@ static int dShopSystem_searchCameraActor(void* param_0, void* param_1) { } /* ############################################################################################## */ -/* 80453B00-80453B04 002100 0004+00 1/1 0/0 0/0 .sdata2 @4097 */ -SECTION_SDATA2 static f32 lit_4097 = 9.0f / 10.0f; - -/* 80453B04-80453B08 002104 0004+00 2/2 0/0 0/0 .sdata2 @4098 */ -SECTION_SDATA2 static f32 lit_4098 = 0.5f; - -/* 80453B08-80453B0C 002108 0004+00 5/5 0/0 0/0 .sdata2 @4099 */ -SECTION_SDATA2 static f32 lit_4099 = 1.0f; - -/* 80453B0C-80453B10 00210C 0004+00 1/1 0/0 0/0 .sdata2 @4100 */ -SECTION_SDATA2 static f32 lit_4100 = 1.0f / 10.0f; - -/* 80453B10-80453B14 002110 0004+00 1/1 0/0 0/0 .sdata2 @4101 */ -SECTION_SDATA2 static f32 lit_4101 = 7.0f / 10.0f; /* 80197338-801974E4 191C78 01AC+00 0/0 0/0 19/19 .text initShopSystem__13dShopSystem_cFv */ -// matches with literals -#ifdef NONMATCHING void dShopSystem_c::initShopSystem() { data_80451058 = 3; data_80451060 = 0; @@ -362,16 +347,6 @@ void dShopSystem_c::initShopSystem() { field_0xf78 = -1; mFlow.onNonStopJunpFlowFlag(); } -#else -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dShopSystem_c::initShopSystem() { - nofralloc -#include "asm/d/shop/d_shop_system/initShopSystem__13dShopSystem_cFv.s" -} -#pragma pop -#endif struct shop_item_data { Vec mItemPos[3]; @@ -396,16 +371,6 @@ static processFunc process[22] = { &dShopSystem_c::seq_decide_no, &dShopSystem_c::seq_finish, (processFunc)&dShopSystem_c::seq_event, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, }; #else /* 803BB8E4-803BB8F0 -00001 000C+00 0/1 0/0 0/0 .data @4056 */ @@ -900,21 +865,8 @@ int dShopSystem_c::checkController(u8 seq, dMsgFlow_c* p_flow) { } /* ############################################################################################## */ -/* 80453B14-80453B18 002114 0004+00 4/4 0/0 0/0 .sdata2 @4493 */ -SECTION_SDATA2 static f32 lit_4493 = -1.0f; - -/* 80453B18-80453B1C 002118 0004+00 8/8 0/0 0/0 .sdata2 @4494 */ -SECTION_SDATA2 static f32 lit_4494 = 0.25f; - -/* 80453B1C-80453B20 00211C 0004+00 9/9 0/0 0/0 .sdata2 @4495 */ -SECTION_SDATA2 static f32 lit_4495 = 20.0f; - -/* 80453B20-80453B24 002120 0004+00 9/9 0/0 0/0 .sdata2 @4496 */ -SECTION_SDATA2 static f32 lit_4496 = 5.0f; /* 80197808-80197DD0 192148 05C8+00 1/1 0/0 0/0 .text chooseItem3__13dShopSystem_cFUc */ -// matches with literals -#ifdef NONMATCHING int dShopSystem_c::chooseItem3(u8 seq) { u8 old_cursor = mLastCursorPos; if (checkLeftTrigger(mpStick) && seq != SEQ_SELECT_WAIT) { @@ -1051,20 +1003,8 @@ up: ret: return 0; } -#else -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm int dShopSystem_c::chooseItem3(u8 param_0) { - nofralloc -#include "asm/d/shop/d_shop_system/chooseItem3__13dShopSystem_cFUc.s" -} -#pragma pop -#endif /* 80197DD0-80198250 192710 0480+00 1/1 0/0 0/0 .text chooseItem5__13dShopSystem_cFUc */ -// matches with literals -#ifdef NONMATCHING int dShopSystem_c::chooseItem5(u8 seq) { u8 old_cursor = mLastCursorPos; if (checkLeftTrigger(mpStick) && seq != SEQ_SELECT_WAIT) { @@ -1178,20 +1118,8 @@ down: ret: return 0; } -#else -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm int dShopSystem_c::chooseItem5(u8 seq) { - nofralloc -#include "asm/d/shop/d_shop_system/chooseItem5__13dShopSystem_cFUc.s" -} -#pragma pop -#endif /* 80198250-80198444 192B90 01F4+00 1/1 0/0 0/0 .text chooseItem4__13dShopSystem_cFUc */ -// matches with literals. gotos can probably be removed -#ifdef NONMATCHING int dShopSystem_c::chooseItem4(u8 seq) { u8 old_cursor = mLastCursorPos; if (checkLeftTrigger(mpStick) && seq != SEQ_SELECT_WAIT && mCursorPos != 0) { @@ -1233,16 +1161,6 @@ right: ret: return 0; } -#else -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm int dShopSystem_c::chooseItem4(u8 seq) { - nofralloc -#include "asm/d/shop/d_shop_system/chooseItem4__13dShopSystem_cFUc.s" -} -#pragma pop -#endif /* 80198444-80198488 192D84 0044+00 5/5 0/0 0/0 .text moveCursor__13dShopSystem_cFiUc */ int dShopSystem_c::moveCursor(int control_status, u8 param_1) { @@ -1258,8 +1176,6 @@ int dShopSystem_c::moveCursor(int control_status, u8 param_1) { } /* 80198488-80198708 192DC8 0280+00 1/1 0/0 0/0 .text moveCursor0__13dShopSystem_cFiUc */ -// matches with literals -#ifdef NONMATCHING int dShopSystem_c::moveCursor0(int control_status, u8 param_1) { offFlag(7); @@ -1313,23 +1229,16 @@ int dShopSystem_c::moveCursor0(int control_status, u8 param_1) { return 0; } -#else -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm int dShopSystem_c::moveCursor0(int param_0, u8 param_1) { - nofralloc -#include "asm/d/shop/d_shop_system/moveCursor0__13dShopSystem_cFiUc.s" -} -#pragma pop -#endif /* 80198708-80198878 193048 0170+00 1/1 0/0 0/0 .text moveCursor1__13dShopSystem_cFiUc */ -#ifdef NONMATCHING int dShopSystem_c::moveCursor1(int control_status, u8 param_1) { offFlag(7); switch (control_status) { + case 3: + case 4: + case 5: + case 6: case 7: if (mCursorPos == 0) { return getFlowNodeNum() + 1; @@ -1362,16 +1271,6 @@ int dShopSystem_c::moveCursor1(int control_status, u8 param_1) { return 0; } } -#else -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm int dShopSystem_c::moveCursor1(int param_0, u8 param_1) { - nofralloc -#include "asm/d/shop/d_shop_system/moveCursor1__13dShopSystem_cFiUc.s" -} -#pragma pop -#endif /* 80198878-80198950 1931B8 00D8+00 0/0 0/0 9/9 .text drawCursor__13dShopSystem_cFv */ int dShopSystem_c::drawCursor() { @@ -1426,39 +1325,8 @@ int dShopSystem_c::itemRotate() { } /* ############################################################################################## */ -/* 80394C10-80394C10 021270 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_80394C10 = "R_SP01"; -#pragma pop - -/* 80453B24-80453B28 002124 0004+00 1/1 0/0 0/0 .sdata2 @5000 */ -SECTION_SDATA2 static f32 lit_5000 = -25.0f; - -/* 80453B28-80453B2C 002128 0004+00 1/1 0/0 0/0 .sdata2 @5001 */ -SECTION_SDATA2 static f32 lit_5001 = 150.0f; - -/* 80453B2C-80453B30 00212C 0004+00 1/1 0/0 0/0 .sdata2 @5002 */ -SECTION_SDATA2 static f32 lit_5002 = -50.0f; - -/* 80453B30-80453B34 002130 0004+00 1/1 0/0 0/0 .sdata2 @5003 */ -SECTION_SDATA2 static f32 lit_5003 = 250.0f; - -/* 80453B34-80453B38 002134 0004+00 1/1 0/0 0/0 .sdata2 @5004 */ -SECTION_SDATA2 static f32 lit_5004 = 60.0f; - -/* 80453B38-80453B3C 002138 0004+00 1/1 0/0 0/0 .sdata2 @5005 */ -SECTION_SDATA2 static f32 lit_5005 = -130.0f; - -/* 80453B3C-80453B40 00213C 0004+00 2/2 0/0 0/0 .sdata2 @5006 */ -SECTION_SDATA2 static f32 lit_5006 = 215.0f; - -/* 80453B40-80453B44 002140 0004+00 1/1 0/0 0/0 .sdata2 @5007 */ -SECTION_SDATA2 static f32 lit_5007 = 15.0f; /* 80198A2C-801990B0 19336C 0684+00 0/0 0/0 9/9 .text itemZoom__13dShopSystem_cFP4cXyz */ -// matches with literals -#ifdef NONMATCHING int dShopSystem_c::itemZoom(cXyz* param_0) { cXyz local_1c; @@ -1519,11 +1387,11 @@ int dShopSystem_c::itemZoom(cXyz* param_0) { if (dShopSystem_itemNo[mCursorPos - 1] == ARROW_10 || dShopSystem_itemNo[mCursorPos - 1] == ARROW_20 || dShopSystem_itemNo[mCursorPos - 1] == ARROW_30) { - local_34.set(g_cursorHIO.mObjZoom.x, 5.0f + g_cursorHIO.mObjZoom.y + -50.0f, + local_34.set(g_cursorHIO.mObjZoom.x, -50.0f + g_cursorHIO.mObjZoom.y + 5.0f, (g_cursorHIO.mObjZoom.z + 250.0f) - 60.0f); } else { local_34.set(g_cursorHIO.mObjZoom.x, - 20.0f + g_cursorHIO.mObjZoom.y + -50.0f, + -50.0f + g_cursorHIO.mObjZoom.y + 20.0f, (g_cursorHIO.mObjZoom.z + 250.0f) - 60.0f); } } else if (mCursorPos == 7) { @@ -1589,16 +1457,6 @@ int dShopSystem_c::itemZoom(cXyz* param_0) { return 1; } -#else -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm int dShopSystem_c::itemZoom(cXyz* param_0) { - nofralloc -#include "asm/d/shop/d_shop_system/itemZoom__13dShopSystem_cFP4cXyz.s" -} -#pragma pop -#endif /* 801990B0-801990B8 1939F0 0008+00 1/0 0/0 0/0 .text * seq_wait__13dShopSystem_cFP10fopAc_ac_cP10dMsgFlow_c */ @@ -1607,13 +1465,6 @@ int dShopSystem_c::seq_wait(fopAc_ac_c* param_0, dMsgFlow_c* param_1) { } /* ############################################################################################## */ -/* 80453B44-80453B48 002144 0004+00 3/3 0/0 0/0 .sdata2 @5084 */ -SECTION_SDATA2 static u8 lit_5084[4] = { - 0x00, - 0x00, - 0x00, - 0x00, -}; inline void pos3Dto2D(Vec* a, Vec* b) { mDoLib_project(a, b); @@ -1621,8 +1472,6 @@ inline void pos3Dto2D(Vec* a, Vec* b) { /* 801990B8-8019936C 1939F8 02B4+00 1/0 0/0 0/0 .text * seq_start__13dShopSystem_cFP10fopAc_ac_cP10dMsgFlow_c */ -// matches with literals -#ifdef NONMATCHING int dShopSystem_c::seq_start(fopAc_ac_c* actor, dMsgFlow_c* p_flow) { if (field_0xf79 != 0) { dComIfGp_setDoStatusForce(0, 0); @@ -1690,16 +1539,6 @@ int dShopSystem_c::seq_start(fopAc_ac_c* actor, dMsgFlow_c* p_flow) { return 0; } -#else -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm int dShopSystem_c::seq_start(fopAc_ac_c* param_0, dMsgFlow_c* param_1) { - nofralloc -#include "asm/d/shop/d_shop_system/seq_start__13dShopSystem_cFP10fopAc_ac_cP10dMsgFlow_c.s" -} -#pragma pop -#endif /* 8019936C-801993C4 193CAC 0058+00 1/0 0/0 0/0 .text * seq_select_wait__13dShopSystem_cFP10fopAc_ac_cP10dMsgFlow_c */ @@ -1714,8 +1553,6 @@ int dShopSystem_c::seq_select_wait(fopAc_ac_c*, dMsgFlow_c*) { /* 801993C4-8019959C 193D04 01D8+00 1/0 0/0 0/0 .text * seq_select_start__13dShopSystem_cFP10fopAc_ac_cP10dMsgFlow_c */ -// matches with literals -#ifdef NONMATCHING int dShopSystem_c::seq_select_start(fopAc_ac_c*, dMsgFlow_c*) { if (field_0xf60 < 0 && field_0xf76 == 0 && dShopSystem_item_count != -1) { if (dShopSystem_item_count != data_80451058) { @@ -1765,21 +1602,9 @@ int dShopSystem_c::seq_select_start(fopAc_ac_c*, dMsgFlow_c*) { return 0; } -#else -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm int dShopSystem_c::seq_select_start(fopAc_ac_c* param_0, dMsgFlow_c* param_1) { - nofralloc -#include "asm/d/shop/d_shop_system/seq_select_start__13dShopSystem_cFP10fopAc_ac_cP10dMsgFlow_c.s" -} -#pragma pop -#endif /* 8019959C-80199A18 193EDC 047C+00 1/0 0/0 0/0 .text * seq_select__13dShopSystem_cFP10fopAc_ac_cP10dMsgFlow_c */ -// matches with literals -#ifdef NONMATCHING int dShopSystem_c::seq_select(fopAc_ac_c* actor, dMsgFlow_c* p_flow) { if (chkSpMode() && !beforeSelectSeqAction(p_flow, field_0xf5c)) { return 0; @@ -1883,32 +1708,11 @@ int dShopSystem_c::seq_select(fopAc_ac_c* actor, dMsgFlow_c* p_flow) { return 0; } -#else -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm int dShopSystem_c::seq_select(fopAc_ac_c* param_0, dMsgFlow_c* param_1) { - nofralloc -#include "asm/d/shop/d_shop_system/seq_select__13dShopSystem_cFP10fopAc_ac_cP10dMsgFlow_c.s" -} -#pragma pop -#endif /* ############################################################################################## */ -/* 80453B48-80453B50 002148 0004+04 1/1 0/0 0/0 .sdata2 @5296 */ -SECTION_SDATA2 static f32 lit_5296[1 + 1 /* padding */] = { - 9.0f, - /* padding */ - 0.0f, -}; - -/* 80453B50-80453B58 002150 0008+00 1/1 0/0 0/0 .sdata2 @5298 */ -SECTION_SDATA2 static f64 lit_5298 = 4503601774854144.0 /* cast s32 to float */; /* 80199A18-80199BF8 194358 01E0+00 1/0 0/0 0/0 .text * seq_moving__13dShopSystem_cFP10fopAc_ac_cP10dMsgFlow_c */ -// matches with literals -#ifdef NONMATCHING int dShopSystem_c::seq_moving(fopAc_ac_c*, dMsgFlow_c*) { field_0xf68++; @@ -1952,16 +1756,6 @@ int dShopSystem_c::seq_moving(fopAc_ac_c*, dMsgFlow_c*) { return 0; } -#else -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm int dShopSystem_c::seq_moving(fopAc_ac_c* param_0, dMsgFlow_c* param_1) { - nofralloc -#include "asm/d/shop/d_shop_system/seq_moving__13dShopSystem_cFP10fopAc_ac_cP10dMsgFlow_c.s" -} -#pragma pop -#endif /* 80199BF8-80199D14 194538 011C+00 1/0 0/0 0/0 .text * seq_decide__13dShopSystem_cFP10fopAc_ac_cP10dMsgFlow_c */ @@ -2019,8 +1813,6 @@ int dShopSystem_c::seq_choose(fopAc_ac_c* actor, dMsgFlow_c* p_flow) { /* 80199E28-80199FA4 194768 017C+00 1/0 0/0 0/0 .text * seq_decide_yes__13dShopSystem_cFP10fopAc_ac_cP10dMsgFlow_c */ -// matches with literals -#ifdef NONMATCHING int dShopSystem_c::seq_decide_yes(fopAc_ac_c* actor, dMsgFlow_c* p_flow) { if (dMsgObject_getMessageID() == 0x1B82) { mShopCamAction.SetSelectIdx(0); @@ -2061,16 +1853,6 @@ int dShopSystem_c::seq_decide_yes(fopAc_ac_c* actor, dMsgFlow_c* p_flow) { return 0; } -#else -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm int dShopSystem_c::seq_decide_yes(fopAc_ac_c* param_0, dMsgFlow_c* param_1) { - nofralloc -#include "asm/d/shop/d_shop_system/seq_decide_yes__13dShopSystem_cFP10fopAc_ac_cP10dMsgFlow_c.s" -} -#pragma pop -#endif /* 80199FA4-8019A020 1948E4 007C+00 1/0 0/0 0/0 .text * seq_decide_no__13dShopSystem_cFP10fopAc_ac_cP10dMsgFlow_c */ @@ -2120,11 +1902,9 @@ int dShopSystem_c::shop_init(bool param_0) { /* 8019A158-8019A238 194A98 00E0+00 0/0 0/0 9/9 .text * shop_process__13dShopSystem_cFP10fopAc_ac_cP10dMsgFlow_c */ -// process array match issues -#ifdef NONMATCHING int dShopSystem_c::shop_process(fopAc_ac_c* param_0, dMsgFlow_c* param_1) { int iVar1; - iVar1 = (this->*process[mSeq])(param_0, param_1); + iVar1 = (this->*((processFunc*)process)[mSeq])(param_0, param_1); if (mWaitTimer != 0) { mWaitTimer--; @@ -2149,16 +1929,6 @@ int dShopSystem_c::shop_process(fopAc_ac_c* param_0, dMsgFlow_c* param_1) { } return iVar1; } -#else -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm int dShopSystem_c::shop_process(fopAc_ac_c* param_0, dMsgFlow_c* param_1) { - nofralloc -#include "asm/d/shop/d_shop_system/shop_process__13dShopSystem_cFP10fopAc_ac_cP10dMsgFlow_c.s" -} -#pragma pop -#endif /* ############################################################################################## */ /* 804506F8-80450700 -00001 0004+04 1/1 0/0 0/0 .sdata shop_item_pos_data_tbl */ @@ -2278,40 +2048,134 @@ void dShopSystem_c::deleteObject() { } /* ############################################################################################## */ -/* 80453B60-80453B64 002160 0004+00 1/1 0/0 0/0 .sdata2 @5687 */ -SECTION_SDATA2 static f32 lit_5687 = -175.0f; -/* 80453B64-80453B68 002164 0004+00 1/1 0/0 0/0 .sdata2 @5688 */ -SECTION_SDATA2 static f32 lit_5688 = 165.0f; +/* 8019A5D0-8019AB00 194F10 0530+00 1/1 0/0 8/8 .text searchItemActor__13dShopSystem_cFv + */ +int dShopSystem_c::searchItemActor() { + u8 temp_data; + if ((dShopSystem_item_count != -1 && ((dShopSystem_item_count < (temp_data = data_80451058)) || dShopSystem_camera_count < 2))) { + if (dShopSystem_item_count < temp_data) { + fpcEx_Search((fpcLyIt_JudgeFunc)dShopSystem_searchItemActor, this); + } + if (dShopSystem_camera_count < 2) { + fpcEx_Search((fpcLyIt_JudgeFunc)dShopSystem_searchCameraActor, this); + } + return 0; + } -/* 80453B68-80453B6C 002168 0004+00 1/1 0/0 0/0 .sdata2 @5689 */ -SECTION_SDATA2 static f32 lit_5689 = 10.0f; + if (dShopSystem_item_count >= data_80451058 && dShopSystem_camera_count >= 2) { + mSoldOutFlag = -1; + if (data_80451060) { + f32 actorDistArr[7]; + u8 itemNoArr[7]; + f32 arr2[7]; + daTag_ShopItem_c* actorArr[7]; + u8 arr3[7]; + for (int i = 0; i < data_80451058; i++) { + actorArr[i] = dShopSystem_itemActor[i]; + itemNoArr[i] = dShopSystem_itemNo[i]; + actorDistArr[i] = fopAcM_searchActorDistance(this, actorArr[i]); + arr2[i] = 0.0f; + arr3[i] = 0; + } + for (int i = 0; i < data_80451058; i++) { + arr2[i] = actorDistArr[i]; + arr3[i] = i; + if (i > 0) { + for (int j = i; j >= 0; j--) { + if (arr2[j] < arr2[j-1]) { + f32 temp = arr2[j]; + arr2[j] = arr2[j-1]; + arr2[j-1] = temp; + u8 temp2 = arr3[j]; + arr3[j] = arr3[j-1]; + arr3[j-1] = temp2; + } + } + } + } + for (int i = 0; i < data_80451058; i++) { + dShopSystem_itemActor[i] = actorArr[arr3[i]]; + dShopSystem_itemNo[i] = itemNoArr[arr3[i]]; + } + } -/* 80453B6C-80453B70 00216C 0004+00 1/1 0/0 0/0 .sdata2 @5690 */ -SECTION_SDATA2 static f32 lit_5690 = 225.0f; + for (int i = 0; i < data_80451058; i++) { + u32 processId = dShopSystem_itemActor[i]->getProcessID(); + mItemCtrl.setItemIndex(i, processId); + mItemCtrl.setMessageIndex(i, (u16)dShopSystem_itemActor[i]->orig.angle.GetX() != 0xffff ? (u16)dShopSystem_itemActor[i]->orig.angle.GetX() : -1); -/* 80453B70-80453B74 002170 0004+00 1/1 0/0 0/0 .sdata2 @5691 */ -SECTION_SDATA2 static f32 lit_5691 = 370.0f; + if (processId + 0x10000 == 0xffff) { + onFlag(i); + onSoldOutItemFlag(i); + } else { + offFlag(i); + if ((u8)fopAcM_GetParam(dShopSystem_itemActor[i]) == 0xff) { + onSoldOutItemFlag(i); + } else { + offSoldOutItemFlag(i); + } + } + } -/* 80453B74-80453B78 002174 0004+00 1/1 0/0 0/0 .sdata2 @5692 */ -SECTION_SDATA2 static f32 lit_5692 = -180.0f; + if (field_0xf77 == 8) { + dShopSystem_cameraActor[0]->current.pos.set(-175.0f, 165.0f, 10.0f); + dShopSystem_cameraActor[1]->current.pos.set(215.0f, 225.0f, 370.0f); + } -/* 80453B78-80453B7C 002178 0004+00 1/1 0/0 0/0 .sdata2 @5693 */ -SECTION_SDATA2 static f32 lit_5693 = 245.0f; + if (data_80451058 > 3) { + mShopCamAction.setCamDataIdx2( + this, dShopSystem_itemActor[0], dShopSystem_itemActor[1], dShopSystem_itemActor[2], + dShopSystem_itemActor[3], dShopSystem_itemActor[4], dShopSystem_itemActor[5], &dShopSystem_cameraActor[0]->current.pos, + &dShopSystem_cameraActor[1]->current.pos + ); + + if (field_0xf77 == 8) { + cXyz camCtrPos; + camCtrPos.set(-180.0f, 245.0f, -380.0f); + mShopCamAction.setMasterCamCtrPos(&camCtrPos); + } -/* 80453B7C-80453B80 00217C 0004+00 1/1 0/0 0/0 .sdata2 @5694 */ -SECTION_SDATA2 static f32 lit_5694 = -380.0f; + for (int i = 0; i < 7; i++) { + if (dShopSystem_itemActor[i] != NULL) { + u8 cVar8 = dShopSystem_itemActor[i]->orig.angle.GetZ(); + u8 cVar4 = ((u16)dShopSystem_itemActor[i]->orig.angle.GetZ()) >> 8; + if (((cVar8 != 0xff) && + (dComIfGs_isSaveSwitch(cVar8) == 0)) && + ((cVar4 != 0xff && + (dComIfGs_isSaveSwitch(cVar4) == 0)))) { + onFlag(i); + onSoldOutItemFlag(i); + } + } + } + dShopSystem_item_count = -1; + } else { + mShopCamAction.setCamDataIdx( + this, dShopSystem_itemActor[0], dShopSystem_itemActor[1], dShopSystem_itemActor[2], + &dShopSystem_cameraActor[0]->current.pos, + &dShopSystem_cameraActor[1]->current.pos + ); + + for (int i = 0; i < 7; i++) { + if (dShopSystem_itemActor[i] != NULL) { + u8 cVar8 = dShopSystem_itemActor[i]->orig.angle.GetZ(); + u8 cVar4 = ((u16)dShopSystem_itemActor[i]->orig.angle.GetZ()) >> 8; + if (((cVar8 != 0xff) && + (dComIfGs_isSaveSwitch(cVar8) == 0)) && + ((cVar4 != 0xff && + (dComIfGs_isSaveSwitch(cVar4) == 0)))) { + onFlag(i); + onSoldOutItemFlag(i); + } + } + } + dShopSystem_item_count = -1; + } + } -/* 8019A5D0-8019AB00 194F10 0530+00 1/1 0/0 8/8 .text searchItemActor__13dShopSystem_cFv - */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dShopSystem_c::searchItemActor() { - nofralloc -#include "asm/d/shop/d_shop_system/searchItemActor__13dShopSystem_cFv.s" + return 1; } -#pragma pop /* 8019AB00-8019AB1C 195440 001C+00 1/1 0/0 0/0 .text getFlowNodeNum__13dShopSystem_cFv */ |
