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
This commit is contained in:
hatal175
2023-06-02 23:28:29 +03:00
committed by GitHub
parent 7b7dba2c12
commit 598aa4aa8c
65 changed files with 419 additions and 5286 deletions
+54 -239
View File
@@ -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,
};
+127 -549
View File
@@ -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"
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
/* 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"
}
#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
+135 -271
View File
@@ -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;
/* 80453B68-80453B6C 002168 0004+00 1/1 0/0 0/0 .sdata2 @5689 */
SECTION_SDATA2 static f32 lit_5689 = 10.0f;
/* 80453B6C-80453B70 00216C 0004+00 1/1 0/0 0/0 .sdata2 @5690 */
SECTION_SDATA2 static f32 lit_5690 = 225.0f;
/* 80453B70-80453B74 002170 0004+00 1/1 0/0 0/0 .sdata2 @5691 */
SECTION_SDATA2 static f32 lit_5691 = 370.0f;
/* 80453B74-80453B78 002174 0004+00 1/1 0/0 0/0 .sdata2 @5692 */
SECTION_SDATA2 static f32 lit_5692 = -180.0f;
/* 80453B78-80453B7C 002178 0004+00 1/1 0/0 0/0 .sdata2 @5693 */
SECTION_SDATA2 static f32 lit_5693 = 245.0f;
/* 80453B7C-80453B80 00217C 0004+00 1/1 0/0 0/0 .sdata2 @5694 */
SECTION_SDATA2 static f32 lit_5694 = -380.0f;
/* 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"
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;
}
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]];
}
}
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);
if (processId + 0x10000 == 0xffff) {
onFlag(i);
onSoldOutItemFlag(i);
} else {
offFlag(i);
if ((u8)fopAcM_GetParam(dShopSystem_itemActor[i]) == 0xff) {
onSoldOutItemFlag(i);
} else {
offSoldOutItemFlag(i);
}
}
}
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);
}
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);
}
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;
}
}
return 1;
}
#pragma pop
/* 8019AB00-8019AB1C 195440 001C+00 1/1 0/0 0/0 .text getFlowNodeNum__13dShopSystem_cFv
*/