summaryrefslogtreecommitdiff
path: root/include/d
diff options
context:
space:
mode:
authorTakaRikka <38417346+TakaRikka@users.noreply.github.com>2021-06-12 15:22:36 -0700
committerGitHub <noreply@github.com>2021-06-12 18:22:36 -0400
commit4448c08ac082e8f569f2b4c0dd9e5f4d91dec093 (patch)
tree8778c90e82d9b79e70ff998082a83ab8391edb68 /include/d
parent5be309a186d35e952080d73cc9584a8345d9e029 (diff)
move / fix bunch of stuff (#133)
* fix some class structures / d_event wip * d_event wip * move gamepad stuff * move m_Do_main * move d_bomb / partial m_Do_reset * format * remove asm * add Z2SoundID enum * move some Z2 classes * fix * move more Z2 stuff * fix fopAc_ac_c more
Diffstat (limited to 'include/d')
-rw-r--r--include/d/a/d_a_alink.h4
-rw-r--r--include/d/a/d_a_player.h5
-rw-r--r--include/d/bg/d_bg_s_lin_chk.h5
-rw-r--r--include/d/com/d_com_inf_game.h28
-rw-r--r--include/d/d_attention.h164
-rw-r--r--include/d/d_bomb.h42
-rw-r--r--include/d/d_jnt_col.h2
-rw-r--r--include/d/event/d_event.h348
-rw-r--r--include/d/event/d_event_data.h128
-rw-r--r--include/d/event/d_event_manager.h132
-rw-r--r--include/d/kankyo/d_kankyo.h45
-rw-r--r--include/d/menu/d_menu_window.h169
-rw-r--r--include/d/meter/d_meter2_info.h30
-rw-r--r--include/d/particle/d_particle_copoly.h2
14 files changed, 624 insertions, 480 deletions
diff --git a/include/d/a/d_a_alink.h b/include/d/a/d_a_alink.h
index 8aee3e817e..45cbf2da37 100644
--- a/include/d/a/d_a_alink.h
+++ b/include/d/a/d_a_alink.h
@@ -2909,7 +2909,7 @@ public:
private:
/* 0x0000 */ fopAc_ac_c mActor;
- /* 0x0538 */ u8 field_0x538[0xD1C];
+ /* 0x0570 */ u8 field_0x570[0xCE4];
/* 0x1254 */ daPy_actorKeep_c mZeldaActorKeep;
};
@@ -2932,7 +2932,7 @@ public:
private:
/* 0x0000 */ fopAc_ac_c mActor;
- /* 0x0538 */ u8 field_0x538[0x35C];
+ /* 0x0570 */ u8 field_0x570[0x324];
/* 0x0894 */ u32 mStateFlg1;
/* 0x0898 */ u32 mEndResetStateFlg0;
};
diff --git a/include/d/a/d_a_player.h b/include/d/a/d_a_player.h
index deed7b2ec8..f48328e34c 100644
--- a/include/d/a/d_a_player.h
+++ b/include/d/a/d_a_player.h
@@ -126,9 +126,6 @@ private:
class daPy_py_c : public fopAc_ac_c {
public:
- /* 0x0538 */ u8 field_0x538[0x32];
- /* 0x056A */ u8 field_0x56a;
- /* 0x056B */ u8 field_0x56b[5];
/* 0x0570 */ int mNoResetFlg0;
/* 0x0574 */ int mNoResetFlg1;
/* 0x0578 */ int mNoResetFlg2;
@@ -390,7 +387,7 @@ public:
inline bool getSumouCameraMode() const {
bool sumouCameraMode = false;
- if (field_0x56a != 0 && field_0x56a < 0x26) {
+ if (field_0x560[0xA] != 0 && field_0x560[0xA] < 0x26) {
sumouCameraMode = true;
}
return sumouCameraMode;
diff --git a/include/d/bg/d_bg_s_lin_chk.h b/include/d/bg/d_bg_s_lin_chk.h
index 6edea1d3e6..33029a5acb 100644
--- a/include/d/bg/d_bg_s_lin_chk.h
+++ b/include/d/bg/d_bg_s_lin_chk.h
@@ -43,4 +43,9 @@ class dBgS_ObjLinChk : dBgS_LinChk {
/* 80077FB8 */ ~dBgS_ObjLinChk();
};
+class dBgS_BombLinChk : dBgS_LinChk {
+ /* 80078104 */ dBgS_BombLinChk();
+ /* 80078160 */ ~dBgS_BombLinChk();
+};
+
#endif /* D_BG_D_BG_S_LIN_CHK_H */
diff --git a/include/d/com/d_com_inf_game.h b/include/d/com/d_com_inf_game.h
index ea562093b8..df531283ce 100644
--- a/include/d/com/d_com_inf_game.h
+++ b/include/d/com/d_com_inf_game.h
@@ -137,9 +137,7 @@ public:
/* 0x03F8C */ dStage_roomControl_c* mRoomControl;
/* 0x03F90 */ dEvt_control_c mEvent;
/* 0x040C0 */ dEvent_manager_c mEvtManager;
- /* 0x0477C */ u8 field_0x477C[4];
/* 0x04780 */ dAttention_c mAttention;
- /* 0x04C88 */ u8 field_0x4c88[0x14];
/* 0x04C9C */ dVibration_c mVibration;
/* 0x04D2C */ u8 field_0x4d2c[4];
/* 0x04D30 */ JKRArchive* mFieldMapArchive2;
@@ -258,18 +256,18 @@ public:
/* 0x04F07 */ u8 mCStickStatusForce;
/* 0x04F08 */ u8 mSButtonStatusForce;
/* 0x04F09 */ u8 mZStatusForce;
- /* 0x04F0A */ u8 mRSetFlag; // related to RStatus
- /* 0x04F0B */ u8 mASetFlag; // related to AStatus
+ /* 0x04F0A */ u8 mRSetFlag;
+ /* 0x04F0B */ u8 mASetFlag;
/* 0x04F0C */ u8 field_0x4f0c;
- /* 0x04F0D */ u8 mNunSetFlag; // related to NunStatus
- /* 0x04F0E */ u8 mBottleSetFlag; // related to BottleStatus
- /* 0x04F0F */ u8 mRemoConSetFlag; // related to RemoConStatus
+ /* 0x04F0D */ u8 mNunSetFlag;
+ /* 0x04F0E */ u8 mBottleSetFlag;
+ /* 0x04F0F */ u8 mRemoConSetFlag;
/* 0x04F10 */ u8 field_0x4f10[2];
- /* 0x04F12 */ u8 mDoSetFlag; // related to DoStatus
- /* 0x04F13 */ u8 m3DSetFlag; // related to 3DStatus
- /* 0x04F14 */ u8 mCStickSetFlag; // related to CStickStatus
- /* 0x04F15 */ u8 mSButtonSetFlag; // related to SButtonStatus
- /* 0x04F16 */ u8 mZSetFlag; // related to ZStatus
+ /* 0x04F12 */ u8 mDoSetFlag;
+ /* 0x04F13 */ u8 m3DSetFlag;
+ /* 0x04F14 */ u8 mCStickSetFlag;
+ /* 0x04F15 */ u8 mSButtonSetFlag;
+ /* 0x04F16 */ u8 mZSetFlag;
/* 0x04F17 */ u8 mRSetFlagForce;
/* 0x04F18 */ u8 mASetFlagForce;
/* 0x04F19 */ u8 field_0x4f19;
@@ -288,14 +286,14 @@ public:
/* 0x04F27 */ u8 mXSetFlagForce;
/* 0x04F28 */ u8 mYStatus;
/* 0x04F29 */ u8 mYStatusForce;
- /* 0x04F2A */ u8 mYSetFlag; // related to YStatus
+ /* 0x04F2A */ u8 mYSetFlag;
/* 0x04F2B */ u8 mYSetFlagForce;
/* 0x04F2C */ u8 mNunZStatus;
- /* 0x04F2D */ u8 mNunZSetFlag; // related to NunZStatus
+ /* 0x04F2D */ u8 mNunZSetFlag;
/* 0x04F2E */ u8 field_0x4fc6; // related to NunZStatusForce
/* 0x04F2F */ u8 field_0x4fc7; // related to NunZStatusForce
/* 0x04F30 */ u8 mNunCStatus;
- /* 0x04F31 */ u8 mNunCSetFlag; // related to NunCStatus
+ /* 0x04F31 */ u8 mNunCSetFlag;
/* 0x04F32 */ u8 field_0x4fca; // related to NunCStatusForce
/* 0x04F33 */ u8 field_0x4fcb; // related to NunCStatusForce
/* 0x04F34 */ u8 mSelectItem[8];
diff --git a/include/d/d_attention.h b/include/d/d_attention.h
index 2690ea3a7e..3cc89e0a45 100644
--- a/include/d/d_attention.h
+++ b/include/d/d_attention.h
@@ -25,10 +25,10 @@ private:
class dAttCatch_c {
public:
- /* 8007398C */ void convPId(unsigned int);
- /* 800739BC */ void init();
- /* 800739DC */ void proc();
- /* 80073A08 */ void request(fopAc_ac_c*, u8, f32, f32, f32, s16, int);
+ void convPId(unsigned int);
+ void init();
+ void proc();
+ void request(fopAc_ac_c*, u8, f32, f32, f32, s16, int);
private:
void* field_0x0;
@@ -38,8 +38,9 @@ private:
u8 field_0xd;
u8 field_0xe;
u8 field_0xf;
- void* field_0x10;
-};
+ u32 field_0x10;
+ u8 mChangeItem;
+}; // Size = 0x14
class dAttParam_c {
public:
@@ -47,26 +48,29 @@ public:
/* 80070110 */ ~dAttParam_c();
private:
- u8 field_0x0;
- u8 field_0x1;
- u8 field_0x2;
- u8 field_0x3;
- u8 field_0x4;
- u8 field_0x5;
- u8 field_0x6;
- u8 field_0x7;
- u8 field_0x8;
- u8 field_0x9;
- u8 field_0xa;
- u8 field_0xb;
- u8 field_0xc;
- u8 field_0xd;
- u8 field_0xe;
- u8 field_0xf;
- u8 field_0x10;
- u8 field_0x11;
- u8 field_0x12;
-};
+ /* 0x00 */ void* vtable;
+ /* 0x04 */ u8 field_0x4;
+ /* 0x05 */ u8 field_0x5;
+ /* 0x06 */ u16 mFlag;
+ /* 0x08 */ float field_0x8;
+ /* 0x0C */ float field_0xc;
+ /* 0x10 */ float field_0x10;
+ /* 0x14 */ float field_0x14;
+ /* 0x18 */ float field_0x18;
+ /* 0x1C */ float field_0x1c;
+ /* 0x20 */ float field_0x20;
+ /* 0x24 */ float field_0x24;
+ /* 0x28 */ float field_0x28;
+ /* 0x2C */ float field_0x2c;
+ /* 0x30 */ float field_0x30;
+ /* 0x34 */ float field_0x34;
+ /* 0x38 */ u8 field_0x38;
+ /* 0x39 */ u8 field_0x39;
+ /* 0x3C */ float field_0x3c;
+ /* 0x40 */ float field_0x40;
+ /* 0x44 */ u32 field_0x44;
+ /* 0x48 */ u32 field_0x48;
+}; // Size = 0x4C
class dAttLook_c {
public:
@@ -79,7 +83,8 @@ private:
u32 field_0x0;
u32 field_0x4;
float field_0x8;
-};
+ u32 field_0xc;
+}; // Size = 0x10
#pragma pack(push, 1)
class dAttList_c {
@@ -96,7 +101,6 @@ private:
};
#pragma pack(pop)
-#pragma pack(push, 1)
class dAttDraw_c {
public:
/* 8003054C */ ~dAttDraw_c();
@@ -123,7 +127,7 @@ public:
/* 0x11C */ mDoExt_bpkAnm bpkAnm2;
/* 0x134 */ mDoExt_brkAnm brkAnm3;
/* 0x14C */ mDoExt_btkAnm btkAnm2;
- /* 0x164 */ u8 field_0x164[0xC];
+ /* 0x164 */ cXyz field_0x164;
/* 0x170 */ u8 field_0x170;
/* 0x171 */ u8 field_0x171;
/* 0x172 */ u8 field_0x172;
@@ -131,7 +135,6 @@ public:
/* 0x174 */ u8 field_0x174;
/* 0x175 */ u8 field_0x175;
};
-#pragma pack(pop)
class dAttDraw_CallBack_c {
public:
@@ -187,58 +190,53 @@ public:
static u32 chk_type_tbl;
static u32 chk_type_num;
-private:
- u8 field_0x0[4];
- u32 field_0x4;
- dAttDraw_CallBack_c dattdraw_callback;
- u32 field_0xc;
- u32 field_0x10;
- u8 field_0x14[8];
- cXyz field_0x1c;
- /* 0x028 */ dAttDraw_c attention_draw[2];
- int field_0x318;
- cXyz field_0x31c;
- u8 field_0x328[12];
- u32 field_0x334;
- /* 0x0338 */ dAttList_c attention_list1[8];
- int* field_0x3d8;
- int* field_0x3dc;
- /* 0x03E0 */ dAttList_c attention_list2[4];
- int* field_0x430;
- int field_0x434;
- /* 0x0438 */ dAttList_c attention_list3[4];
- int* field_0x488;
- int field_0x48c;
- dAttHint_c attention_hint;
- dAttCatch_c attention_catch;
- u8 field_0x4b0[4];
- dAttLook_c attention_look;
- u8 field_0x4c0;
- u8 field_0x4c1;
- u8 field_0x4c2;
- u8 field_0x4c3;
- int* field_0x4c4;
- u8 field_0x4c8;
- u8 field_0x4c9;
- u8 field_0x4ca;
- u8 field_0x4cb;
- u8 field_0x4cc;
- u8 field_0x4cd;
- u8 field_0x4ce;
- u8 field_0x4cf;
- /* 0x04D0 */ dAttParam_c attention_param;
- u8 field_0x4e3;
- u8 field_0x4e4;
- u8 field_0x4e5;
- int* field_0x4e6;
- u8 field_0x4ea;
- u8 field_0x4eb;
- u8 field_0x4ec;
- u8 field_0x4ed;
- u8 field_0x4ee;
- u8 field_0x4ef;
- u8 field_0x4f0[0x18];
- /* 0x0508 */ void* vtable;
-};
+public:
+ /* 0x000 */ fopAc_ac_c* field_0x0;
+ /* 0x004 */ u32 field_0x4;
+ /* 0x008 */ dAttDraw_CallBack_c dattdraw_callback;
+ /* 0x00C */ u32 field_0xc;
+ /* 0x010 */ u32 field_0x10;
+ /* 0x014 */ u8 field_0x14[4];
+ /* 0x018 */ JKRSolidHeap* heap;
+ /* 0x01C */ cXyz field_0x1c;
+ /* 0x028 */ dAttDraw_c draw[2];
+ /* 0x318 */ int field_0x318;
+ /* 0x31C */ cXyz field_0x31c;
+ /* 0x328 */ u8 field_0x328;
+ /* 0x329 */ u8 field_0x329;
+ /* 0x32A */ u8 field_0x32a;
+ /* 0x32B */ u8 field_0x32b;
+ /* 0x32C */ u8 field_0x32c;
+ /* 0x32D */ u8 field_0x32d;
+ /* 0x32E */ u8 field_0x32e;
+ /* 0x32F */ u8 field_0x32f;
+ /* 0x330 */ u8 field_0x330;
+ /* 0x331 */ u8 field_0x331;
+ /* 0x332 */ u8 field_0x332;
+ /* 0x333 */ u8 field_0x333;
+ /* 0x334 */ u32 mFlags;
+ /* 0x338 */ dAttList_c mLockOnList[8];
+ /* 0x3D8 */ int mLockonCount;
+ /* 0x3DC */ int field_0x3dc;
+ /* 0x3E0 */ dAttList_c mActionList[4];
+ /* 0x430 */ int mActionCount;
+ /* 0x434 */ int field_0x434;
+ /* 0x438 */ dAttList_c attention_list3[4];
+ /* 0x488 */ int mCheckObjectCount;
+ /* 0x48C */ int field_0x48c;
+ /* 0x490 */ dAttHint_c mZHintTarget;
+ /* 0x49C */ dAttCatch_c mCatghTarget;
+ /* 0x4B4 */ dAttLook_c mLookTarget;
+ /* 0x4C4 */ int field_0x4c4;
+ /* 0x4C8 */ u8 field_0x4c8;
+ /* 0x4C9 */ u8 field_0x4c9;
+ /* 0x4CA */ u8 field_0x4ca;
+ /* 0x4CB */ u8 field_0x4cb;
+ /* 0x4CC */ u8 field_0x4cc;
+ /* 0x4CD */ u8 field_0x4cd;
+ /* 0x4CE */ u8 field_0x4ce;
+ /* 0x4CF */ u8 field_0x4cf;
+ /* 0x4D0 */ dAttParam_c attention_param;
+}; // Size = 0x51C
#endif /* D_D_ATTENTION_H */
diff --git a/include/d/d_bomb.h b/include/d/d_bomb.h
index 07668ee3b0..b021b0a411 100644
--- a/include/d/d_bomb.h
+++ b/include/d/d_bomb.h
@@ -1,6 +1,46 @@
#ifndef D_D_BOMB_H
#define D_D_BOMB_H
-#include "dolphin/types.h"
+#include "Z2AudioLib/Z2SoundObject.h"
+#include "d/bg/d_bg_s_acch.h"
+#include "d/cc/d_cc_d.h"
+#include "d/kankyo/d_kankyo.h"
+#include "f_op/f_op_actor.h"
+
+class daNbomb_c {
+public:
+ enum daNbomb_FLG0 { WATER_BOMB = 16 };
+
+ u32 checkStateFlg0(daNbomb_FLG0 flag) const { return mStateFlg0 & flag; }
+ u32 checkWaterBomb() const { return checkStateFlg0(WATER_BOMB); }
+
+ /* 0x000 */ fopAc_ac_c mActor;
+ /* 0x570 */ u8 field_0x570[8];
+ /* 0x578 */ dBgS_Acch mAcch;
+ /* 0x750 */ dBgS_AcchCir mAcchCir;
+ /* 0x790 */ dCcD_Stts mStts;
+ /* 0x7CC */ dCcD_Sph mSph1;
+ /* 0x904 */ dCcD_Sph mSph2;
+ /* 0xA3C */ u8 field_0xa3c[0x64];
+ /* 0xAA0 */ dBgS_BombLinChk mLinChk;
+ /* 0xB10 */ cBgS_PolyInfo mPolyInfo;
+ /* 0xB20 */ Z2SoundObjSimple mSoundObj;
+ /* 0xB40 */ u8 field_0xb40[0xC];
+ /* 0xB4C */ u32 mStateFlg0;
+ /* 0xB50 */ u8 field_0xb50;
+ /* 0xB51 */ u8 field_0xb51[0x3];
+ /* 0xB54 */ u8 field_0xb54;
+ /* 0xB55 */ u8 field_0xb55[0xB];
+ /* 0xB60 */ LIGHT_INFLUENCE field_0xb60;
+ /* 0xB80 */ WIND_INFLUENCE field_0xb80;
+};
+
+class dBomb_c : public daNbomb_c {
+public:
+ bool checkStateCarry();
+ bool checkFlowerBombWait(fopAc_ac_c*);
+ bool checkWaterBomb(fopAc_ac_c*);
+ bool checkInsectBombMove(fopAc_ac_c*);
+};
#endif /* D_D_BOMB_H */
diff --git a/include/d/d_jnt_col.h b/include/d/d_jnt_col.h
index a340444041..2b88c55ed3 100644
--- a/include/d/d_jnt_col.h
+++ b/include/d/d_jnt_col.h
@@ -8,6 +8,8 @@
class dJntColData_c {};
+class fopAc_ac_c;
+
class dJntCol_c {
public:
/* 80035C8C */ dJntCol_c();
diff --git a/include/d/event/d_event.h b/include/d/event/d_event.h
index e42af8eceb..c02ed580c3 100644
--- a/include/d/event/d_event.h
+++ b/include/d/event/d_event.h
@@ -4,275 +4,94 @@
#include "d/a/d_a_itembase.h"
#include "d/a/d_a_player.h"
#include "d/d_stage.h"
+#include "d/event/d_event_manager.h"
#include "d/save/d_save.h"
#include "dolphin/types.h"
-#pragma pack(push, 1)
class dEvt_order_c {
public:
- /* 80030154 */ ~dEvt_order_c();
- /* 800415D4 */ dEvt_order_c();
+ ~dEvt_order_c();
+ dEvt_order_c();
-private:
- u8 field_0x0;
- u8 field_0x1;
- u8 field_0x2;
- u8 field_0x3;
- u8 field_0x4;
- u8 field_0x5;
- u8 field_0x6;
- u8 field_0x7;
- u8 field_0x8;
- u8 field_0x9;
- u8 field_0xa;
- u8 field_0xb;
- u8 field_0xc;
- u8 field_0xd;
- u8 field_0xe;
- u8 field_0xf;
- u8 field_0x10;
- u8 field_0x11;
- u8 field_0x12;
- u8 field_0x13;
- u8 field_0x14;
- u8 field_0x15;
- u8 field_0x16;
- u8 field_0x17;
- u8 field_0x18;
- u8 field_0x19;
- u8 field_0x1a;
- u8 field_0x1b;
- u8 field_0x1c;
- u8 field_0x1d;
- u8 field_0x1e;
- u8 field_0x1f;
- u8 field_0x20;
- u8 field_0x21;
- u8 field_0x22;
- u8 field_0x23;
- u8 field_0x24;
- u8 field_0x25;
- u8 field_0x26;
- u8 field_0x27;
- u8 field_0x28;
- u8 field_0x29;
- u8 field_0x2a;
- u8 field_0x2b;
- u8 field_0x2c;
- u8 field_0x2d;
- u8 field_0x2e;
- u8 field_0x2f;
- u8 field_0x30;
- u8 field_0x31;
- u8 field_0x32;
- u8 field_0x33;
- u8 field_0x34;
- u8 field_0x35;
- u8 field_0x36;
- u8 field_0x37;
- u8 field_0x38;
- u8 field_0x39;
- u8 field_0x3a;
- u8 field_0x3b;
- u8 field_0x3c;
- u8 field_0x3d;
- u8 field_0x3e;
- u8 field_0x3f;
- u8 field_0x40;
- u8 field_0x41;
- u8 field_0x42;
- u8 field_0x43;
- u8 field_0x44;
- u8 field_0x45;
- u8 field_0x46;
- u8 field_0x47;
- u8 field_0x48;
- u8 field_0x49;
- u8 field_0x4a;
- u8 field_0x4b;
- u8 field_0x4c;
- u8 field_0x4d;
- u8 field_0x4e;
- u8 field_0x4f;
- u8 field_0x50;
- u8 field_0x51;
- u8 field_0x52;
- u8 field_0x53;
- u8 field_0x54;
- u8 field_0x55;
- u8 field_0x56;
- u8 field_0x57;
- u8 field_0x58;
- u8 field_0x59;
- u8 field_0x5a;
- u8 field_0x5b;
- u8 field_0x5c;
- u8 field_0x5d;
- u8 field_0x5e;
- u8 field_0x5f;
- u8 field_0x60;
- u8 field_0x61;
- u8 field_0x62;
- u8 field_0x63;
- u8 field_0x64;
- u8 field_0x65;
- u8 field_0x66;
- u8 field_0x67;
- u8 field_0x68;
- u8 field_0x69;
- u8 field_0x6a;
- u8 field_0x6b;
- u8 field_0x6c;
- u8 field_0x6d;
- u8 field_0x6e;
- u8 field_0x6f;
- u8 field_0x70;
- u8 field_0x71;
- u8 field_0x72;
- u8 field_0x73;
- u8 field_0x74;
- u8 field_0x75;
- u8 field_0x76;
- u8 field_0x77;
- u8 field_0x78;
- u8 field_0x79;
- u8 field_0x7a;
- u8 field_0x7b;
- u8 field_0x7c;
- u8 field_0x7d;
- u8 field_0x7e;
- u8 field_0x7f;
- u8 field_0x80;
- u8 field_0x81;
- u8 field_0x82;
- u8 field_0x83;
- u8 field_0x84;
- u8 field_0x85;
- u8 field_0x86;
- u8 field_0x87;
- u8 field_0x88;
- u8 field_0x89;
- u8 field_0x8a;
- u8 field_0x8b;
- u8 field_0x8c;
- u8 field_0x8d;
- u8 field_0x8e;
- u8 field_0x8f;
- u8 field_0x90;
- u8 field_0x91;
- u8 field_0x92;
- u8 field_0x93;
- u8 field_0x94;
- u8 field_0x95;
- u8 field_0x96;
- u8 field_0x97;
- u8 field_0x98;
- u8 field_0x99;
- u8 field_0x9a;
- u8 field_0x9b;
- u8 field_0x9c;
- u8 field_0x9d;
- u8 field_0x9e;
- u8 field_0x9f;
- u8 field_0xa0;
- u8 field_0xa1;
- u8 field_0xa2;
- u8 field_0xa3;
- u8 field_0xa4;
- u8 field_0xa5;
- u8 field_0xa6;
- u8 field_0xa7;
- u8 field_0xa8;
- u8 field_0xa9;
- u8 field_0xaa;
- u8 field_0xab;
- u8 field_0xac;
- u8 field_0xad;
- u8 field_0xae;
- u8 field_0xaf;
- u8 field_0xb0;
- u8 field_0xb1;
- u8 field_0xb2;
- u8 field_0xb3;
- u8 field_0xb4;
- u8 field_0xb5;
- u8 field_0xb6;
- u8 field_0xb7;
- u8 field_0xb8;
- u8 field_0xb9;
- u8 field_0xba;
- u8 field_0xbb;
- u8 field_0xbc;
- u8 field_0xbd;
- u8 field_0xbe;
-};
-#pragma pack(pop)
+ /* 0x00 */ u16 mEventType;
+ /* 0x02 */ u16 mFlag;
+ /* 0x04 */ s16 field_0x04;
+ /* 0x08 */ fopAc_ac_c* mActor1;
+ /* 0x0C */ fopAc_ac_c* mActor2;
+ /* 0x10 */ s16 mEventId;
+ /* 0x12 */ s16 mPriority;
+ /* 0x14 */ u8 mNextOrderIdx;
+ /* 0x15 */ u8 mEventInfoIdx;
+}; // Size = 0x18
+
+typedef int (*SkipFunc)(void*, int);
-#pragma pack(push, 1)
class dEvt_control_c {
public:
- /* 80041580 */ dEvt_control_c();
- /* 800415D8 */ void orderOld(u16, u16, u16, u16, void*, void*, void const*);
- /* 80041668 */ void order(u16, u16, u16, u16, void*, void*, s16, u8);
- /* 80041804 */ void setParam(dEvt_order_c*);
- /* 80041934 */ void beforeFlagProc(dEvt_order_c*);
- /* 80041964 */ void afterFlagProc(dEvt_order_c*);
- /* 800419A8 */ void commonCheck(dEvt_order_c*, u16, u16);
- /* 80041A20 */ void talkCheck(dEvt_order_c*);
- /* 80041B58 */ void talkXyCheck(dEvt_order_c*);
- /* 80041C90 */ void catchCheck(dEvt_order_c*);
- /* 80041D34 */ void talkEnd();
- /* 80041DDC */ void demoCheck(dEvt_order_c*);
- /* 80041F18 */ void demoEnd();
- /* 80041FA0 */ void potentialCheck(dEvt_order_c*);
- /* 80042014 */ void doorCheck(dEvt_order_c*);
- /* 8004212C */ void itemCheck(dEvt_order_c*);
- /* 800421C0 */ void endProc();
- /* 80042254 */ void change();
- /* 800422C0 */ void entry();
- /* 80042518 */ void reset(void*);
- /* 80042468 */ void reset();
- /* 800425B4 */ void clearSkipSystem();
- /* 8004290C */ void getSkipEventName();
- /* 80042914 */ void setSkipProc(void*, int (*)(void*, int), int);
- /* 80042958 */ void setSkipZev(void*, char*);
- /* 800429A8 */ void onSkipFade();
- /* 800429B4 */ void offSkipFade();
- /* 800429D4 */ void skipper();
- /* 80042BBC */ void Step();
- /* 80042FA8 */ void moveApproval(void*);
- /* 8004316C */ void compulsory(void*, char const*, u16);
- /* 800431E8 */ void remove();
- /* 80043278 */ void getStageEventDt();
- /* 80043280 */ void sceneChange(int);
- /* 800432C8 */ void getPId(void*);
- /* 800432EC */ void convPId(unsigned int);
- /* 8004331C */ void getStbDemoData(char*);
- /* 80043500 */ void searchMapEventData(u8, s32);
- /* 800434D8 */ void searchMapEventData(u8);
- /* 8004360C */ void runningEventID(s16);
- /* 8004362C */ void setPt1(void*);
- /* 8004365C */ void setPt2(void*);
- /* 8004368C */ void setPtT(void*);
- /* 800436BC */ void setPtI(void*);
- /* 800436EC */ void setPtI_Id(unsigned int);
- /* 800436F4 */ void setPtD(void*);
- /* 80043724 */ void setGtItm(u8);
+ dEvt_control_c();
+ void orderOld(u16, u16, u16, u16, void*, void*, void const*);
+ void order(u16, u16, u16, u16, void*, void*, s16, u8);
+ void setParam(dEvt_order_c*);
+ s32 beforeFlagProc(dEvt_order_c*);
+ void afterFlagProc(dEvt_order_c*);
+ void commonCheck(dEvt_order_c*, u16, u16);
+ void talkCheck(dEvt_order_c*);
+ void talkXyCheck(dEvt_order_c*);
+ void catchCheck(dEvt_order_c*);
+ void talkEnd();
+ void demoCheck(dEvt_order_c*);
+ void demoEnd();
+ s32 potentialCheck(dEvt_order_c*);
+ void doorCheck(dEvt_order_c*);
+ void itemCheck(dEvt_order_c*);
+ void endProc();
+ void change();
+ void entry();
+ void reset(void*);
+ void reset();
+ void clearSkipSystem();
+ char* getSkipEventName();
+ void setSkipProc(void*, SkipFunc, int);
+ void setSkipZev(void*, char*);
+ void onSkipFade();
+ void offSkipFade();
+ void skipper();
+ void Step();
+ void moveApproval(void*);
+ void compulsory(void*, char const*, u16);
+ void remove();
+ void* getStageEventDt(); // ret type probably wrong, fix later
+ void sceneChange(int);
+ u32 getPId(void*);
+ void convPId(unsigned int);
+ void getStbDemoData(char*);
+ void searchMapEventData(u8, s32);
+ void searchMapEventData(u8);
+ s16 runningEventID(s16);
+ void setPt1(void*);
+ void setPt2(void*);
+ void setPtT(void*);
+ void setPtI(void*);
+ void setPtI_Id(unsigned int);
+ void setPtD(void*);
+ void setGtItm(u8);
+
+ u16 chkFlag2(u16 flag) { return flag & mFlag2; }
-private:
+public:
/* 0x000 */ u8 field_0x0[4];
- /* 0x004 */ dEvt_order_c event_order;
- /* 0x0C4 */ int mPt1;
- /* 0x0C8 */ int mPt2;
- /* 0x0CC */ int mPtT;
- /* 0x0D0 */ int mPtI;
- /* 0x0D4 */ int mPtd;
+ /* 0x004 */ dEvt_order_c mOrder[8];
+ /* 0x0C4 */ u32 mPt1;
+ /* 0x0C8 */ u32 mPt2;
+ /* 0x0CC */ u32 mPtT;
+ /* 0x0D0 */ u32 mPtI;
+ /* 0x0D4 */ u32 mPtd;
/* 0x0D8 */ u16 mEventFlag;
/* 0x0DA */ u16 mFlag2;
/* 0x0DC */ u16 mHindFlag;
- /* 0x0DE */ u16 field_0xde;
- /* 0x0E0 */ u16 field_0xe0;
- /* 0x0E2 */ u8 field_0xe2;
+ /* 0x0DE */ s16 mSpecifiedEvent; // name maybe wrong
+ /* 0x0E0 */ s16 field_0xe0;
+ /* 0x0E2 */ u8 mNum;
/* 0x0E3 */ u8 field_0xe3;
/* 0x0E4 */ u8 mMode;
/* 0x0E5 */ u8 field_0xe5;
@@ -287,15 +106,18 @@ private:
/* 0x0EE */ u8 mPreItemNo;
/* 0x0EF */ u8 mGtItm;
/* 0x0F0 */ float mCullRate;
- /* 0x0F4 */ int mStageEventDt;
- /* 0x0F8 */ int mChangeOK;
- /* 0x0FC */ u8 field_0xfc[20];
- /* 0x110 */ bool mSkipFade;
- /* 0x114 */ char mSkipEventName[0x14];
+ /* 0x0F4 */ void* mStageEventDt;
+ /* 0x0F8 */ void* mChangeOK;
+ /* 0x0FC */ u8 field_0xfc[4];
+ /* 0x100 */ SkipFunc mSkipFunc;
+ /* 0x104 */ u32 field_0x104;
+ /* 0x108 */ u32 field_0x108;
+ /* 0x10C */ u32 field_0x10c;
+ /* 0x110 */ int mSkipFade;
+ /* 0x114 */ char mSkipEventName[20];
/* 0x128 */ u8 mCompulsory;
- /* 0x129 */ u8 field_0x129;
+ /* 0x129 */ bool field_0x129;
/* 0x12C */ int field_0x12c;
-};
-#pragma pack(pop)
+}; // Size = 0x130
#endif /* D_EVENT_D_EVENT_H */
diff --git a/include/d/event/d_event_data.h b/include/d/event/d_event_data.h
index 8a6e6d4f58..f09499c826 100644
--- a/include/d/event/d_event_data.h
+++ b/include/d/event/d_event_data.h
@@ -5,59 +5,111 @@
#include "d/save/d_save.h"
#include "dolphin/types.h"
-struct dEvDtStaff_c {
- /* 80043FD8 */ void specialProc_WaitStart(int);
- /* 8004403C */ void specialProc_WaitProc(int);
- /* 80044080 */ void specialProc();
- /* 80044134 */ void init();
- /* 80044170 */ void advanceCut(int);
- /* 80044190 */ void specialProcLight();
- /* 80044324 */ void specialProcMessage();
- /* 80044A58 */ void specialProcSound();
- /* 80044CB8 */ void specialProcCreate();
- /* 80044EE4 */ void specialProcDirector();
- /* 80045878 */ void specialProcPackage();
- /* 80045AFC */ void specialProcTimekeeper();
- /* 80045C34 */ void specialProcEffect();
+struct event_binary_data_header {};
+
+struct dEvDtData_c {};
+
+class dEvDtCut_c {
+public:
+ void startCheck();
+
+private:
+ /* 0x00 */ u8 field_0x0[0x20];
+ /* 0x20 */ u32 mTagID;
+ /* 0x28 */ int field_0x28[3];
+ /* 0x34 */ u32 mFlagId;
+ /* 0x38 */ u32 mDataTop;
+ /* 0x3C */ u32 mNext;
};
-struct dEvDtEvent_c {
- /* 80043E78 */ void finishCheck();
- /* 80043EFC */ void forceFinish();
- /* 80043F70 */ void specialStaffProc(dEvDtStaff_c*);
+class dEvDtStaff_c {
+public:
+ void specialProc_WaitStart(int);
+ void specialProc_WaitProc(int);
+ void specialProc();
+ void init();
+ void advanceCut(int);
+ void specialProcLight();
+ void specialProcMessage();
+ void specialProcSound();
+ void specialProcCreate();
+ void specialProcDirector();
+ void specialProcPackage();
+ void specialProcTimekeeper();
+ void specialProcEffect();
+
+private:
+ /* 0x00 */ u8 field_0x00[4];
+ /* 0x04 */ void* field_0x04;
+ /* 0x08 */ u32 field_0x08;
+ /* 0x0C */ int field_0x0c;
+ /* 0x10 */ u32 field_0x10;
+ /* 0x14 */ u8 field_0x14[0xC];
+ /* 0x20 */ u32 mTagID;
+ /* 0x24 */ u32 field_0x24;
+ /* 0x28 */ u8 field_0x28[4];
+ /* 0x2C */ int mType;
+ /* 0x30 */ u32 mStartCut;
+ /* 0x34 */ u8 field_0x34[2];
+ /* 0x36 */ s16 field_0x36;
+ /* 0x38 */ int mCurrentCut;
+ /* 0x3C */ u32 field_0x3c;
+ /* 0x40 */ u8 field_0x40;
+ /* 0x41 */ u8 field_0x41;
+ /* 0x42 */ s16 field_0x42;
+ /* 0x44 */ s16 mSoundWait;
+ /* 0x46 */ u8 field_0x46[4];
+ /* 0x4A */ int field_0x4a;
+};
+
+class dEvDtEvent_c {
+public:
+ void finishCheck();
+ void forceFinish();
+ void specialStaffProc(dEvDtStaff_c*);
+
+ /* 0x00 */ s32 mEventNum;
};
class dEvDtFlag_c {
public:
- /* 80043D60 */ void flagCheck(int);
- /* 80043DC8 */ void flagSet(int);
- /* 80043E30 */ void flagMaxCheck(int);
- /* 80043E58 */ void init();
+ dEvDtFlag_c() {}
+ void flagCheck(int);
+ void flagSet(int);
+ bool flagMaxCheck(int);
+ void init();
+
+#define FlagMax 0x2800
private:
- u8 field_0x0[320];
-};
+ u32 mFlags[320];
+}; // Size = 0x500
+
#pragma pack(push, 1)
class dEvDtBase_c {
public:
dEvDtBase_c();
~dEvDtBase_c();
- /* 80046138 */ void init();
- /* 8004616C */ void init(char*, int);
- /* 8004628C */ void advanceCut(dEvDtEvent_c*);
- /* 800462FC */ void advanceCutLocal(dEvDtStaff_c*);
+ void init();
+ void init(char*, int);
+ void advanceCut(dEvDtEvent_c*);
+ void advanceCutLocal(dEvDtStaff_c*);
+
+ event_binary_data_header* getHeaderP() { return mHeaderP; }
+ s32 getEventNum() { return mEventP->mEventNum; }
+ s32 roomNo() { return mRoomNo; }
private:
- u32 field_0x0;
- u32 field_0x4;
- u32 field_0x8;
- u32 field_0xc;
- u32 field_0x10;
- u32 field_0x14;
- u32 field_0x18;
- u32 field_0x1c;
- u32 field_0x20;
-};
+ /* 0x00 */ event_binary_data_header* mHeaderP;
+ /* 0x04 */ dEvDtEvent_c* mEventP;
+ /* 0x08 */ dEvDtStaff_c* mStaffP;
+ /* 0x0C */ dEvDtCut_c* mCutP;
+ /* 0x10 */ dEvDtData_c* mDataP;
+ /* 0x14 */ float* mFDataP;
+ /* 0x18 */ s32* mIDataP;
+ /* 0x1C */ char* mSDataP;
+ /* 0x20 */ s32 mRoomNo;
+}; // Size = 0x24
#pragma pack(pop)
#endif /* D_EVENT_D_EVENT_DATA_H */
diff --git a/include/d/event/d_event_manager.h b/include/d/event/d_event_manager.h
index e9d571a819..c941d17183 100644
--- a/include/d/event/d_event_manager.h
+++ b/include/d/event/d_event_manager.h
@@ -4,87 +4,81 @@
#include "d/event/d_event_data.h"
#include "dolphin/types.h"
-struct dEvDtData_c {};
-
-#pragma pack(push, 1)
class dEvent_exception_c {
public:
- /* 800463DC */ void init();
- /* 800463F0 */ void setStartDemo(int);
- /* 80046480 */ void getEventName();
+ dEvent_exception_c() { mEventInfoIdx = -1; }
+ void init();
+ void setStartDemo(int);
+ void getEventName();
private:
- u32 field_0x0;
+ u32 mEventInfoIdx;
u8 field_0x4;
u8 field_0x5;
u8 field_0x6;
u8 field_0x7;
- u32 field_0x8;
+ u32 mState;
};
-#pragma pack(pop)
-#pragma pack(push, 1)
-struct dEvent_manager_c {
- /* 800465E8 */ void getSubstance(dEvDtData_c*, int);
- /* 80046688 */ dEvent_manager_c();
- /* 80046710 */ void create();
- /* 80046800 */ void setObjectArchive(char*);
- /* 80046888 */ void demoInit();
- /* 80046904 */ void roomInit(int);
- /* 800469EC */ void roomFinish(int);
- /* 80046A58 */ void orderStartDemo();
- /* 80046C0C */ void remove();
- /* 80046CB8 */ void startProc(dEvDtEvent_c*);
- /* 80046DA0 */ void closeProc(dEvDtEvent_c*);
- /* 80046DAC */ void endProc(s16, int);
- /* 80046E64 */ void Sequencer();
- /* 800473FC */ void Experts();
- /* 800474BC */ void getEventData(s16);
- /* 80047454 */ void getEventData(s16, int);
- /* 80047514 */ void getEventIdx(char const*, u8, s32);
- /* 80047698 */ void getEventIdx(fopAc_ac_c*, u8);
- /* 80047758 */ void getEventIdx(fopAc_ac_c*, char const*, u8);
- /* 80047930 */ void isMapToolCamera(u8, s32);
- /* 80047984 */ void order(s16);
- /* 800479F8 */ void startCheck(s16);
- /* 80047A38 */ void startCheckOld(char const*);
- /* 80047A78 */ void endCheck(s16);
- /* 80047ADC */ void endCheckOld(char const*);
- /* 80047B1C */ void getMyStaffId(char const*, fopAc_ac_c*, int);
- /* 80047D4C */ void getIsAddvance(int);
- /* 80047E10 */ void getMyActIdx(int, char const* const*, int, int, int);
- /* 80047F5C */ void getMyNowCutName(int);
- /* 80047FC8 */ void getMyDataP(int, char const*, int);
- /* 800480EC */ void getMySubstanceP(int, char const*, int);
- /* 80048144 */ void getMySubstanceNum(int, char const*);
- /* 8004817C */ void cutEnd(int);
- /* 800481F4 */ void getEventPrio(fopAc_ac_c*, s16);
- /* 800482CC */ void issueStaff(char const*);
- /* 80048348 */ void cancelStaff(char const*);
- /* 800483C4 */ void setGoal(cXyz*);
- /* 800483E0 */ void getGoal();
- /* 800483E8 */ void getRunEventName();
- /* 80048520 */ void specialCast_Shutter(s16, int);
- /* 80048618 */ void specialCast(char const*, int);
- /* 800487F0 */ void ChkPresentEnd();
- /* 8004882C */ void checkStartDemo();
+class dEvent_manager_c {
+public:
+ void getSubstance(dEvDtData_c*, int);
+ dEvent_manager_c();
+ void create();
+ void setObjectArchive(char*);
+ void demoInit();
+ void roomInit(int);
+ void roomFinish(int);
+ void orderStartDemo();
+ void remove();
+ void startProc(dEvDtEvent_c*);
+ void closeProc(dEvDtEvent_c*);
+ void endProc(s16, int);
+ void Sequencer();
+ void Experts();
+ void getEventData(s16);
+ dEvDtEvent_c* getEventData(s16, int);
+ void getEventIdx(char const*, u8, s32);
+ void getEventIdx(fopAc_ac_c*, u8);
+ void getEventIdx(fopAc_ac_c*, char const*, u8);
+ void isMapToolCamera(u8, s32);
+ void order(s16);
+ void startCheck(s16);
+ void startCheckOld(char const*);
+ void endCheck(s16);
+ void endCheckOld(char const*);
+ void getMyStaffId(char const*, fopAc_ac_c*, int);
+ void getIsAddvance(int);
+ void getMyActIdx(int, char const* const*, int, int, int);
+ void getMyNowCutName(int);
+ void getMyDataP(int, char const*, int);
+ void getMySubstanceP(int, char const*, int);
+ void getMySubstanceNum(int, char const*);
+ void cutEnd(int);
+ void getEventPrio(fopAc_ac_c*, s16);
+ void issueStaff(char const*);
+ void cancelStaff(char const*);
+ void setGoal(cXyz*);
+ void getGoal();
+ void getRunEventName();
+ void specialCast_Shutter(s16, int);
+ void specialCast(char const*, int);
+ void ChkPresentEnd();
+ void checkStartDemo();
- /* 0x0000 */ dEvDtBase_c event_data_base[11];
- /* 0x018C */ u32 field_0x18c;
- /* 0x0190 */ u32 field_0x190;
- /* 0x0194 */ u8 field_0x194[0x8];
- /* 0x019C */ cXyz goal;
- /* 0x01A8 */ u8 field_0x1A8[4];
+private:
+ /* 0x0000 */ dEvDtBase_c mEventList[11];
+ /* 0x018C */ s32 mCameraPlay;
+ /* 0x0190 */ dEvent_exception_c mEventException;
+ /* 0x019C */ cXyz mGoal;
+ /* 0x01A8 */ u8 field_0x1a8[2];
/* 0x01AA */ u16 field_0x1aa;
- /* 0x01AC */ u8 field_0x1ac[0x8];
- /* 0x01B4 */ dEvent_exception_c event_exception;
- /* 0x01C0 */ cXyz position;
- /* 0x01CC */ u8 field_0x1cc[0x14];
- /* 0x01E0 */ dEvDtFlag_c event_data_flag;
- /* 0x0320 */ u8 field_0x320[0x35C];
- /* 0x067C */ void* vtable;
- /* 0x0680 */ u8 field_0x680[0x3C];
+ /* 0x01AC */ u8 field_0x1ac[4];
+ /* 0x01B0 */ u32 field_0x1b0;
+ /* 0x01B4 */ u32 field_0x1b4;
+ /* 0x01B8 */ u32 field_0x1b8;
+ /* 0x01BC */ dEvDtFlag_c mFlags;
+ /* 0x06BC */ bool mDataLoaded;
};
-#pragma pack(pop)
#endif /* D_EVENT_D_EVENT_MANAGER_H */
diff --git a/include/d/kankyo/d_kankyo.h b/include/d/kankyo/d_kankyo.h
index bb382bc415..d92ecebccd 100644
--- a/include/d/kankyo/d_kankyo.h
+++ b/include/d/kankyo/d_kankyo.h
@@ -1,6 +1,7 @@
#ifndef D_KANKYO_D_KANKYO_H
#define D_KANKYO_D_KANKYO_H
+#include "JSystem/J3DGraphBase/J3DStruct.h"
#include "SSystem/SComponent/c_xyz.h"
#include "dolphin/gx/GXTexture.h"
#include "dolphin/types.h"
@@ -16,4 +17,48 @@ struct LIGHT_INFLUENCE {
/* 0x1C */ int field_0x1c;
};
+struct WIND_INFLUENCE {
+ /* 0x00 */ cXyz field_0x00;
+ /* 0x0C */ cXyz field_0x0c;
+ /* 0x18 */ u8 field_0x18[0xC];
+ /* 0x24 */ int field_0x24;
+ /* 0x28 */ u8 field_0x28;
+ /* 0x29 */ u8 field_0x29;
+};
+
+class dKy_tevstr_c {
+public:
+private:
+ /* 0x000 */ J3DLightObj field_0x000;
+ /* 0x074 */ J3DLightObj field_0x074[6];
+ /* 0x32C */ cXyz field_0x32c;
+ /* 0x338 */ cXyz field_0x338;
+ /* 0x344 */ f32 field_0x344;
+ /* 0x348 */ int field_0x348;
+ /* 0x34C */ int field_0x34c;
+ /* 0x350 */ int field_0x350;
+ /* 0x354 */ int field_0x354;
+ /* 0x358 */ int field_0x358;
+ /* 0x35C */ int field_0x35c;
+ /* 0x360 */ int field_0x360;
+ /* 0x364 */ int field_0x364;
+ /* 0x368 */ f32 field_0x368;
+ /* 0x36C */ f32 field_0x36c;
+ /* 0x370 */ f32 field_0x370;
+ /* 0x374 */ f32 field_0x374;
+ /* 0x378 */ u16 field_0x378;
+ /* 0x37A */ u8 field_0x37a;
+ /* 0x37B */ u8 field_0x37b;
+ /* 0x37C */ u8 field_0x37c;
+ /* 0x37D */ u8 field_0x37d;
+ /* 0x37E */ u8 field_0x37e;
+ /* 0x37F */ u8 field_0x37f;
+ /* 0x380 */ u8 field_0x380;
+ /* 0x381 */ u8 field_0x381;
+ /* 0x382 */ u8 field_0x382;
+ /* 0x383 */ u8 field_0x383;
+ /* 0x384 */ u8 field_0x384;
+ /* 0x385 */ u8 field_0x385;
+}; // Size = 0x388?
+
#endif /* D_KANKYO_D_KANKYO_H */
diff --git a/include/d/menu/d_menu_window.h b/include/d/menu/d_menu_window.h
index 18a7adb402..781f1ed640 100644
--- a/include/d/menu/d_menu_window.h
+++ b/include/d/menu/d_menu_window.h
@@ -1,6 +1,175 @@
#ifndef D_MENU_D_MENU_WINDOW_H
#define D_MENU_D_MENU_WINDOW_H
+#include "d/meter/d_meter2_info.h"
#include "dolphin/types.h"
+#include "m_Do/m_Do_controller_pad.h"
+
+struct STControl;
+struct CSTControl;
+class dDlst_base_c;
+class dMenu_Ring_c;
+class dMenu_Collect2D_c;
+class dMenu_Dmap_c;
+class dMenu_Fmap_c;
+class dMenu_save_c;
+class dMenu_Option_c;
+class dMenu_Letter_c;
+class dMenu_Fishing_c;
+class dMenu_Skill_c;
+class dMenu_Insect_c;
+
+class dMw_c {
+public:
+ /* 801FA13C */ void key_wait_init(u8);
+ /* 801FA220 */ void ring_open_init(u8);
+ /* 801FA23C */ void ring_move_init(u8);
+ /* 801FA240 */ void ring_close_init(u8);
+ /* 801FA244 */ void collect_open_init(u8);
+ /* 801FA2D0 */ void collect_move_init(u8);
+ /* 801FA46C */ void collect_close_init(u8);
+ /* 801FA538 */ void fmap_open_init(u8);
+ /* 801FA55C */ void fmap_move_init(u8);
+ /* 801FA560 */ void fmap_close_init(u8);
+ /* 801FA564 */ void dmap_open_init(u8);
+ /* 801FA588 */ void dmap_move_init(u8);
+ /* 801FA58C */ void dmap_close_init(u8);
+ /* 801FA590 */ void collect_save_open_init(u8);
+ /* 801FA5E4 */ void collect_save_move_init(u8);
+ /* 801FA5E8 */ void collect_save_close_init(u8);
+ /* 801FA608 */ void collect_option_open_init(u8);
+ /* 801FA65C */ void collect_option_move_init(u8);
+ /* 801FA660 */ void collect_option_close_init(u8);
+ /* 801FA680 */ void collect_letter_open_init(u8);
+ /* 801FA6DC */ void collect_letter_move_init(u8);
+ /* 801FA6E0 */ void collect_letter_close_init(u8);
+ /* 801FA738 */ void collect_fishing_open_init(u8);
+ /* 801FA794 */ void collect_fishing_move_init(u8);
+ /* 801FA798 */ void collect_fishing_close_init(u8);
+ /* 801FA7F0 */ void collect_skill_open_init(u8);
+ /* 801FA84C */ void collect_skill_move_init(u8);
+ /* 801FA850 */ void collect_skill_close_init(u8);
+ /* 801FA8A8 */ void collect_insect_open_init(u8);
+ /* 801FA908 */ void collect_insect_move_init(u8);
+ /* 801FA90C */ void collect_insect_close_init(u8);
+ /* 801FA964 */ void insect_open_init(u8);
+ /* 801FA9E8 */ void insect_open2_init(u8);
+ /* 801FA9EC */ void insect_move_init(u8);
+ /* 801FA9F0 */ void insect_close_init(u8);
+ /* 801FAA48 */ void key_wait_proc();
+ /* 801FAFDC */ void ring_open_proc();
+ /* 801FB01C */ void ring_move_proc();
+ /* 801FB064 */ void ring_close_proc();
+ /* 801FB0B8 */ void collect_open_proc();
+ /* 801FB110 */ void collect_move_proc();
+ /* 801FB1A0 */ void collect_close_proc();
+ /* 801FB240 */ void fmap_open_proc();
+ /* 801FB298 */ void fmap_move_proc();
+ /* 801FB36C */ void fmap_close_proc();
+ /* 801FB3AC */ void dmap_open_proc();
+ /* 801FB404 */ void dmap_move_proc();
+ /* 801FB5DC */ void dmap_close_proc();
+ /* 801FB61C */ void collect_save_open_proc();
+ /* 801FB67C */ void collect_save_move_proc();
+ /* 801FB6D8 */ void collect_save_close_proc();
+ /* 801FB73C */ void collect_option_open_proc();
+ /* 801FB7AC */ void collect_option_move_proc();
+ /* 801FB800 */ void collect_option_close_proc();
+ /* 801FB81C */ void collect_letter_open_proc();
+ /* 801FB8AC */ void collect_letter_move_proc();
+ /* 801FB900 */ void collect_letter_close_proc();
+ /* 801FB91C */ void collect_fishing_open_proc();
+ /* 801FB9AC */ void collect_fishing_move_proc();
+ /* 801FBA00 */ void collect_fishing_close_proc();
+ /* 801FBA1C */ void collect_skill_open_proc();
+ /* 801FBAAC */ void collect_skill_move_proc();
+ /* 801FBB00 */ void collect_skill_close_proc();
+ /* 801FBB1C */ void collect_insect_open_proc();
+ /* 801FBBAC */ void collect_insect_move_proc();
+ /* 801FBC00 */ void collect_insect_close_proc();
+ /* 801FBC1C */ void insect_open_proc();
+ /* 801FBC78 */ void insect_open2_proc();
+ /* 801FBD08 */ void insect_move_proc();
+ /* 801FBD64 */ void insect_close_proc();
+ /* 801FBD80 */ void dMw_capture_create();
+ /* 801FBE14 */ void dMw_capture_delete();
+ /* 801FBE94 */ void dMw_ring_create(u8);
+ /* 801FBF60 */ void dMw_ring_delete();
+ /* 801FBFF8 */ void dMw_collect_create();
+ /* 801FC090 */ void dMw_collect_delete(bool);
+ /* 801FC0FC */ void dMw_fmap_create();
+ /* 801FC264 */ void dMw_fmap_delete(bool);
+ /* 801FC350 */ void dMw_dmap_create();
+ /* 801FC46C */ void dMw_dmap_delete(bool);
+ /* 801FC520 */ void dMw_save_create();
+ /* 801FC5D0 */ void dMw_save_delete();
+ /* 801FC668 */ void dMw_option_create();
+ /* 801FC70C */ void dMw_option_delete();
+ /* 801FC7BC */ void dMw_letter_create();
+ /* 801FC85C */ void dMw_letter_delete();
+ /* 801FC904 */ void dMw_fishing_create();
+ /* 801FC9A4 */ void dMw_fishing_delete();
+ /* 801FCA4C */ void dMw_skill_create();
+ /* 801FCAEC */ void dMw_skill_delete();
+ /* 801FCB94 */ void dMw_insect_create(u8);
+ /* 801FCC44 */ void dMw_insect_delete();
+ /* 801FCCEC */ void dMw_onButtonBit(u8);
+ /* 801FCCFC */ void dMw_offButtonBit(u8);
+ /* 801FCD0C */ void dMw_isButtonBit(u8);
+ /* 801FCD24 */ void dMw_isPush_S_Button();
+ /* 801FCDD8 */ void isPauseReady();
+ /* 801FCE08 */ void dMw_fade_out();
+ /* 801FCE78 */ void dMw_fade_in();
+ /* 801FCEE8 */ void checkCStickTrigger();
+ /* 801FCF84 */ void isEventCheck();
+ /* 801FD094 */ void markMemSize();
+ /* 801FD0D4 */ void checkMemSize();
+ /* 801FD140 */ void _create();
+ /* 801FD2D8 */ void _execute();
+ /* 801FD450 */ void _draw();
+ /* 801FD67C */ void _delete();
+
+ void onPauseWindow() { mPauseWindow = true; }
+ void offPauseWindow() { mPauseWindow = false; }
+ void onShowFlag() { mShowFlag |= 1; }
+ void offShowFlag() { mShowFlag &= ~1; }
+ bool isShowFlag() { return mShowFlag & 1 != 0; }
+
+private:
+ u8 field_0x0[0x100];
+ /* 0x100 */ void* field_0x100;
+ /* 0x104 */ STControl* mpStick;
+ /* 0x108 */ CSTControl* mpCStick;
+ /* 0x10C */ dDlst_base_c* field_0x10c;
+ /* 0x110 */ dMenu_Ring_c* mRing;
+ /* 0x114 */ dMenu_Collect2D_c* mCollect2D;
+ /* 0x118 */ dMenu_Dmap_c* mDmap;
+ /* 0x11C */ dMenu_Fmap_c* mFmap;
+ /* 0x120 */ dMenu_save_c* mSave;
+ /* 0x124 */ dMenu_Option_c* mOption;
+ /* 0x128 */ dMenu_Letter_c* mLetter;
+ /* 0x12C */ dMenu_Fishing_c* mFishing;
+ /* 0x130 */ dMenu_Skill_c* mSkill;
+ /* 0x134 */ dMenu_Insect_c* mInsect;
+ /* 0x138 */ int field_0x138;
+ /* 0x13C */ u8 field_0x13c[8];
+ /* 0x144 */ u8 field_0x144;
+ /* 0x145 */ u8 mButtons;
+ /* 0x146 */ u8 field_0x146;
+ /* 0x147 */ u8 mShowFlag;
+ /* 0x148 */ u8 field_0x148;
+ /* 0x149 */ u8 field_0x149;
+ /* 0x14A */ u8 field_0x14A;
+ /* 0x14B */ u8 field_0x14B;
+ /* 0x14C */ u8 field_0x14C;
+ /* 0x14D */ u8 field_0x14D;
+ /* 0x14E */ u8 field_0x14E;
+ /* 0x14F */ u8 field_0x14F;
+ /* 0x150 */ u8 field_0x150;
+ /* 0x151 */ u8 field_0x151;
+ /* 0x152 */ u8 field_0x152;
+ /* 0x153 */ u8 field_0x153;
+ /* 0x154 */ bool mPauseWindow;
+};
#endif /* D_MENU_D_MENU_WINDOW_H */
diff --git a/include/d/meter/d_meter2_info.h b/include/d/meter/d_meter2_info.h
index a0f124a1b2..61ba0bd8a9 100644
--- a/include/d/meter/d_meter2_info.h
+++ b/include/d/meter/d_meter2_info.h
@@ -3,6 +3,7 @@
#include "JSystem/JUtility/JUTTexture.h"
#include "d/d_resorce.h"
+#include "d/menu/d_menu_window.h"
#include "d/msg/d_msg_flow.h"
#include "dolphin/types.h"
#include "f_op/f_op_actor.h"
@@ -14,11 +15,16 @@ struct dSv_event_flag_c {
struct dMsgObject_c {
/* 802384C4 */ void setLetterNameID(u16);
+ /* 802379AC */ void setKillMessageFlag();
+ /* 8023822C */ void getStatus();
};
class dMeterMap_c {
public:
/* 8020D900 */ bool isMapOpenCheck();
+ /* 8020D650 */ void isEnableDispMapAndMapDispSizeTypeNo();
+ /* 8020D874 */ void setDispPosInsideFlg_SE_On();
+ /* 8020D8BC */ void setDispPosOutsideFlg_SE_On();
};
struct J2DPicture {};
@@ -41,9 +47,12 @@ struct dItem_data {
struct CPaneMgr {};
-class dMeter2_c {};
+class dMw_c;
-class dMw_c {};
+class dMeter2_c {
+public:
+ /* 8021F6EC */ void emphasisButtonDelete();
+};
class dMeter2Info_c {
public:
@@ -98,8 +107,13 @@ public:
void setMiniGameCount(s8);
void setSaveStageName(const char*);
+ void setWindowStatus(u8 status) {
+ unk186 = mWindowStatus;
+ mWindowStatus = status;
+ }
u8& getDirectUseItem() { return mDirectUseItem; }
dMeterMap_c* getMeterMapClass() { return mMeterMap; }
+ dMw_c* getMenuWindowClass() { return mMenuWindowClass; }
void offUseButton(int pButton) { mUseButton &= ~(u16)pButton; }
private:
@@ -187,12 +201,20 @@ private:
extern dMeter2Info_c g_meter2_info;
+inline void dMeter2Info_Initialize() {
+ g_meter2_info.init();
+}
+
inline dMeterMap_c* dMeter2Info_getMeterMapClass() {
return g_meter2_info.getMeterMapClass();
}
-inline void dMeter2Info_Initialize() {
- g_meter2_info.init();
+inline dMw_c* dMeter2Info_getMenuWindowClass() {
+ return g_meter2_info.getMenuWindowClass();
+}
+
+inline void dMeter2Info_setWindowStatus(u8 status) {
+ g_meter2_info.setWindowStatus(status);
}
#endif /* D_METER_D_METER2_INFO_H */
diff --git a/include/d/particle/d_particle_copoly.h b/include/d/particle/d_particle_copoly.h
index f4da7608d9..561b75ea19 100644
--- a/include/d/particle/d_particle_copoly.h
+++ b/include/d/particle/d_particle_copoly.h
@@ -4,7 +4,7 @@
#include "d/bg/d_bg_s_acch.h"
#include "dolphin/types.h"
-struct dKy_tevstr_c {};
+struct dKy_tevstr_c;
class dPaPo_c {
public: