diff options
| author | hatal175 <hatal175@users.noreply.github.com> | 2024-01-18 01:19:10 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-01-17 15:19:10 -0800 |
| commit | f97fc769df40a69b12ca9b28be389b236400dcdb (patch) | |
| tree | b701ad324df1a5958ee5ca1560dc9b78d10efc20 /src | |
| parent | 772a04851cd945cc28f6651ca03c177899dec631 (diff) | |
d_s_play OK, work on d_a_ykgr (#2035)
Diffstat (limited to 'src')
| -rw-r--r-- | src/d/com/d_com_static.cpp | 45 | ||||
| -rw-r--r-- | src/d/d_eye_hl.cpp | 2 | ||||
| -rw-r--r-- | src/d/d_stage.cpp | 2 | ||||
| -rw-r--r-- | src/d/s/d_s_logo.cpp | 5 | ||||
| -rw-r--r-- | src/d/s/d_s_name.cpp | 1 | ||||
| -rw-r--r-- | src/d/s/d_s_play.cpp | 677 |
6 files changed, 203 insertions, 529 deletions
diff --git a/src/d/com/d_com_static.cpp b/src/d/com/d_com_static.cpp index 8d3f2add24..752b1cd130 100644 --- a/src/d/com/d_com_static.cpp +++ b/src/d/com/d_com_static.cpp @@ -16,17 +16,12 @@ #include "rel/d/a/tag/d_a_tag_magne/d_a_tag_magne.h" #include "rel/d/a/tag/d_a_tag_mist/d_a_tag_mist.h" #include "rel/d/a/tag/d_a_tag_stream/d_a_tag_stream.h" +#include "rel/d/a/d_a_ykgr/d_a_ykgr.h" // // Types: // -struct daYkgr_c { - static u8 m_aim_rate[4]; - static u8 m_path[4]; - static u8 m_emitter[4]; -}; - struct daObjMovebox { struct Act_c { static void* M_dir_base[2]; @@ -273,14 +268,15 @@ u8 daSus_c::mRoom[256]; /* 80450D88-80450D8C -00001 0004+00 1/1 0/0 2/2 .sbss None */ /* 80450D88 0002+00 data_80450D88 m_count__9daArrow_c */ extern s16 m_count__9daArrow_c; +#pragma push +#pragma force_active on s16 m_count__9daArrow_c; +#pragma pop /* 80450D8A 0002+00 data_80450D8A mSetTop__7daSus_c */ s16 daSus_c::mSetTop; /* 80031248-800313BC 02BB88 0174+00 0/0 0/0 1/1 .text newData__7daSus_cFScRC4cXyzRC4cXyzUcUcUc */ -// Issues with mSetTop and m_count__9daArrow_c relocation -#ifdef NONMATCHING int daSus_c::newData(s8 i_roomNo, cXyz const& param_1, cXyz const& param_2, u8 param_3, u8 param_4, u8 i_type) { s16 setTop = mSetTop; @@ -307,17 +303,6 @@ int daSus_c::newData(s8 i_roomNo, cXyz const& param_1, cXyz const& param_2, u8 p return 0; } -#else -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm int daSus_c::newData(s8 param_0, cXyz const& param_1, cXyz const& param_2, u8 param_3, - u8 param_4, u8 param_5) { - nofralloc -#include "asm/d/com/d_com_static/newData__7daSus_cFScRC4cXyzRC4cXyzUcUcUc.s" -} -#pragma pop -#endif /* 800313BC-80031434 02BCFC 0078+00 0/0 1/1 0/0 .text reset__7daSus_cFv */ void daSus_c::reset() { @@ -429,34 +414,24 @@ void daNpcKakashi_clrSuccessCount() { dComIfGs_setTmpReg(0xFEFF, 0); } -/* ############################################################################################## */ -/* 803790B0-803790B0 005710 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_803790B8 = "@bg%04x"; -#pragma pop - /* 80450D8C-80450D90 -00001 0004+00 0/0 1/1 3/3 .sbss None */ /* 80450D8C 0001+00 data_80450D8C None */ -// u8 daYkgr_c::m_flag; +bool daYkgr_c::m_flag; /* 80450D8D 0001+00 data_80450D8D None */ -// u8 daYkgr_c::m_alpha_flag; +bool daYkgr_c::m_alpha_flag; /* 80450D8E 0002+00 data_80450D8E None */ -// u8 daYkgr_c::m_alpha; - -extern u8 struct_80450D8C[4]; -u8 struct_80450D8C[4]; +u8 daYkgr_c::m_alpha; /* 80450D90-80450D94 000290 0004+00 0/0 0/0 1/1 .sbss m_aim_rate__8daYkgr_c */ -u8 daYkgr_c::m_aim_rate[4]; +f32 daYkgr_c::m_aim_rate; /* 80450D94-80450D98 000294 0004+00 0/0 0/0 2/2 .sbss m_path__8daYkgr_c */ -u8 daYkgr_c::m_path[4]; +dPath* daYkgr_c::m_path; /* 80450D98-80450D9C 000298 0004+00 0/0 1/1 2/2 .sbss m_emitter__8daYkgr_c */ -u8 daYkgr_c::m_emitter[4]; +JPABaseEmitter* daYkgr_c::m_emitter; /* 80031870-800318B4 02C1B0 0044+00 0/0 0/0 19/19 .text getArcName__12daSetBgObj_cFP10fopAc_ac_c */ diff --git a/src/d/d_eye_hl.cpp b/src/d/d_eye_hl.cpp index 7b4b1d28e2..a4477e60e6 100644 --- a/src/d/d_eye_hl.cpp +++ b/src/d/d_eye_hl.cpp @@ -45,7 +45,7 @@ dEyeHL_c* dEyeHL_mng_c::m_obj; void dEyeHL_mng_c::update() { dEyeHL_c* obj = m_obj; - if (g_envHIO[0x10] == 0 || !i_dComIfGp_event_runCheck()) { + if (g_envHIO.mOther.mLODBias == 0 || !i_dComIfGp_event_runCheck()) { for (; obj != NULL; obj = obj->m_next) { obj->m_timg->LODBias = obj->m_lodBias; } diff --git a/src/d/d_stage.cpp b/src/d/d_stage.cpp index bacb37b6b5..c77d6010a0 100644 --- a/src/d/d_stage.cpp +++ b/src/d/d_stage.cpp @@ -2172,7 +2172,7 @@ static int dStage_lgtvInfoInit(dStage_dt_c* stageDt, void* i_data, int entryNum, /* 80025738-80025744 020078 000C+00 0/0 1/1 0/0 .text * dStage_stagInfo_GetParticleNo__FP21stage_stag_info_classi */ -u8 dStage_stagInfo_GetParticleNo(stage_stag_info_class* p_info, int layer) { +u32 dStage_stagInfo_GetParticleNo(stage_stag_info_class* p_info, int layer) { return p_info->mParticleNo[layer]; } diff --git a/src/d/s/d_s_logo.cpp b/src/d/s/d_s_logo.cpp index 889c36b98e..aaf7db700a 100644 --- a/src/d/s/d_s_logo.cpp +++ b/src/d/s/d_s_logo.cpp @@ -1,5 +1,4 @@ // -// Generated By: dol2asm // Translation Unit: d/s/d_s_logo // @@ -10,7 +9,6 @@ #include "d/com/d_com_inf_game.h" #include "d/d_procname.h" #include "d/map/d_map_path_dmap.h" -#include "dol2asm.h" #include "m_Do/m_Do_Reset.h" #include "m_Do/m_Do_controller_pad.h" #include "m_Do/m_Do_graphic.h" @@ -79,11 +77,10 @@ void dScnLogo_c::preLoad_dyl_remove() { /* ############################################################################################## */ /* 80399FE0-80399FFC 026640 001C+00 1/1 0/0 0/0 .rodata l_preLoad_dylKeyTbl */ -SECTION_RODATA static s16 const l_preLoad_dylKeyTbl[14] = { +static s16 const l_preLoad_dylKeyTbl[14] = { 0x02DC, 0x02CE, 0x0221, 0x00F2, 0x021B, 0x02F4, 0x0139, 0x015A, 0x02E4, 0x00FE, 0x0308, 0x030F, 0x00FF, 0x013F, }; -COMPILER_STRIP_GATE(0x80399FE0, &l_preLoad_dylKeyTbl); /* 8025611C-80256198 250A5C 007C+00 2/2 0/0 0/0 .text preLoad_dyl__10dScnLogo_cFv */ bool dScnLogo_c::preLoad_dyl() { diff --git a/src/d/s/d_s_name.cpp b/src/d/s/d_s_name.cpp index 6be0805711..0d679b519d 100644 --- a/src/d/s/d_s_name.cpp +++ b/src/d/s/d_s_name.cpp @@ -1,5 +1,4 @@ // -// Generated By: dol2asm // Translation Unit: d/s/d_s_name // diff --git a/src/d/s/d_s_play.cpp b/src/d/s/d_s_play.cpp index 8779f3d938..024b0c46a1 100644 --- a/src/d/s/d_s_play.cpp +++ b/src/d/s/d_s_play.cpp @@ -1,6 +1,5 @@ // -// Generated By: dol2asm -// Translation Unit: d/s/d_s_play +// d/s/d_s_play // #include "d/s/d_s_play.h" @@ -18,7 +17,6 @@ #include "d/meter/d_meter2_info.h" #include "d/msg/d_msg_object.h" #include "d/save/d_save_HIO.h" -#include "dol2asm.h" #include "f_op/f_op_draw_iter.h" #include "f_op/f_op_msg_mng.h" #include "f_op/f_op_overlap_mng.h" @@ -28,206 +26,50 @@ #include "m_Do/m_Do_audio.h" #include "m_Do/m_Do_graphic.h" #include "rel/d/a/d_a_suspend/d_a_suspend.h" - -extern "C" void calcPauseTimer__9dScnPly_cFv(); -extern "C" void __ct__22dScnPly_env_otherHIO_cFv(); -extern "C" void __ct__22dScnPly_env_debugHIO_cFv(); -extern "C" static void dScnPly_Draw__FP9dScnPly_c(); -extern "C" static void dScnPly_Execute__FP9dScnPly_c(); -extern "C" static void dScnPly_IsDelete__F9dScnPly_c(); -extern "C" static void dScnPly_Delete__FP9dScnPly_c(); -extern "C" void resetGame__9dScnPly_cFv(); -extern "C" void offReset__9dScnPly_cFv(); -extern "C" static void phase_00__FP9dScnPly_c(); -extern "C" static void phase_01__FP9dScnPly_c(); -extern "C" static s32 phase_0__FP9dScnPly_c(); -extern "C" static void phase_1__FP9dScnPly_c(); -extern "C" static void phase_1_0__FP9dScnPly_c(); -extern "C" static void phase_2__FP9dScnPly_c(); -extern "C" static void phase_3__FP9dScnPly_c(); -extern "C" static void phase_4__FP9dScnPly_c(); -extern "C" static void phase_5__FP9dScnPly_c(); -extern "C" static void phase_6__FP9dScnPly_c(); -extern "C" static s32 phase_compleate__FPv(); -extern "C" static void dScnPly_Create__FP11scene_class(); -extern "C" void __dt__22dScnPly_env_debugHIO_cFv(); -extern "C" void __dt__22dScnPly_env_otherHIO_cFv(); -extern "C" void __sinit_d_s_play_cpp(); -extern "C" void __dt__17dScnPly_env_HIO_cFv(); -extern "C" void __dt__17dScnPly_reg_HIO_cFv(); -extern "C" void __dt__21dScnPly_preLoad_HIO_cFv(); -extern "C" extern char const* const d_s_d_s_play__stringBase0; +#include "rel/d/a/d_a_ykgr/d_a_ykgr.h" // -// External References: +// Declarations: // -extern "C" void mDoAud_setSceneName__FPCcll(); -extern "C" void mDoAud_load1stDynamicWave__Fv(); -extern "C" void mDoAud_resetRecover__Fv(); -extern "C" void remove__Q213mDoGph_gInf_c7bloom_cFv(); -extern "C" void mDoRst_resetCallBack__FiPv(); -extern "C" void Link__7cDylPhsFP30request_of_phase_process_classs(); -extern "C" void Unlink__7cDylPhsFP30request_of_phase_process_classs(); -extern "C" void fopAcM_create__FsUlPC4cXyziPC5csXyzPC4cXyzSc(); -extern "C" void fopOvlpM_IsPeek__Fv(); -extern "C" void fopScnM_ChangeReq__FP11scene_classssUs(); -extern "C" void fopMsgM_createExpHeap__FUlP7JKRHeap(); -extern "C" void fopMsgM_destroyExpHeap__FP10JKRExpHeap(); -extern "C" void fopDwIt_Begin__Fv(); -extern "C" void fopDwIt_Next__FP16create_tag_class(); -extern "C" void fpcM_Draw__FPv(); -extern "C" void resetArchiveBank__20dStage_roomControl_cFi(); -extern "C" void dStage_stagInfo_GetParticleNo__FP21stage_stag_info_classi(); -extern "C" void dStage_infoCreate__Fv(); -extern "C" void dStage_Create__Fv(); -extern "C" void dStage_Delete__Fv(); -extern "C" void init__14dComIfG_play_cFv(); -extern "C" void setStartStage__14dComIfG_play_cFP19dStage_startStage_c(); -extern "C" void getLayerNo_common_common__14dComIfG_play_cFPCcii(); -extern "C" void getLayerNo_common__14dComIfG_play_cFPCcii(); -extern "C" void getLayerNo__14dComIfG_play_cFi(); -extern "C" void createSimpleModel__14dComIfG_play_cFv(); -extern "C" void deleteSimpleModel__14dComIfG_play_cFv(); -extern "C" void dComIfG_resetToOpening__FP11scene_class(); -extern "C" void dComIfG_resLoad__FP30request_of_phase_process_classPCc(); -extern "C" void dComIfG_resDelete__FP30request_of_phase_process_classPCc(); -extern "C" void dComIfGs_BossLife_public_Set__FSc(); -extern "C" void dComIfGp_calcNowRegion__Fv(); -extern "C" void dComIfGp_world_dark_set__FUc(); -extern "C" void dComLbG_PhaseHandler__FP30request_of_phase_process_classPPFPv_iPv(); -extern "C" void reset__7daSus_cFv(); -extern "C" void execute__7daSus_cFv(); -extern "C" void onDarkClearLV__21dSv_player_status_b_cFi(); -extern "C" void onTransformLV__21dSv_player_status_b_cFi(); -extern "C" void setItem__17dSv_player_item_cFiUc(); -extern "C" void onFirstBit__21dSv_player_get_item_cFUc(); -extern "C" void onEventBit__11dSv_event_cFUs(); -extern "C" void onSwitch__12dSv_danBit_cFi(); -extern "C" void init__10dSv_info_cFv(); -extern "C" void create__7dDemo_cFv(); -extern "C" void remove__7dDemo_cFv(); -extern "C" void update__7dDemo_cFv(); -extern "C" void setRes__14dRes_control_cFPCcP11dRes_info_ciPCcUcP7JKRHeap(); -extern "C" void syncRes__14dRes_control_cFPCcP11dRes_info_ci(); -extern "C" void syncAllRes__14dRes_control_cFP11dRes_info_ci(); -extern "C" void setStageRes__14dRes_control_cFPCcP7JKRHeap(); -extern "C" void create__8dMpath_cFv(); -extern "C" void remove__8dMpath_cFv(); -extern "C" void Step__14dEvt_control_cFv(); -extern "C" void remove__14dEvt_control_cFv(); -extern "C" void readScene__13dPa_control_cFUcPP21mDoDvdThd_toMainRam_c(); -extern "C" void createScene__13dPa_control_cFPCv(); -extern "C" void removeScene__13dPa_control_cFb(); -extern "C" void cleanup__13dPa_control_cFv(); -extern "C" void calc3D__13dPa_control_cFv(); -extern "C" void calc2D__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 Pause__12dVibration_cFv(); -extern "C" void Remove__12dVibration_cFv(); -extern "C" void __ct__12dAttention_cFP10fopAc_ac_cUl(); -extern "C" void __dt__12dAttention_cFv(); -extern "C" void Run__12dAttention_cFv(); -extern "C" void Draw__12dAttention_cFv(); -extern "C" void ClrMoveFlag__4dBgSFv(); -extern "C" void Move__4dBgSFv(); -extern "C" void Ct__4dCcSFv(); -extern "C" void Dt__4dCcSFv(); -extern "C" void Move__4dCcSFv(); -extern "C" void Draw__4dCcSFv(); -extern "C" void execItemGet__FUc(); -extern "C" void create__7dTres_cFv(); -extern "C" void remove__7dTres_cFv(); -extern "C" void create__10dMdl_mng_cFv(); -extern "C" void remove__10dMdl_mng_cFv(); -extern "C" void reset__10dMdl_mng_cFv(); -extern "C" void update__12dEyeHL_mng_cFv(); -extern "C" void checkRoomRestartStart__9daPy_py_cFv(); -extern "C" void dKy_getdaytime_hour__Fv(); -extern "C" void dKy_getdaytime_minute__Fv(); -extern "C" void dKy_itudemo_se__Fv(); -extern "C" void dKy_get_dayofweek__Fv(); -extern "C" void dKy_darkworld_check__Fv(); -extern "C" void dKy_darkworld_stage_check__FPCci(); -extern "C" void dKy_darkworld_spot_check__FPCci(); -extern "C" void dKy_darkworld_Area_set__FPCci(); -extern "C" void dMeter2Info_setCloth__FUcb(); -extern "C" void dMeter2Info_setSword__FUcb(); -extern "C" void dMeter2Info_setShield__FUcb(); -extern "C" void readMessageGroup__12dMsgObject_cFPP25mDoDvdThd_mountXArchive_c(); -extern "C" s8 func_80252E70(s8*); -extern "C" void ClearPi__13cBgS_PolyInfoFv(); -extern "C" void setInDarkness__10Z2SceneMgrFb(); -extern "C" void check1stDynamicWave__10Z2SceneMgrFv(); -extern "C" void load2ndDynamicWave__10Z2SceneMgrFv(); -extern "C" void sceneBgmStart__10Z2SceneMgrFv(); -extern "C" void __dl__FPv(); -extern "C" void setMessageCount__12JUTAssertionFi(); -extern "C" void __register_global_object(); -extern "C" void _savegpr_26(); -extern "C" void _savegpr_28(); -extern "C" void _savegpr_29(); -extern "C" void _restgpr_26(); -extern "C" void _restgpr_28(); -extern "C" void _restgpr_29(); -// extern "C" extern void* g_fopScn_Method[5 + 1 /* padding */]; -// extern "C" extern void* g_fpcNd_Method[5 + 1 /* padding */]; -extern "C" extern void* __vt__14mDoHIO_entry_c[3]; -extern "C" u8 m_bloom__13mDoGph_gInf_c[20]; -extern "C" u8 mLineCheck__11fopAcM_lc_c[112]; -extern "C" u8 mGndCheck__11fopAcM_gc_c[84]; -extern "C" u8 mRoofCheck__11fopAcM_rc_c[80]; -extern "C" u8 mWaterCheck__11fopAcM_wt_c[84 + 4 /* padding */]; -extern "C" extern dScnKy_env_light_c g_env_light; -extern "C" extern dSvBit_HIO_c g_save_bit_HIO; -extern "C" extern GXColor g_saftyWhiteColor; -extern "C" u8 mFader__13mDoGph_gInf_c[4]; -extern "C" u8 mResetData__6mDoRst[4 + 4 /* padding */]; -extern "C" u8 mProcID__20dStage_roomControl_c[4]; -extern "C" extern u8 struct_80450D8C[4]; -extern "C" extern u8 mBgmSet__17mDoAud_zelAudio_c; -extern "C" u8 m_emitter__8daYkgr_c[4]; -extern "C" u8 sManager__10JFWDisplay[4]; -extern "C" u8 mAudioMgrPtr__10Z2AudioMgr[4 + 4 /* padding */]; -extern "C" u8 sCallback__Q210JUTGamePad13C3ButtonReset[4]; -extern "C" u8 sCallbackArg__Q210JUTGamePad13C3ButtonReset[4 + 4 /* padding */]; -extern "C" u8 mStatus__13dPa_control_c; +static void dScnPly_Create(scene_class*); +static int dScnPly_Delete(dScnPly_c*); +static int dScnPly_IsDelete(dScnPly_c); +static int dScnPly_Execute(dScnPly_c*); +static int dScnPly_Draw(dScnPly_c*); +static int phase_00(dScnPly_c*); +static int phase_00(dScnPly_c*); +static int phase_1(dScnPly_c*); +static int phase_1_0(dScnPly_c*); +static int phase_01(dScnPly_c*); +static int phase_0(dScnPly_c*); +static int phase_2(dScnPly_c*); +static int phase_3(dScnPly_c*); +static int phase_4(dScnPly_c*); +static int phase_5(dScnPly_c*); +static int phase_6(dScnPly_c*); +static int phase_compleate(void*); -// -// Declarations: -// +extern "C" s8 func_80252E70(s8*); /* ############################################################################################## */ /* 804510F8-80451100 0005F8 0008+00 2/2 0/0 0/0 .sbss resPhase */ -static request_of_phase_process_class resPhase; +static request_of_phase_process_class resPhase[1]; /* 80451100-80451108 000600 0008+00 2/2 0/0 0/0 .sbss dylPhase */ -static request_of_phase_process_class dylPhase; +static request_of_phase_process_class dylPhase[1]; /* 80451108-8045110C 000608 0004+00 1/1 0/0 0/0 .sbss dylPreLoadTime1 */ -static u8 dylPreLoadTime1[4]; - -/* 8045110C-80451110 00060C 0004+00 1/1 0/0 0/0 .sbss None */ -static u8 data_8045110C[4]; +static OSTime dylPreLoadTime1; /* 80451110-80451114 000610 0004+00 1/1 0/0 0/0 .sbss resPreLoadTime0 */ -//static OSTime resPreLoadTime0; -static u8 resPreLoadTime0[4]; - -/* 80451114-80451118 000614 0004+00 1/1 0/0 0/0 .sbss None */ -static u8 data_80451114[4]; +static OSTime resPreLoadTime0; /* 80451118-8045111C 000618 0004+00 1/1 0/0 0/0 .sbss resPreLoadTime1 */ -static u8 resPreLoadTime1[4]; - -/* 8045111C-80451120 00061C 0004+00 1/1 0/0 0/0 .sbss None */ -static u8 data_8045111C[4]; +static OSTime resPreLoadTime1; /* 80451120-80451124 000620 0004+00 1/1 0/0 0/0 .sbss g_preLoadHIO */ -static u8 g_preLoadHIO[4]; +static dScnPly_preLoad_HIO_c g_preLoadHIO; /* 80451124-80451128 -00001 0004+00 3/3 7/7 38/38 .sbss None */ /* 80451124 0001+00 data_80451124 None */ @@ -249,80 +91,66 @@ s8 dScnPly_c::calcPauseTimer() { /* ############################################################################################## */ /* 803C3158-803C3188 020278 002E+02 1/1 0/0 0/0 .data l_wipeType$4081 */ -SECTION_DATA static s16 l_wipeType[23] = { +static s16 l_wipeType[23] = { 0x0000, 0x0000, 0x0011, 0x0002, 0x0002, 0x0001, 0x0003, 0x0001, 0x0004, 0x0004, 0x0005, 0x0005, 0x0006, 0x0007, 0x0000, 0x0000, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0008, 0x0008, }; /* 803C3188-803C3194 0202A8 000A+02 1/1 0/0 0/0 .data camparamarc$4608 */ -SECTION_DATA static char camparamarc[10] = "CamParam"; +static char camparamarc[10] = "CamParam"; /* 803C3194-803C31C0 -00001 002C+00 1/1 0/0 0/0 .data l_method$4860 */ -SECTION_DATA static request_of_phase_process_fn l_method[11] = { - (request_of_phase_process_fn)phase_00__FP9dScnPly_c, - (request_of_phase_process_fn)phase_1__FP9dScnPly_c, - (request_of_phase_process_fn)phase_1_0__FP9dScnPly_c, - (request_of_phase_process_fn)phase_01__FP9dScnPly_c, - (request_of_phase_process_fn)phase_0__FP9dScnPly_c, - (request_of_phase_process_fn)phase_2__FP9dScnPly_c, - (request_of_phase_process_fn)phase_3__FP9dScnPly_c, - (request_of_phase_process_fn)phase_4__FP9dScnPly_c, - (request_of_phase_process_fn)phase_5__FP9dScnPly_c, - (request_of_phase_process_fn)phase_6__FP9dScnPly_c, - (request_of_phase_process_fn)phase_compleate__FPv, +static request_of_phase_process_fn l_method[11] = { + (request_of_phase_process_fn)phase_00, + (request_of_phase_process_fn)phase_1, + (request_of_phase_process_fn)phase_1_0, + (request_of_phase_process_fn)phase_01, + (request_of_phase_process_fn)phase_0, + (request_of_phase_process_fn)phase_2, + (request_of_phase_process_fn)phase_3, + (request_of_phase_process_fn)phase_4, + (request_of_phase_process_fn)phase_5, + (request_of_phase_process_fn)phase_6, + (request_of_phase_process_fn)phase_compleate, }; /* 803C31C0-803C31D4 -00001 0014+00 2/0 0/0 0/0 .data l_dScnPly_Method */ -SECTION_DATA static void* l_dScnPly_Method[5] = { - (void*)dScnPly_Create__FP11scene_class, (void*)dScnPly_Delete__FP9dScnPly_c, - (void*)dScnPly_Execute__FP9dScnPly_c, (void*)dScnPly_IsDelete__F9dScnPly_c, - (void*)dScnPly_Draw__FP9dScnPly_c, +static leafdraw_method_class l_dScnPly_Method = { + (process_method_func)dScnPly_Create, (process_method_func)dScnPly_Delete, + (process_method_func)dScnPly_Execute, (process_method_func)dScnPly_IsDelete, + (process_method_func)dScnPly_Draw, }; /* 803C31D4-803C31FC -00001 0028+00 0/0 0/0 1/0 .data g_profile_PLAY_SCENE */ -SECTION_DATA extern void* g_profile_PLAY_SCENE[10] = { - (void*)NULL, - (void*)0x0001FFFD, - (void*)0x000B0000, - (void*)&g_fpcNd_Method, - (void*)0x000001D8, - (void*)NULL, - (void*)NULL, - (void*)&g_fopScn_Method, - (void*)&l_dScnPly_Method, - (void*)NULL, +scene_process_profile_definition g_profile_PLAY_SCENE = { + fpcLy_ROOT_e, // mLayerID + 1, // mListID + fpcPi_CURRENT_e, // mListPrio + PROC_PLAY_SCENE, // mProcName + &g_fpcNd_Method.mBase, // mSubMtd + sizeof(dScnPly_c), // mSize + 0, // mSizeOther + 0, // mParameters + &g_fopScn_Method.mBase, // mSubMtd + (process_method_class*)&l_dScnPly_Method, // mpMtd }; /* 803C31FC-803C3224 -00001 0028+00 0/0 0/0 1/0 .data g_profile_OPENING_SCENE */ -SECTION_DATA extern void* g_profile_OPENING_SCENE[10] = { - (void*)NULL, - (void*)0x0001FFFD, - (void*)0x000C0000, - (void*)&g_fpcNd_Method, - (void*)0x000001D8, - (void*)NULL, - (void*)NULL, - (void*)&g_fopScn_Method, - (void*)&l_dScnPly_Method, - (void*)NULL, -}; - -/* 803C3224-803C3230 020344 000C+00 3/3 0/0 0/0 .data __vt__22dScnPly_env_debugHIO_c */ -SECTION_DATA extern void* __vt__22dScnPly_env_debugHIO_c[3] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__22dScnPly_env_debugHIO_cFv, -}; - -/* 803C3230-803C323C 020350 000C+00 3/3 0/0 0/0 .data __vt__22dScnPly_env_otherHIO_c */ -SECTION_DATA extern void* __vt__22dScnPly_env_otherHIO_c[3] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__22dScnPly_env_otherHIO_cFv, +scene_process_profile_definition g_profile_OPENING_SCENE = { + fpcLy_ROOT_e, // mLayerID + 1, // mListID + fpcPi_CURRENT_e, // mListPrio + PROC_OPENING_SCENE, // mProcName + &g_fpcNd_Method.mBase, // mSubMtd + sizeof(dScnPly_c), // mSize + 0, // mSizeOther + 0, // mParameters + &g_fopScn_Method.mBase, // mSubMtd + (process_method_class*)&l_dScnPly_Method, // mpMtd }; /* 80454F18-80454F1C 003518 0002+02 1/0 0/0 0/0 .sdata2 T_JOINT_dylKeyTbl */ -SECTION_SDATA2 static u16 T_JOINT_dylKeyTbl = { +static const s16 T_JOINT_dylKeyTbl[1] = { 0x0106, }; @@ -333,40 +161,13 @@ dScnPly_env_otherHIO_c::dScnPly_env_otherHIO_c() { mDispTransCylinder = false; } -/* ############################################################################################## */ -/* 80454F20-80454F24 003520 0004+00 1/1 0/0 0/0 .sdata2 @4066 */ -SECTION_SDATA2 static f32 lit_4066 = -100.0f; - -/* 80454F24-80454F28 003524 0004+00 1/1 0/0 0/0 .sdata2 @4067 */ -SECTION_SDATA2 static f32 lit_4067 = 100.0f; - -/* 80454F28-80454F2C 003528 0004+00 2/2 0/0 0/0 .sdata2 @4068 */ -SECTION_SDATA2 static u8 lit_4068[4] = { - 0x00, - 0x00, - 0x00, - 0x00, -}; - /* 80259468-802594AC 253DA8 0044+00 1/1 0/0 0/0 .text __ct__22dScnPly_env_debugHIO_cFv */ -// matches with literals -#ifdef NONMATCHING dScnPly_env_debugHIO_c::dScnPly_env_debugHIO_c() { mBoxCullMinSize.set(-100.0f, -100.0f, -100.0f); mBoxCullMaxSize.set(100.0f, 100.0f, 100.0f); mSphereCullCenter.set(0.0f, 0.0f, 0.0f); mSphereCullRadius = 100.0f; } -#else -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm dScnPly_env_debugHIO_c::dScnPly_env_debugHIO_c() { - nofralloc -#include "asm/d/s/d_s_play/__ct__22dScnPly_env_debugHIO_cFv.s" -} -#pragma pop -#endif /* 802594AC-802597B8 253DEC 030C+00 1/0 0/0 0/0 .text dScnPly_Draw__FP9dScnPly_c */ static int dScnPly_Draw(dScnPly_c* scn) { @@ -467,52 +268,78 @@ static int dScnPly_IsDelete(dScnPly_c scnPly) { return 1; } -/* ############################################################################################## */ -/* 8039A2DF-8039A2E7 02693F 0008+00 1/0 0/0 0/0 .rodata None */ -extern "C" char const* const stringBase_8039A2DF; +struct ProLoadInfoStruct { + const char* field_0x0; + const s16* field_0x4; + const char** field_0x8; + u8 field_0xc; + u8 field_0xd; +}; /* 80450760-80450764 -00001 0004+00 1/0 0/0 0/0 .sdata T_JOINT_resName */ -extern "C" const char* T_JOINT_resName; - -/* 80454F18-80454F1C 003518 0002+02 1/0 0/0 0/0 .sdata2 T_JOINT_dylKeyTbl */ -extern "C" u16 T_JOINT_dylKeyTbl; +static const char* T_JOINT_resName[1] = {"Always"}; /* 8039A2C8-8039A2D8 -00001 0010+00 4/4 0/0 0/0 .rodata PreLoadInfoT */ -SECTION_RODATA static void* const PreLoadInfoT[4] = { - (void*)(((char*)&d_s_d_s_play__stringBase0) + 0x7), - &T_JOINT_dylKeyTbl, - &T_JOINT_resName, - (void*)0x01010000, +static ProLoadInfoStruct const PreLoadInfoT[1] = { + { + "T_JOINT", + T_JOINT_dylKeyTbl, + T_JOINT_resName, + 1, + 1, + }, }; -COMPILER_STRIP_GATE(0x8039A2C8, &PreLoadInfoT); - -/* 8039A2D8-8039A2D8 026938 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_8039A2D8 = "Always"; -SECTION_DEAD static char const* const stringBase_8039A2DF = "T_JOINT"; -#pragma pop - -/* 80450760-80450764 -00001 0004+00 1/0 0/0 0/0 .sdata T_JOINT_resName */ -SECTION_SDATA static const char* T_JOINT_resName = "Always"; /* 80450764-80450768 -00001 0004+00 4/4 0/0 0/0 .sdata None */ -SECTION_SDATA static s8 preLoadNo = 0xFF; +static s8 preLoadNo = -1; -#pragma push -#pragma force_active on -SECTION_SDATA static u8 doPreLoad = 1; -#pragma pop +static u8 doPreLoad = 1; /* 802598AC-80259AC4 2541EC 0218+00 1/0 0/0 0/0 .text dScnPly_Delete__FP9dScnPly_c */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void dScnPly_Delete(dScnPly_c* param_0) { - nofralloc -#include "asm/d/s/d_s_play/dScnPly_Delete__FP9dScnPly_c.s" +static int dScnPly_Delete(dScnPly_c* param_0) { + daSus_c::reset(); + dMpath_c::remove(); + dTres_c::remove(); + dComIfGp_getAttention().~dAttention_c(); + dComIfGp_getVibration().Remove(); + dComIfG_Bgsp().Dt(); + dComIfG_Ccsp()->Dt(); + dStage_Delete(); + i_dComIfGp_event_remove(); + dComIfGp_particle_removeScene(0); + dComIfGp_getMsgDtArchive(1)->removeResourceAll(); + JKRUnmountArchive(dComIfGp_getMsgDtArchive(1)); + dDemo_c::remove(); + fopMsgM_destroyExpHeap(dComIfGp_getExpHeap2D()); + dComIfGp_setExpHeap2D(NULL); + fopMsgM_destroyExpHeap(dComIfGp_getMsgExpHeap()); + dComIfGp_setMsgExpHeap(NULL); + dComIfGp_deleteSimpleModel(); + dMdl_mng_c::remove(); + mDoGph_gInf_c::getBloom()->remove(); + dComIfGs_offPlayerFieldLastStayFieldDataExistFlag(); + dComIfGp_setWindowNum(0); + dComIfGd_setView(NULL); + if (preLoadNo >= 0) { + const char** piVar4 = PreLoadInfoT[preLoadNo].field_0x8; + int bVar1 = PreLoadInfoT[preLoadNo].field_0xd; + if (piVar4 != NULL && (*piVar4 != NULL)) { + for (int iVar3 = 0; iVar3 < bVar1; iVar3++) { + dComIfG_resDelete(&resPhase[iVar3], piVar4[iVar3]); + } + } + const s16* psVar5 = PreLoadInfoT[preLoadNo].field_0x4; + int bVar2 = PreLoadInfoT[preLoadNo].field_0xc; + if (psVar5 != NULL && *psVar5 != 0) { + for (int iVar3 = 0; iVar3 < bVar2; iVar3++) { + cDylPhs::Unlink(&dylPhase[iVar3], psVar5[iVar3]); + } + } + } + dComIfGp_init(); + JUTAssertion::setMessageCount(0); + return 1; } -#pragma pop /* 80259AC4-80259BFC 254404 0138+00 1/1 0/0 0/0 .text resetGame__9dScnPly_cFv */ bool dScnPly_c::resetGame() { @@ -745,17 +572,12 @@ static int phase_1_0(dScnPly_c* param_0) { } /* 8025A4F8-8025A5D4 254E38 00DC+00 1/0 0/0 0/0 .text phase_2__FP9dScnPly_c */ -// extra mr -#ifdef NONMATCHING static int phase_2(dScnPly_c* scn) { int tmp = dComIfG_syncAllObjectRes(); if (tmp >= 0 && tmp != 0) { return cPhs_INIT_e; } - int layer = dComIfG_play_c::getLayerNo(0); - stage_stag_info_class* stag_info = i_dComIfGp_getStage()->getStagInfo(); - - u8 particle_no = dStage_stagInfo_GetParticleNo(stag_info, layer); + u8 particle_no = dStage_stagInfo_GetParticleNo(i_dComIfGp_getStage()->getStagInfo(), dComIfG_play_c::getLayerNo(0)); if (particle_no == 255) { particle_no = dStage_stagInfo_GetParticleNo(i_dComIfGp_getStage()->getStagInfo()); } @@ -764,16 +586,6 @@ static int phase_2(dScnPly_c* scn) { dMsgObject_readMessageGroup(&scn->field_0x1d0); return cPhs_NEXT_e; } -#else -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm int phase_2(dScnPly_c* param_0) { - nofralloc -#include "asm/d/s/d_s_play/phase_2__FP9dScnPly_c.s" -} -#pragma pop -#endif /* 8025A5D4-8025A654 254F14 0080+00 1/0 0/0 0/0 .text phase_3__FP9dScnPly_c */ static int phase_3(dScnPly_c* scn) { @@ -786,55 +598,13 @@ static int phase_3(dScnPly_c* scn) { return cPhs_NEXT_e; } -/* ############################################################################################## */ -/* 80430778-80430784 05D498 000C+00 1/1 0/0 0/0 .bss @4041 */ -static u8 lit_4041[12]; - -/* 80430784-80430790 05D4A4 000C+00 0/1 0/0 0/0 .bss @4049 */ -#pragma push -#pragma force_active on -static u8 lit_4049[12]; -#pragma pop - -/* 80430790-8043079C 05D4B0 000C+00 0/1 0/0 0/0 .bss @4050 */ -#pragma push -#pragma force_active on -static u8 lit_4050[12]; -#pragma pop +/* 80451128-80451130 000628 0004+04 1/1 0/0 0/0 .sbss g_regHIO */ +dScnPly_reg_HIO_c g_regHIO; /* 8043079C-804307E0 05D4BC 0044+00 1/2 3/3 0/0 .bss g_envHIO */ -u8 g_envHIO[68]; - -/* 80454F30-80454F34 003530 0004+00 1/1 0/0 0/0 .sdata2 @4804 */ -SECTION_SDATA2 static f32 lit_4804 = 608.0f; - -/* 80454F34-80454F38 003534 0004+00 1/1 0/0 0/0 .sdata2 @4805 */ -SECTION_SDATA2 static f32 lit_4805 = 448.0f; - -/* 80454F38-80454F40 003538 0004+04 1/1 0/0 0/0 .sdata2 @4806 */ -SECTION_SDATA2 static f32 lit_4806[1 + 1 /* padding */] = { - 1.0f, - /* padding */ - 0.0f, -}; - -class daYkgr_c { -public: - static void init() { - m_emitter = 0; - m_flag = false; - m_alpha_flag = true; - m_alpha = 255; - } - - static u32 m_emitter; - static bool m_flag; - static bool m_alpha_flag; - static u8 m_alpha; -}; +dScnPly_env_HIO_c g_envHIO; /* 8025A654-8025A9F4 254F94 03A0+00 1/0 0/0 0/0 .text phase_4__FP9dScnPly_c */ -#ifdef NONMATCHING static int phase_4(dScnPly_c* i_this) { if (i_this->sceneCommand) { dComIfGp_particle_createScene(i_this->sceneCommand->getMemAddress()); @@ -889,7 +659,7 @@ static int phase_4(dScnPly_c* i_this) { dMdl_mng_c::create(); mDoGph_gInf_c::setTickRate((OS_BUS_CLOCK / 4) / 30); - g_envHIO[4] = -1; + g_envHIO.field_0x4 = -1; g_save_bit_HIO.field_0x4 = -1; new (&dComIfGp_getAttention()) dAttention_c(dComIfGp_getPlayer(0), 0); dComIfGp_getVibration().Init(); @@ -902,8 +672,14 @@ static int phase_4(dScnPly_c* i_this) { dScnPly_c::nextPauseTimer = 0; preLoadNo = -1; - if (doPreLoad != 0 && !strcmp(dComIfGp_getStartStageName(), (char*)PreLoadInfoT[0])) { - preLoadNo = 0; + if (doPreLoad != 0) { + const char* stageName = dComIfGp_getStartStageName(); + OS_REPORT("stageName=%s\n", stageName); + for (u32 i = 0; i < 1; i++) { + if (strcmp(stageName, PreLoadInfoT[i].field_0x0) == 0) { + preLoadNo = i; + } + } } if (preLoadNo < 0) { @@ -913,36 +689,60 @@ static int phase_4(dScnPly_c* i_this) { resPreLoadTime0 = OSGetTime(); return cPhs_NEXT_e; } -#else -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void phase_4(dScnPly_c* param_0) { - nofralloc -#include "asm/d/s/d_s_play/phase_4__FP9dScnPly_c.s" -} -#pragma pop -#endif /* 8025A9F4-8025AAC0 255334 00CC+00 1/0 0/0 0/0 .text phase_5__FP9dScnPly_c */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void phase_5(dScnPly_c* param_0) { - nofralloc -#include "asm/d/s/d_s_play/phase_5__FP9dScnPly_c.s" +static int phase_5(dScnPly_c* param_0) { + if (preLoadNo >= 0) { + int rv = 2; + const char** resNames = PreLoadInfoT[preLoadNo].field_0x8; + s32 resNameNum = PreLoadInfoT[preLoadNo].field_0xd; + if (resNames != NULL && *resNames != NULL) { + JUT_ASSERT(2830, resNameNum <= (sizeof(resPhase) / sizeof(resPhase[0]))); + int goodLoads = 0; + int loadNum = 0; + for (int i = 0; i < resNameNum; i++) { + if (dComIfG_resLoad(&resPhase[i], resNames[i]) == 4) { + goodLoads++; + } else { + rv = 0; + } + loadNum++; + } + } + if (rv == 4) { + resPreLoadTime1 = OSGetTime(); + } + return rv; + } + return cPhs_NEXT_e; } -#pragma pop /* 8025AAC0-8025AB8C 255400 00CC+00 1/0 0/0 0/0 .text phase_6__FP9dScnPly_c */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void phase_6(dScnPly_c* param_0) { - nofralloc -#include "asm/d/s/d_s_play/phase_6__FP9dScnPly_c.s" +static int phase_6(dScnPly_c* param_0) { + if (preLoadNo >= 0) { + int rv = 2; + const s16* dylKeyTbl = PreLoadInfoT[preLoadNo].field_0x4; + s32 dylKeyTblNum = PreLoadInfoT[preLoadNo].field_0xc; + if (dylKeyTbl != NULL && *dylKeyTbl != 0) { + JUT_ASSERT(2864, dylKeyTblNum <= (sizeof(dylPhase) / sizeof(dylPhase[0]))); + int goodLoads = 0; + int loadNum = 0; + for (int i = 0; i < dylKeyTblNum; i++) { + if (cDylPhs::Link(&dylPhase[i], dylKeyTbl[i]) == 4) { + goodLoads++; + } else { + rv = 0; + } + loadNum++; + } + } + if (rv == 4) { + dylPreLoadTime1 = OSGetTime(); + } + return rv; + } + return cPhs_NEXT_e; } -#pragma pop /* 8025AB8C-8025AB94 2554CC 0008+00 1/0 0/0 0/0 .text phase_compleate__FPv */ static int phase_compleate(void* param_0) { @@ -953,100 +753,3 @@ static int phase_compleate(void* param_0) { static void dScnPly_Create(scene_class* i_this) { dComLbG_PhaseHandler(&static_cast<dScnPly_c*>(i_this)->field_0x1c4, l_method, i_this); } - -/* 8025ABC4-8025AC0C 255504 0048+00 1/0 0/0 0/0 .text __dt__22dScnPly_env_debugHIO_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -// asm dScnPly_env_debugHIO_c::~dScnPly_env_debugHIO_c() { -extern "C" asm void __dt__22dScnPly_env_debugHIO_cFv() { - nofralloc -#include "asm/d/s/d_s_play/__dt__22dScnPly_env_debugHIO_cFv.s" -} -#pragma pop - -/* 8025AC0C-8025AC54 25554C 0048+00 1/0 0/0 0/0 .text __dt__22dScnPly_env_otherHIO_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -// asm dScnPly_env_otherHIO_c::~dScnPly_env_otherHIO_c() { -extern "C" asm void __dt__22dScnPly_env_otherHIO_cFv() { - nofralloc -#include "asm/d/s/d_s_play/__dt__22dScnPly_env_otherHIO_cFv.s" -} -#pragma pop - -/* ############################################################################################## */ -/* 803C323C-803C3248 02035C 000C+00 2/2 0/0 0/0 .data __vt__17dScnPly_env_HIO_c */ -SECTION_DATA extern void* __vt__17dScnPly_env_HIO_c[3] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__17dScnPly_env_HIO_cFv, -}; - -/* 803C3248-803C3254 020368 000C+00 2/2 0/0 0/0 .data __vt__17dScnPly_reg_HIO_c */ -SECTION_DATA extern void* __vt__17dScnPly_reg_HIO_c[3] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__17dScnPly_reg_HIO_cFv, -}; - -/* 803C3254-803C3260 020374 000C+00 2/2 0/0 0/0 .data __vt__21dScnPly_preLoad_HIO_c */ -SECTION_DATA extern void* __vt__21dScnPly_preLoad_HIO_c[3] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__21dScnPly_preLoad_HIO_cFv, -}; - -/* 80451128-80451130 000628 0004+04 1/1 0/0 0/0 .sbss g_regHIO */ -u8 g_regHIO[4]; - -/* 8025AC54-8025AD04 255594 00B0+00 0/0 1/0 0/0 .text __sinit_d_s_play_cpp */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void __sinit_d_s_play_cpp() { - nofralloc -#include "asm/d/s/d_s_play/__sinit_d_s_play_cpp.s" -} -#pragma pop - -#pragma push -#pragma force_active on -REGISTER_CTORS(0x8025AC54, __sinit_d_s_play_cpp); -#pragma pop - -/* 8025AD04-8025AD78 255644 0074+00 2/1 0/0 0/0 .text __dt__17dScnPly_env_HIO_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -// asm dScnPly_env_HIO_c::~dScnPly_env_HIO_c() { -extern "C" asm void __dt__17dScnPly_env_HIO_cFv() { - nofralloc -#include "asm/d/s/d_s_play/__dt__17dScnPly_env_HIO_cFv.s" -} -#pragma pop - -/* 8025AD78-8025ADC0 2556B8 0048+00 2/1 0/0 0/0 .text __dt__17dScnPly_reg_HIO_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -// asm dScnPly_reg_HIO_c::~dScnPly_reg_HIO_c() { -extern "C" asm void __dt__17dScnPly_reg_HIO_cFv() { - nofralloc -#include "asm/d/s/d_s_play/__dt__17dScnPly_reg_HIO_cFv.s" -} -#pragma pop - -/* 8025ADC0-8025AE1C 255700 005C+00 2/1 0/0 0/0 .text __dt__21dScnPly_preLoad_HIO_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -// asm dScnPly_preLoad_HIO_c::~dScnPly_preLoad_HIO_c() { -extern "C" asm void __dt__21dScnPly_preLoad_HIO_cFv() { - nofralloc -#include "asm/d/s/d_s_play/__dt__21dScnPly_preLoad_HIO_cFv.s" -} -#pragma pop - -/* 8039A2D8-8039A2D8 026938 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ |
