summaryrefslogtreecommitdiff
path: root/include/d
diff options
context:
space:
mode:
authorTakaRikka <38417346+TakaRikka@users.noreply.github.com>2026-03-01 13:19:48 -0800
committerGitHub <noreply@github.com>2026-03-01 13:19:48 -0800
commit6e149819e13b1f70ecbf8a4c66b030c17ffed2bb (patch)
treec0891f81261457accd576ac633c1ceeff4206c67 /include/d
parent6a48380461bc9baabe1706ba57ca0cedfa2d0c51 (diff)
d_s_logo / d_s_play debug work, d_a_kago cleanup, misc cleanup (#3116)
* d_a_kago cleanup * d_s_logo wii/shield work * d_s_logo / d_s_play debug work * fix missing profile class sizeof's * fix phase->id values * build fixes * fix dCamera_c and camera profile
Diffstat (limited to 'include/d')
-rw-r--r--include/d/actor/d_a_grass.h2
-rw-r--r--include/d/actor/d_a_kago.h110
-rw-r--r--include/d/d_bg_s.h2
-rw-r--r--include/d/d_camera.h3
-rw-r--r--include/d/d_com_inf_game.h45
-rw-r--r--include/d/d_demo.h1
-rw-r--r--include/d/d_eye_hl.h4
-rw-r--r--include/d/d_jpreviewer.h4
-rw-r--r--include/d/d_particle.h5
-rw-r--r--include/d/d_path.h7
-rw-r--r--include/d/d_resorce.h9
-rw-r--r--include/d/d_s_logo.h114
-rw-r--r--include/d/d_s_menu.h2
-rw-r--r--include/d/d_s_play.h25
-rw-r--r--include/d/d_s_play_env.h5
-rw-r--r--include/d/d_save_HIO.h3
-rw-r--r--include/d/d_stage.h14
17 files changed, 263 insertions, 92 deletions
diff --git a/include/d/actor/d_a_grass.h b/include/d/actor/d_a_grass.h
index 549a067eba..4b07bea1d5 100644
--- a/include/d/actor/d_a_grass.h
+++ b/include/d/actor/d_a_grass.h
@@ -44,6 +44,8 @@ public:
static daGrass_c* m_myObj;
static dGrass_packet_c* m_grass;
static dFlower_packet_c* m_flower;
+
+ /* 0x568 */ u8 unk_0x568[0x570 - 0x568];
};
namespace daGrass_prm {
diff --git a/include/d/actor/d_a_kago.h b/include/d/actor/d_a_kago.h
index a84d049ad2..90de3b74bf 100644
--- a/include/d/actor/d_a_kago.h
+++ b/include/d/actor/d_a_kago.h
@@ -18,6 +18,20 @@
*/
class daKago_c : public fopAc_ac_c {
public:
+ enum daKago_Action_e {
+ ACTION_FLY_e,
+ ACTION_STAGGER_e,
+ ACTION_EVENT_e,
+ ACTION_PERCH_e,
+ ACTION_WAIT_e,
+ ACTION_ATTACK_e,
+ ACTION_EVENT2_e,
+ ACTION_PERCH2_e,
+ ACTION_LANDING_e,
+ ACTION_DEMO_FLY_e,
+ ACTION_DEMO_FLY2_e,
+ };
+
int getBckName(int);
void setBck(int, u8, f32, f32);
bool checkBck(int);
@@ -93,14 +107,14 @@ public:
void setEvent() {
mIsFlying = false;
- mCurrentAction = 2;
- field_0x744 = 0;
+ mAction = ACTION_EVENT_e;
+ mMode = 0;
}
void setEvent2() {
mIsFlying = false;
- mCurrentAction = 6;
- field_0x744 = 0;
+ mAction = ACTION_EVENT2_e;
+ mMode = 0;
}
void setKagoPath(u8 i_pathNo) {
@@ -110,36 +124,36 @@ public:
}
void onWaterFall() {
- field_0x6ea = 1;
+ mIsWaterfall = TRUE;
}
bool isAttack() {
- return field_0x6dd != 0;
+ return mIsAttack != 0;
}
MtxP getLegR3Mtx() { return mLegR3Mtx; }
- MtxP getMidnaLocaterMtx() { return mpMorf->getModel()->getAnmMtx(4); }
+ MtxP getMidnaLocaterMtx() { return mAnm_p->getModel()->getAnmMtx(4); }
s8 getPathDir() { return mPathDir; }
u8 isFlying() { return mIsFlying; }
fopAc_ac_c* getLockActor() { return mpLockActor; }
void setLockActor(fopAc_ac_c* actor) { mpLockActor = actor; }
void setEatYm() { field_0x6d8 |= (u8) 4; }
- MtxP getMouthMtx() { return mpMorf->getModel()->getAnmMtx(7); }
+ MtxP getMouthMtx() { return mAnm_p->getModel()->getAnmMtx(7); }
private:
/* 0x568 */ request_of_phase_process_class mPhase;
- /* 0x570 */ mDoExt_McaMorfSO* mpMorf;
+ /* 0x570 */ mDoExt_McaMorfSO* mAnm_p;
/* 0x574 */ Z2CreatureEnemy mSound;
/* 0x618 */ fopAc_ac_c* mpLockActor;
/* 0x61C */ fpc_ProcID mBalloon2DId;
/* 0x620 */ Mtx mLegR3Mtx;
- /* 0x650 */ cXyz field_0x650[3];
+ /* 0x650 */ cXyz mWallHitEffPos[3];
/* 0x674 */ cXyz field_0x674;
/* 0x680 */ cXyz field_0x680;
- /* 0x68C */ cXyz field_0x68c;
- /* 0x698 */ cXyz field_0x698;
+ /* 0x68C */ cXyz mDemoCamCenter;
+ /* 0x698 */ cXyz mDemoCamEye;
/* 0x6A4 */ cXyz field_0x6a4;
- /* 0x6B0 */ cXyz field_0x6b0;
+ /* 0x6B0 */ cXyz mPrevCamEye;
/* 0x6BC */ s16 field_0x6bc;
/* 0x6BE */ csXyz field_0x6be;
/* 0x6C4 */ f32 field_0x6c4;
@@ -147,12 +161,12 @@ private:
/* 0x6CA */ s16 field_0x6ca;
/* 0x6CC */ f32 field_0x6cc;
/* 0x6D0 */ f32 field_0x6d0;
- /* 0x6D4 */ f32 field_0x6d4;
+ /* 0x6D4 */ f32 mDemoCamFovy;
/* 0x6D8 */ u8 field_0x6d8;
/* 0x6D9 */ u8 field_0x6d9;
/* 0x6DA */ s16 field_0x6da;
/* 0x6DC */ u8 field_0x6dc;
- /* 0x6DD */ u8 field_0x6dd;
+ /* 0x6DD */ u8 mIsAttack;
/* 0x6DE */ u8 field_0x6de;
/* 0x6DF */ u8 field_0x6df;
/* 0x6E0 */ u8 field_0x6e0;
@@ -162,18 +176,18 @@ private:
/* 0x6E4 */ u8 field_0x6e4;
/* 0x6E5 */ u8 field_0x6e5;
/* 0x6E6 */ u8 field_0x6e6;
- /* 0x6E7 */ u8 field_0x6e7;
+ /* 0x6E7 */ u8 mType;
/* 0x6E8 */ u8 field_0x6e8;
/* 0x6E8 */ u8 field_0x6e9;
- /* 0x6EA */ u8 field_0x6ea;
- /* 0x6EB */ u8 field_0x6eb;
+ /* 0x6EA */ u8 mIsWaterfall;
+ /* 0x6EB */ u8 mBalloonMenuMode;
/* 0x6EC */ u8 field_0x6ec[0x6ed - 0x6ec];
- /* 0x6ED */ u8 field_0x6ed;
- /* 0x6F0 */ f32 field_0x6f0;
- /* 0x6F4 */ f32 field_0x6f4;
- /* 0x6F8 */ f32 field_0x6f8;
+ /* 0x6ED */ u8 unk_0x6ed;
+ /* 0x6F0 */ f32 mStickX;
+ /* 0x6F4 */ f32 mStickY;
+ /* 0x6F8 */ f32 mFlySpeed;
/* 0x6FC */ f32 field_0x6fc;
- /* 0x700 */ f32 field_0x700;
+ /* 0x700 */ f32 mGroundFlyHeight;
/* 0x704 */ f32 mGroundHeight;
/* 0x708 */ f32 mRoofHeight;
/* 0x70C */ f32 field_0x70c;
@@ -181,32 +195,32 @@ private:
/* 0x712 */ s16 field_0x712;
/* 0x714 */ s16 field_0x714;
/* 0x716 */ s16 field_0x716;
- /* 0x718 */ s16 field_0x718;
- /* 0x71A */ s16 field_0x71a;
- /* 0x71C */ s32 field_0x71c;
- /* 0x720 */ s32 field_0x720;
+ /* 0x718 */ s16 mHeadRotZ;
+ /* 0x71A */ s16 mHeadRotY;
+ /* 0x71C */ int mWaterSplashTimer;
+ /* 0x720 */ int mWallHitInvulnTimer;
/* 0x724 */ u8 field_0x724[0x728 - 0x724];
- /* 0x728 */ s32 field_0x728;
- /* 0x72C */ s32 field_0x72c;
- /* 0x730 */ s32 mDashCooldownTime;
- /* 0x734 */ s32 mDashTime;
- /* 0x738 */ s32 field_0x738;
- /* 0x73C */ s32 field_0x73c;
- /* 0x740 */ s32 mCurrentAction;
- /* 0x744 */ s32 field_0x744;
- /* 0x748 */ s32 field_0x748;
- /* 0x74C */ s32 field_0x74c;
- /* 0x750 */ s32 field_0x750;
- /* 0x754 */ s32 field_0x754;
- /* 0x758 */ s32 field_0x758;
- /* 0x75C */ char* field_0x75c;
- /* 0x760 */ char* field_0x760;
- /* 0x764 */ s32 field_0x764;
+ /* 0x728 */ int field_0x728;
+ /* 0x72C */ int field_0x72c;
+ /* 0x730 */ int mDashCooldownTime;
+ /* 0x734 */ int mDashTime;
+ /* 0x738 */ int mGndSpecialCode;
+ /* 0x73C */ int mSceneType;
+ /* 0x740 */ int mAction;
+ /* 0x744 */ int mMode;
+ /* 0x748 */ int mDemoMode;
+ /* 0x74C */ int field_0x74c;
+ /* 0x750 */ int field_0x750;
+ /* 0x754 */ int field_0x754;
+ /* 0x758 */ int field_0x758;
+ /* 0x75C */ char* mArcName;
+ /* 0x760 */ char* mDemoName;
+ /* 0x764 */ u32 mShadowId;
/* 0x768 */ dPath* mpPath1;
/* 0x76C */ dPath* mpPath2;
- /* 0x770 */ s8 mPathIdx;
+ /* 0x770 */ s8 mPathCurrentPointNo;
/* 0x771 */ s8 field_0x771;
- /* 0x772 */ s8 mPathIdxOffset;
+ /* 0x772 */ s8 mPathStep;
/* 0x773 */ s8 mPathDir;
/* 0x774 */ u8 field_0x774[0x778 - 0x774];
/* 0x778 */ dBgS_AcchCir mAcchCir;
@@ -220,9 +234,9 @@ private:
/* 0xB38 */ u32 field_0xb38;
/* 0xB3C */ u32 field_0xb3c;
/* 0xB40 */ u32 field_0xb40;
- /* 0xB44 */ u32 field_0xb44[3];
- /* 0xB50 */ u32 field_0xb50;
- /* 0xB54 */ u8 field_0xb54;
+ /* 0xB44 */ u32 mSibukiEmitterIDs[3];
+ /* 0xB50 */ u32 mDashSibukiEmitterID;
+ /* 0xB54 */ u8 mIsHioSet;
/* 0xB58 */ dMsgFlow_c mMsgFlow;
};
diff --git a/include/d/d_bg_s.h b/include/d/d_bg_s.h
index c0804bd07c..537748470c 100644
--- a/include/d/d_bg_s.h
+++ b/include/d/d_bg_s.h
@@ -195,6 +195,8 @@ public:
void ChkDeleteActorRegist(fopAc_ac_c*);
+ void Draw();
+
#if DEBUG
/* 0x1404 */ u8 field_0x1404[0x1408 - 0x1404];
/* 0x1408 */ dBgS_HIO m_hio;
diff --git a/include/d/d_camera.h b/include/d/d_camera.h
index c49cce155e..f7a7132538 100644
--- a/include/d/d_camera.h
+++ b/include/d/d_camera.h
@@ -1367,8 +1367,7 @@ public:
/* 0x970 */ dCamSetup_c mCamSetup;
/* 0xAEC */ dCamParam_c mCamParam;
/* 0xB0C */ u8 field_0xb0c;
- /* 0xB0D */ u8 field_0xb0d[0xd58 - 0xb0d];
-}; // Size: 0xD58
+}; // Size: 0xB10
dCamera_c* dCam_getBody();
camera_class* dCam_getCamera();
diff --git a/include/d/d_com_inf_game.h b/include/d/d_com_inf_game.h
index 20101bc074..d8556e2fde 100644
--- a/include/d/d_com_inf_game.h
+++ b/include/d/d_com_inf_game.h
@@ -952,7 +952,7 @@ public:
dComIfG_inf_c() { this->ct(); }
~dComIfG_inf_c() {}
void ct();
- void createBaseCsr();
+ static void createBaseCsr();
#if PLATFORM_WII || VERSION == VERSION_SHIELD_DEBUG
class baseCsr_c : public mDoGph_gInf_c::csr_c {
@@ -1022,7 +1022,9 @@ public:
/* 0x1DE09 */ u8 field_0x1de09;
/* 0x1DE0A */ u8 field_0x1de0a;
/* 0x1DE0B */ u8 mIsDebugMode;
- /* 0x1DE0C */ u8 field_0x1de0c;
+ #if DEBUG
+ /* 0x1DE0C */ OSStopwatch mStopwatch;
+ #endif
static __d_timer_info_c dComIfG_mTimerInfo;
#if PLATFORM_WII || VERSION == VERSION_SHIELD_DEBUG
@@ -1174,6 +1176,7 @@ int dComIfG_TimerEnd(int i_mode, int param_1);
int dComIfG_TimerDeleteCheck(int);
int dComIfG_TimerDeleteRequest(int i_mode);
int dComLbG_PhaseHandler(request_of_phase_process_class*, request_of_phase_process_fn*, void*);
+BOOL dComIfG_isSceneResetButton();
int dComIfGd_setSimpleShadow(cXyz* i_pos, f32 param_1, f32 param_2, cBgS_PolyInfo& param_3, s16 i_angle,
f32 param_5, _GXTexObj* i_tex);
@@ -3262,6 +3265,22 @@ inline JPABaseEmitter* dComIfGp_particle_setColor(u16 param_0, const cXyz* i_pos
NULL, NULL, NULL, -1, NULL);
}
+inline u32 dComIfGp_particle_getHeapSize() {
+ return g_dComIfG_gameInfo.play.getParticle()->getHeapSize();
+}
+
+inline u32 dComIfGp_particle_getSceneHeapSize() {
+ return g_dComIfG_gameInfo.play.getParticle()->getSceneHeapSize();
+}
+
+inline int dComIfGp_particle_getEmitterNum() {
+ return g_dComIfG_gameInfo.play.getParticle()->getEmitterNum();
+}
+
+inline int dComIfGp_particle_getParticleNum() {
+ return g_dComIfG_gameInfo.play.getParticle()->getParticleNum();
+}
+
inline dSmplMdl_draw_c* dComIfGp_getSimpleModel() {
return g_dComIfG_gameInfo.play.getSimpleModel();
}
@@ -4369,6 +4388,28 @@ inline u32 dComIfG_getTrigB(u32 i_padNo) {
return mDoCPd_c::getTrig(i_padNo) & PAD_BUTTON_B;
}
+inline u32 dComIfG_getObjectAllSize() {
+ return g_dComIfG_gameInfo.mResControl.getObjectAllSize();
+}
+
+inline u32 dComIfG_getStageAllSize() {
+ return g_dComIfG_gameInfo.mResControl.getStageAllSize();
+}
+
+inline u32 dComIfG_getObjectSize(const char* i_arcName) {
+ return g_dComIfG_gameInfo.mResControl.getObjectSize(i_arcName);
+}
+
+inline u32 dComIfG_getStageSize(const char* i_arcName) {
+ return g_dComIfG_gameInfo.mResControl.getStageSize(i_arcName);
+}
+
+#if DEBUG
+inline void dComIfG_initStopwatch() {
+ OSInitStopwatch(&g_dComIfG_gameInfo.mStopwatch, "dComIfG");
+}
+#endif
+
inline int dComIfGd_setRealShadow(u32 param_0, s8 param_1, J3DModel* param_2, cXyz* param_3,
f32 param_4, f32 param_5, dKy_tevstr_c* param_6) {
return g_dComIfG_gameInfo.drawlist.setRealShadow(param_0, param_1, param_2, param_3, param_4,
diff --git a/include/d/d_demo.h b/include/d/d_demo.h
index 73c6f24e42..45e99a85d9 100644
--- a/include/d/d_demo.h
+++ b/include/d/d_demo.h
@@ -387,6 +387,7 @@ public:
static s16 getBranchId() { return m_branchId; }
static u16 getBranchNum() { return m_branchNum; }
static jmessage_tControl* getMesgControl() { return m_mesgControl; }
+ static dDemo_system_c* getSystem() { return m_system; }
static void setBranchNum(u16 num) {
m_branchNum = num;
diff --git a/include/d/d_eye_hl.h b/include/d/d_eye_hl.h
index d174387806..382938c5a5 100644
--- a/include/d/d_eye_hl.h
+++ b/include/d/d_eye_hl.h
@@ -13,6 +13,10 @@ public:
static void entry(dEyeHL_c*);
static void remove(dEyeHL_c*);
+ static void create() {
+ JUT_ASSERT(51, m_obj == NULL);
+ }
+
static dEyeHL_c* m_obj;
};
diff --git a/include/d/d_jpreviewer.h b/include/d/d_jpreviewer.h
index 9971fa6674..b3b9776de9 100644
--- a/include/d/d_jpreviewer.h
+++ b/include/d/d_jpreviewer.h
@@ -26,8 +26,8 @@ public:
void show3D(Mtx);
void show2D();
- void create(JStudio::TControl* pControl, const JUTGamePad& pad);
- void remove();
+ static void create(JStudio::TControl* pControl, const JUTGamePad& pad);
+ static void remove();
void update();
static dJprev_c* get() { return m_myObj; }
diff --git a/include/d/d_particle.h b/include/d/d_particle.h
index ab8a3be574..5b5d8db634 100644
--- a/include/d/d_particle.h
+++ b/include/d/d_particle.h
@@ -7,6 +7,7 @@
#include "JSystem/JParticle/JPAParticle.h"
#include "d/d_particle_name.h"
#include "d/d_kankyo_tev_str.h"
+#include "JSystem/JKernel/JKRSolidHeap.h"
void dPa_cleanupGX();
@@ -427,6 +428,9 @@ public:
JKRSolidHeap* getSceneHeap() { return mSceneHeap; }
void* getSceneRes() { return m_sceneRes; }
+ u32 getHeapSize() { return mHeap->getTotalFreeSize(); }
+ u32 getSceneHeapSize() { return mSceneHeap->getTotalFreeSize(); }
+
void levelAllForceOnEventMove() { field_0x210.allForceOnEventMove(); }
void levelExecute(u32 param_0) {
@@ -453,6 +457,7 @@ public:
static JPAEmitterManager* getEmitterManager() { return mEmitterMng; }
int getEmitterNum() { return mEmitterMng->getEmitterNumber(); };
+ int getParticleNum() { return mEmitterMng->getParticleNumber(); }
static dPa_light8PcallBack* getLight8PcallBack() {
return &mLight8PcallBack;
diff --git a/include/d/d_path.h b/include/d/d_path.h
index 7a4e6576ac..5ef65cfaef 100644
--- a/include/d/d_path.h
+++ b/include/d/d_path.h
@@ -25,6 +25,13 @@ struct dPath {
/* 0x8 */ dPnt* m_points;
};
+#if VERSION == VERSION_SHIELD_DEBUG
+void dPath_Move();
+void dPath_Draw();
+void dPath_Dt();
+void dPath_Ct();
+#endif
+
inline BOOL dPath_ChkClose(const dPath* i_path) { return i_path->m_closed & 1; }
dPath* dPath_GetRoomPath(int path_index, int room_no);
diff --git a/include/d/d_resorce.h b/include/d/d_resorce.h
index 000146822b..31d028a082 100644
--- a/include/d/d_resorce.h
+++ b/include/d/d_resorce.h
@@ -39,6 +39,7 @@ public:
char* getArchiveName() { return mArchiveName; }
mDoDvdThd_mountArchive_c* getDMCommand() { return mDMCommand; }
JKRArchive* getArchive() { return mArchive; }
+ JKRSolidHeap* getDataHeap() { return mDataHeap; }
u32 incCount() { return ++mCount; }
u32 decCount() { return --mCount; }
@@ -138,6 +139,14 @@ public:
return getResInfo(i_arcName, mStageInfo, ARRAY_SIZEU(mStageInfo));
}
+ u32 getObjectSize(const char* i_arcName) {
+ return getSize(i_arcName, mObjectInfo, ARRAY_SIZEU(mObjectInfo));
+ }
+
+ u32 getStageSize(const char* i_arcName) {
+ return getSize(i_arcName, mStageInfo, ARRAY_SIZEU(mStageInfo));
+ }
+
/* 0x0000 */ dRes_info_c mObjectInfo[128];
/* 0x1200 */ dRes_info_c mStageInfo[64];
}; // Size: 0x1B00
diff --git a/include/d/d_s_logo.h b/include/d/d_s_logo.h
index 0a611b83c3..56d10eef82 100644
--- a/include/d/d_s_logo.h
+++ b/include/d/d_s_logo.h
@@ -2,6 +2,7 @@
#define D_S_D_S_LOGO_H
#include "f_op/f_op_scene.h"
+#include "m_Do/m_Do_dvd_thread.h"
class JKRExpHeap;
class JKRHeap;
@@ -11,33 +12,41 @@ class mDoDvdThd_mountXArchive_c;
class mDoDvdThd_mountArchive_c;
class mDoDvdThd_toMainRam_c;
-class dLog_HIO_c {
-public:
- dLog_HIO_c();
- virtual ~dLog_HIO_c();
-
- u8 field_0x4[0x8 - 0x4];
-}; // Size: 0x8
-
class dScnLogo_c : public scene_class {
public:
enum {
- /* 0x0 */ EXEC_WARNING_IN,
- /* 0x1 */ EXEC_WARNING_DISP,
- /* 0x2 */ EXEC_WARNING_OUT,
- /* 0x3 */ EXEC_NINTENDO_IN,
- /* 0x4 */ EXEC_NINTENDO_OUT,
- /* 0x5 */ EXEC_DOLBY_IN,
- /* 0x6 */ EXEC_DOLBY_OUT,
- /* 0x7 */ EXEC_DOLBY_OUT2,
- /* 0x8 */ EXEC_PROG_IN,
- /* 0x9 */ EXEC_PROG_SEL,
- /* 0xA */ EXEC_PROG_OUT,
- /* 0xB */ EXEC_PROG_SET,
- /* 0xC */ EXEC_PROG_SET2,
- /* 0xD */ EXEC_PROG_CHANGE,
- /* 0xE */ EXEC_DVD_WAIT,
- /* 0xF */ EXEC_SCENE_CHANGE,
+ /* 0 */ EXEC_WARNING_IN,
+ /* 1 */ EXEC_WARNING_DISP,
+ /* 2 */ EXEC_WARNING_OUT,
+ /* 3 */ EXEC_NINTENDO_IN,
+ /* 4 */ EXEC_NINTENDO_OUT,
+ /* 5 */ EXEC_DOLBY_IN,
+ /* 6 */ EXEC_DOLBY_OUT,
+ /* 7 */ EXEC_DOLBY_OUT2,
+ /* 8 */ EXEC_PROG_IN,
+ /* 9 */ EXEC_PROG_SEL,
+ /* 10 */ EXEC_PROG_OUT,
+ /* 11 */ EXEC_PROG_SET,
+ /* 12 */ EXEC_PROG_SET2,
+ /* 13 */ EXEC_PROG_CHANGE,
+ /* 14 */ EXEC_DVD_WAIT,
+ /* 15 */ EXEC_SCENE_CHANGE,
+
+ #if PLATFORM_WII || PLATFORM_SHIELD
+ /* 16 */ EXEC_STRAP_IN,
+ /* 17 */ EXEC_STRAP_DISP,
+ /* 18 */ EXEC_STRAP_OUT,
+ /* 19 */ EXEC_STRAP_OUT2,
+ #endif
+
+ #if VERSION == VERSION_SHIELD
+ /* 20 */ EXEC_MOC_IN,
+ /* 21 */ EXEC_MOC_DISP,
+ /* 22 */ EXEC_MOC_OUT,
+ /* 23 */ EXEC_NVLOGO_IN,
+ /* 24 */ EXEC_NVLOGO_DISP,
+ /* 25 */ EXEC_NVLOGO_OUT,
+ #endif
};
dScnLogo_c() {}
@@ -64,30 +73,66 @@ public:
void nextSceneChange();
~dScnLogo_c();
int create();
- void logoInitGC();
void dvdDataLoad();
void setProgressiveMode(u8);
u8 getProgressiveMode();
bool isProgressiveMode();
void setRenderMode();
- #if VERSION == VERSION_GCN_PAL
+ #if VERSION == VERSION_GCN_PAL || PLATFORM_WII || PLATFORM_SHIELD
u8 getPalLanguage();
#endif
- #if DEBUG
+ #if PLATFORM_WII || PLATFORM_SHIELD
+ void logoInitWii();
+ void strapInDraw();
+ void strapDispDraw();
+ void strapOutDraw();
+ void strapOut2Draw();
+ #else
+ void logoInitGC();
+ #endif
+
+ #if VERSION == VERSION_SHIELD
+ void mocInDraw();
+ void mocDispDraw();
+ void mocOutDraw();
+ void nvLogoInDraw();
+ void nvLogoDispDraw();
+ void nvLogoOutDraw();
+ #endif
+
+ mDoDvdThd_mountXArchive_c* aramMount(const char* i_arcPath, JKRHeap* i_heap) {
+ return mDoDvdThd_mountXArchive_c::create(i_arcPath, 0, JKRArchive::MOUNT_ARAM, i_heap);
+ }
+
+ mDoDvdThd_mountXArchive_c* onMemMount(const char* i_arcPath) {
+ return mDoDvdThd_mountXArchive_c::create(i_arcPath, 0, JKRArchive::MOUNT_MEM, NULL);
+ }
+
static void onOpeningCut() {
+ #if DEBUG
mOpeningCut = true;
+ #endif
+ }
+
+ static u8 isOpeningCut() {
+ #if DEBUG
+ return mOpeningCut;
+ #else
+ return 0;
+ #endif
}
+ #if DEBUG
static u8 mOpeningCut;
#endif
public:
/* 0x1C4 */ request_of_phase_process_class field_0x1c4;
/* 0x1CC */ mDoDvdThd_toMainRam_c* sceneCommand;
- /* 0x1D0 */ JKRExpHeap* field_0x1d0;
- /* 0x1D4 */ JKRExpHeap* field_0x1d4;
+ /* 0x1D0 */ JKRExpHeap* mLogoHeap;
+ /* 0x1D4 */ JKRExpHeap* mLogo01Heap;
/* 0x1D8 */ JKRHeap* mpHeap;
/* 0x1DC */ dDlst_2D_c* mWarning;
/* 0x1E0 */ dDlst_2D_c* mWarningStart;
@@ -97,6 +142,13 @@ public:
/* 0x1F0 */ dDlst_2D_c* mProgressiveYes;
/* 0x1F4 */ dDlst_2D_c* mProgressiveNo;
/* 0x1F8 */ dDlst_2D_c* mProgressiveSel;
+#if PLATFORM_WII || PLATFORM_SHIELD
+ /* 0x1FC */ dDlst_2D_c* mStrapImg;
+#endif
+#if VERSION == VERSION_SHIELD
+ /* 0x200 */ dDlst_2D_c* mNvLogo;
+ /* 0x204 */ dDlst_2D_c* mMocImg;
+#endif
#if VERSION == VERSION_GCN_PAL
/* 0x1FC */ mDoDvdThd_mountArchive_c* mpPalLogoResCommand;
#endif
@@ -114,6 +166,10 @@ public:
/* 0x214 */ u16 field_0x214;
/* 0x218 */ u32 field_0x218;
/* 0x21C */ void* dummyGameAlloc;
+#if PLATFORM_WII || VERSION == VERSION_SHIELD
+ /* 0x224 */ mDoDvdThd_toMainRam_c* mpHomeBtnCommand;
+ /* 0x228 */ int mHomeBtnRegion;
+#endif
/* 0x220 */ mDoDvdThd_mountXArchive_c* mpField0Command;
/* 0x224 */ mDoDvdThd_mountXArchive_c* mpAlAnmCommand;
/* 0x228 */ u8 field_0x228[4];
diff --git a/include/d/d_s_menu.h b/include/d/d_s_menu.h
index a544c65576..d2e0e9bde0 100644
--- a/include/d/d_s_menu.h
+++ b/include/d/d_s_menu.h
@@ -83,6 +83,8 @@ public:
extern int g_playerKind;
extern int g_debugHpMode;
extern int g_horsePosInit;
+
+u8 dSm_read_stageset(u8* i_data);
#else
class dScnMenu_c {};
#endif
diff --git a/include/d/d_s_play.h b/include/d/d_s_play.h
index 7181cf0b60..45b60220b0 100644
--- a/include/d/d_s_play.h
+++ b/include/d/d_s_play.h
@@ -9,9 +9,15 @@
class mDoDvdThd_mountXArchive_c;
class mDoDvdThd_toMainRam_c;
-class dScnPly_reg_childHIO_c {
+class dScnPly_reg_childHIO_c : public JORReflexible {
public:
- /* 0x00 */ void* vtable;
+#if ENABLE_REGHIO
+ dScnPly_reg_childHIO_c();
+ virtual ~dScnPly_reg_childHIO_c() {}
+
+ void genMessage(JORMContext*);
+#endif
+
/* 0x04 */ f32 mFloatReg[30];
/* 0x7C */ s16 mShortReg[10];
};
@@ -37,9 +43,10 @@ public:
void genMessage(JORMContext*);
};
-class dScnPly_env_HIO_c {
+class dScnPly_env_HIO_c : public JORReflexible {
public:
virtual ~dScnPly_env_HIO_c() {}
+ void genMessage(JORMContext*);
/* 0x04 */ s8 field_0x4;
/* 0x08 */ dScnPly_env_otherHIO_c mOther;
@@ -79,6 +86,18 @@ public:
static s8 pauseTimer;
static s8 nextPauseTimer;
+ #if DEBUG
+ void onDebugPause() {
+ debugPause = TRUE;
+ }
+
+ void offDebugPause() {
+ debugPause = FALSE;
+ }
+
+ static u8 debugPause;
+ #endif
+
/* 0x1C4 */ request_of_phase_process_class field_0x1c4;
/* 0x1CC */ mDoDvdThd_toMainRam_c* sceneCommand;
/* 0x1D0 */ mDoDvdThd_mountXArchive_c* field_0x1d0;
diff --git a/include/d/d_s_play_env.h b/include/d/d_s_play_env.h
index 79eed8a63d..d2b23d9f8c 100644
--- a/include/d/d_s_play_env.h
+++ b/include/d/d_s_play_env.h
@@ -6,7 +6,9 @@ public:
dScnPly_env_otherHIO_c();
virtual ~dScnPly_env_otherHIO_c() {}
+ void listenPropertyEvent(const JORPropertyEvent*);
void genMessage(JORMContext*);
+
void addSetEmitterID(u16 param_0) {
#if DEBUG
field_0x1c[field_0x4f++] = param_0;
@@ -14,6 +16,8 @@ public:
#endif
}
+ void printParticle();
+
#if DEBUG
/* 0x04 */ s8 field_0x04;
#endif
@@ -53,6 +57,7 @@ public:
dScnPly_env_debugHIO_c();
virtual ~dScnPly_env_debugHIO_c() {}
+ void listenPropertyEvent(const JORPropertyEvent*);
void genMessage(JORMContext*);
/* 0x04 */ u8 field_0x4;
diff --git a/include/d/d_save_HIO.h b/include/d/d_save_HIO.h
index cc2f8af706..e149f7fcb9 100644
--- a/include/d/d_save_HIO.h
+++ b/include/d/d_save_HIO.h
@@ -209,11 +209,12 @@ private:
/* 0x1A0 */ dSvBit_childItOneZoneHIO_c mOneZoneSave;
};
-class dSvBit_HIO_c {
+class dSvBit_HIO_c : public JORReflexible {
public:
void init();
virtual ~dSvBit_HIO_c() {}
+ void genMessage(JORMContext*);
/* 0x004 */ s8 field_0x4;
/* 0x008 */ dSvBit_childSwitchHIO_c mSwitch;
diff --git a/include/d/d_stage.h b/include/d/d_stage.h
index 6f558f87c0..a4b72182bb 100644
--- a/include/d/d_stage.h
+++ b/include/d/d_stage.h
@@ -1062,7 +1062,7 @@ public:
/* 0x3F7 */ s8 mZoneNo;
/* 0x3F8 */ s8 mMemBlockID;
/* 0x3F9 */ u8 mRegionNo;
- /* 0x3FC */ int mProcID;
+ /* 0x3FC */ fpc_ProcID mProcID;
/* 0x400 */ dBgW_Base* mpBgW;
int getZoneNo() const { return mZoneNo; }
@@ -1118,8 +1118,8 @@ public:
static s8 getRoomReadId() { return mRoomReadId; }
static void setRoomReadId(s8 id) { mRoomReadId = id; }
- static u32 getProcID() { return mProcID; }
- static void setProcID(u32 id) { mProcID = id; }
+ static fpc_ProcID getProcID() { return mProcID; }
+ static void setProcID(fpc_ProcID id) { mProcID = id; }
static int getStayNo() { return mStayNo; }
static int getNextStayNo() { return mNextStayNo; }
static BOOL GetTimePass() { return m_time_pass; }
@@ -1193,7 +1193,7 @@ public:
JUT_ASSERT(2770, 0 <= i_roomNo && i_roomNo < 64);
mStatus[i_roomNo].mProcID = i_id;
}
- static int getStatusProcID(int i_roomNo) {
+ static fpc_ProcID getStatusProcID(int i_roomNo) {
JUT_ASSERT(2774, 0 <= i_roomNo && i_roomNo < 64);
return mStatus[i_roomNo].mProcID;
}
@@ -1223,7 +1223,7 @@ public:
static char mArcBank[32][10];
static dStage_roomStatus_c mStatus[0x40];
static char mDemoArcName[10];
- static u32 mProcID;
+ static fpc_ProcID mProcID;
static nameData* mArcBankName;
static bankData* mArcBankData;
static roomDzs_c m_roomDzs;
@@ -1398,6 +1398,10 @@ dStage_KeepDoorInfo* dStage_GetKeepDoorInfo();
dStage_KeepDoorInfo* dStage_GetRoomKeepDoorInfo();
void dStage_dt_c_fieldMapLoader(void* i_data, dStage_dt_c* i_stage);
+#if DEBUG
+void dStage_DebugDisp();
+#endif
+
#define dStage_NAME_LENGTH 8
const char* dStage_getName(s16 procName, s8 argument);