d_s_play OK, work on d_a_ykgr (#2035)

This commit is contained in:
hatal175
2024-01-18 01:19:10 +02:00
committed by GitHub
parent 772a04851c
commit f97fc769df
32 changed files with 580 additions and 1512 deletions
+10 -35
View File
@@ -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
*/
+1 -1
View File
@@ -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;
}
+1 -1
View File
@@ -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];
}
+1 -4
View File
@@ -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() {
-1
View File
@@ -1,5 +1,4 @@
//
// Generated By: dol2asm
// Translation Unit: d/s/d_s_name
//
+191 -488
View File
@@ -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;
//
// External References:
//
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;
#include "rel/d/a/d_a_ykgr/d_a_ykgr.h"
//
// Declarations:
//
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*);
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 */