summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorhatal175 <hatal175@users.noreply.github.com>2023-06-02 23:28:29 +0300
committerGitHub <noreply@github.com>2023-06-02 13:28:29 -0700
commit598aa4aa8c939b4257e0cd1e009e53c948cd3e90 (patch)
tree5a967a05705ae1f9c0315282dab3cf6fc59caa24 /src
parent7b7dba2c12e0b67c4d28278ec209fdc8635a3cfd (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.cpp293
-rw-r--r--src/d/save/d_save_HIO.cpp676
-rw-r--r--src/d/shop/d_shop_system.cpp396
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
*/