summaryrefslogtreecommitdiff
path: root/include/d
diff options
context:
space:
mode:
authorTakaRikka <38417346+TakaRikka@users.noreply.github.com>2026-03-17 03:44:11 -0700
committerGitHub <noreply@github.com>2026-03-17 03:44:11 -0700
commit9f340b604b5ac3d19d330b7bd6a2d7355c58bc27 (patch)
tree1db19763775c1b495235e05bd6ae1471a8bb53fb /include/d
parentae0f8909a6ad9d1df2cf247a2538ff658d6e49c0 (diff)
various d_bg debug cleanup / d_menu_window_HIO debug (#3132)
* various d_bg debug cleanup * matching forward decl for compiler compatibility * fix build
Diffstat (limited to 'include/d')
-rw-r--r--include/d/d_bg_s.h179
-rw-r--r--include/d/d_bg_s_acch.h140
-rw-r--r--include/d/d_bg_s_cap_poly.h19
-rw-r--r--include/d/d_bg_s_capt_poly.h20
-rw-r--r--include/d/d_bg_s_grp_pass_chk.h1
-rw-r--r--include/d/d_bg_s_sph_chk.h1
-rw-r--r--include/d/d_bg_s_spl_grp_chk.h2
-rw-r--r--include/d/d_bg_w.h30
-rw-r--r--include/d/d_bg_w_base.h10
-rw-r--r--include/d/d_com_inf_game.h40
-rw-r--r--include/d/d_menu_window_HIO.h108
-rw-r--r--include/d/d_msg_object.h5
-rw-r--r--include/d/d_save.h4
13 files changed, 340 insertions, 219 deletions
diff --git a/include/d/d_bg_s.h b/include/d/d_bg_s.h
index 315a7be614..1c47356c80 100644
--- a/include/d/d_bg_s.h
+++ b/include/d/d_bg_s.h
@@ -13,7 +13,7 @@ class cBgS_ChkElm {
public:
/* 0x00 */ dBgW_Base* m_bgw_base_ptr;
/* 0x04 */ bool m_used;
- /* 0x08 */ u32 m_actor_id;
+ /* 0x08 */ fpc_ProcID m_actor_id;
/* 0x0C */ fopAc_ac_c* m_actor_ptr;
/* 0x10 vtable */
@@ -50,6 +50,7 @@ public:
bool GetTriPnt(cBgS_PolyInfo const&, cXyz*, cXyz*, cXyz*) const;
void ShdwDraw(cBgS_ShdwDraw*);
u32 GetGrpInf(cBgS_PolyInfo const&) const;
+ void Draw();
virtual ~cBgS() {}
virtual void Ct();
@@ -67,40 +68,124 @@ u8 dKy_pol_sound_get(cBgS_PolyInfo const* param_0);
class dBgS_HIO : public JORReflexible {
public:
#if DEBUG
+ enum flags_e {
+ FLAG_ACCH_WALL_OFF_e = 0x2,
+ FLAG_CHECK_COUNTER_e = 0x4,
+ FLAG_ACCH_WALL_TIMER_e = 0x8,
+ FLAG_OBJ_LINE_CHECK_e = 0x10,
+ FLAG_ACCH_DRAW_WALL_e = 0x400,
+ FLAG_ROOF_TIMER_e = 0x2000,
+ FLAG_ROOF_OFF_e = 0x4000,
+
+ FLAG2_GND_CHK_e = 0x1,
+ FLAG2_SHAPE_DISP_e = 0x2,
+ FLAG2_GROUND_CHECK_TIMER_e = 0x4,
+ FLAG2_SPL_OFF_e = 0x8,
+ FLAG2_SPL_TIMER_e = 0x10,
+ FLAG2_LINE_OFF_e = 0x40,
+ FLAG2_LINE_TIMER_e = 0x80,
+ FLAG2_SHDW_DRAW_OFF_e = 0x100,
+ FLAG2_SHDW_DRAW_TIMER_e = 0x200,
+ FLAG2_CAPTPOLY_OFF_e = 0x800,
+ FLAG2_CAPTPOLY_TIMER_e = 0x1000,
+ FLAG2_SPH_CHK_OFF_e = 0x2000,
+ FLAG2_SPH_CHK_TIMER_e = 0x4000,
+ };
+
dBgS_HIO() {
- field_0x6 = 0;
- field_0x8 = 0;
+ m_flags = 0;
+ m_flags2 = 0;
- field_0xc.x = field_0xc.y = field_0xc.z = 0.0f;
- field_0x18.x = field_0x18.y = field_0x18.z = 0.0f;
- field_0x24.x = field_0x24.y = field_0x24.z = 0.0f;
+ m_linecheck_start.x = m_linecheck_start.y = m_linecheck_start.z = 0.0f;
+ m_linecheck_end.x = m_linecheck_end.y = m_linecheck_end.z = 0.0f;
+ m_gndcheck_pos.x = m_gndcheck_pos.y = m_gndcheck_pos.z = 0.0f;
- field_0x30 = -1;
+ m_errorCheck_actor_num = -1;
}
virtual void genMessage(JORMContext*);
virtual ~dBgS_HIO();
- BOOL ChkLineOff();
- BOOL ChkCheckCounter();
- BOOL ChkLineTimer();
- BOOL ChkGroundCheckTimer();
-
- /* 0x04 */ u8 field_0x4[0x6 - 0x4];
- /* 0x06 */ u16 field_0x6;
- /* 0x08 */ u16 field_0x8;
- /* 0x0C */ cXyz field_0xc;
- /* 0x18 */ cXyz field_0x18;
- /* 0x24 */ cXyz field_0x24;
- /* 0x30 */ int field_0x30;
+ bool ChkLineOff() { return m_flags2 & FLAG2_LINE_OFF_e; }
+ bool ChkCheckCounter() { return m_flags & FLAG_CHECK_COUNTER_e; }
+ bool ChkLineTimer() { return m_flags2 & FLAG2_LINE_TIMER_e; }
+ bool ChkGroundCheckTimer() { return m_flags2 & FLAG2_GROUND_CHECK_TIMER_e; }
+ bool ChkObjLineCheck() { return m_flags & FLAG_OBJ_LINE_CHECK_e; }
+ bool ChkGndCheck() { return m_flags2 & FLAG2_GND_CHK_e; }
+ bool ChkCaptPolyTimer() { return m_flags2 & FLAG2_CAPTPOLY_TIMER_e; }
+ bool ChkCaptPolyOff() { return m_flags2 & FLAG2_CAPTPOLY_OFF_e; }
+ bool ChkShdwDrawOff() { return m_flags2 & FLAG2_SHDW_DRAW_OFF_e; }
+ bool ChkShdwDrawTimer() { return m_flags2 & FLAG2_SHDW_DRAW_TIMER_e; }
+ bool ChkAcchWallOff() { return m_flags & FLAG_ACCH_WALL_OFF_e; }
+ bool ChkAcchWallTimer() { return m_flags & FLAG_ACCH_WALL_TIMER_e; }
+ bool ChkRoofTimer() { return m_flags & FLAG_ROOF_TIMER_e; }
+ bool ChkRoofOff() { return m_flags & FLAG_ROOF_OFF_e; }
+ bool ChkSplOff() { return m_flags2 & FLAG2_SPL_OFF_e; }
+ bool ChkSplTimer() { return m_flags2 & FLAG2_SPL_TIMER_e; }
+ bool ChkSphChkOff() { return m_flags2 & FLAG2_SPH_CHK_OFF_e; }
+ bool ChkSphChkTimer() { return m_flags2 & FLAG2_SPH_CHK_TIMER_e; }
+ bool ChkShapeDisp() { return m_flags2 & FLAG2_SHAPE_DISP_e; }
+ bool ChkAcchDrawWall() { return m_flags & FLAG_ACCH_DRAW_WALL_e; }
+
+ /* 0x04 */ s8 id;
+ /* 0x06 */ u16 m_flags;
+ /* 0x08 */ u16 m_flags2;
+ /* 0x0C */ cXyz m_linecheck_start;
+ /* 0x18 */ cXyz m_linecheck_end;
+ /* 0x24 */ cXyz m_gndcheck_pos;
+ /* 0x30 */ s32 m_errorCheck_actor_num;
#endif
};
-extern int g_line_counter;
-extern OSStopwatch s_line_sw;
+class dBgS_InsideHIO : public JORReflexible {
+public:
+#if DEBUG
+ enum flags_e {
+ FLAG_DISP_POLY_e = 0x1,
+ FLAG_DISP_DP_AREA_e = 0x2,
+ FLAG_WHITE_WIRE_e = 0x4,
+ FLAG_PLAYER_AROUND_e = 0x8,
+ FLAG_DISP_WATER_POLY_e = 0x10,
+ FLAG_GROUND_OFF_e = 0x20,
+ FLAG_WALL_OFF_e = 0x40,
+ FLAG_ROOF_OFF_e = 0x80,
+ FLAG_GNDCHK_PLAYER_UNDER_e = 0x100,
+ };
+
+ dBgS_InsideHIO() {
+ m_flags = FLAG_PLAYER_AROUND_e;
+
+ m_raise_amount = 1.0f;
-extern int g_ground_counter;
-extern OSStopwatch s_ground_sw;
+ m_p0.x = 100.0f;
+ m_p0.y = 0.0f;
+ m_p0.z = 0.0f;
+
+ m_p1.x = 0.0f;
+ m_p1.y = 0.0f;
+ m_p1.z = 0.0f;
+ }
+
+ virtual void genMessage(JORMContext*);
+ virtual ~dBgS_InsideHIO();
+
+ BOOL ChkWallOff() { return m_flags & FLAG_WALL_OFF_e; }
+ BOOL ChkRoofOff() { return m_flags & FLAG_ROOF_OFF_e; }
+ BOOL ChkGroundOff() { return m_flags & FLAG_GROUND_OFF_e; }
+ BOOL ChkGndChkPlayerUnder() { return m_flags & FLAG_GNDCHK_PLAYER_UNDER_e; }
+ BOOL ChkWhiteWire() { return m_flags & FLAG_WHITE_WIRE_e; }
+ BOOL ChkDispWaterPoly() { return m_flags & FLAG_DISP_WATER_POLY_e; }
+ BOOL ChkDispDpArea() { return m_flags & FLAG_DISP_DP_AREA_e; }
+ BOOL ChkPlayerAround() { return m_flags & FLAG_PLAYER_AROUND_e; }
+ BOOL ChkDispPoly() { return m_flags & FLAG_DISP_POLY_e; }
+
+ /* 0x04 */ s8 id;
+ /* 0x06 */ u16 m_flags;
+ /* 0x08 */ f32 m_raise_amount;
+ /* 0x0C */ cXyz m_p0;
+ /* 0x18 */ cXyz m_p1;
+#endif
+};
class dBgS : public cBgS {
public:
@@ -149,53 +234,31 @@ public:
bool WaterChk(dBgS_SplGrpChk* chk) { return SplGrpChk(chk); }
u32 GetMtrlSndId(const cBgS_PolyInfo& param_0) { return dKy_pol_sound_get(&param_0); }
- void DebugDrawPoly(dBgW_Base *param_1) {}
- void DebugDrawPoly(dBgW_Base const& param_1) {}
void DrawPoly(cBgS_PolyInfo const& param_0, GXColor const& param_1);
fopAc_ac_c* GetActorPointer(cBgS_PolyInfo const& param_0) const { return cBgS::GetActorPointer(param_0); }
+
+ #if DEBUG
+ void DebugDrawPoly(const dBgW_Base& param_1);
+ #endif
+
+ #if DEBUG
+ bool LineCross(cBgS_LinChk* i_linChk);
+ f32 GroundCross(cBgS_GndChk* i_gndChk);
+ void ShdwDraw(cBgS_ShdwDraw*);
+ #else
bool LineCross(cBgS_LinChk* i_linChk) {
- #if DEBUG
- if (m_hio.ChkLineOff()) {
- return false;
- }
- if (m_hio.ChkCheckCounter()) {
- g_line_counter++;
- }
- if (m_hio.ChkLineTimer()) {
- OSStartStopwatch(&s_line_sw);
- }
- bool rt = cBgS::LineCross(i_linChk);
- if (m_hio.ChkLineTimer()) {
- OSStopStopwatch(&s_line_sw);
- OSDumpStopwatch(&s_line_sw);
- }
- return rt;
- #else
return cBgS::LineCross(i_linChk);
- #endif
}
+
f32 GroundCross(cBgS_GndChk* i_gndChk) {
- #if DEBUG
- if (m_hio.ChkCheckCounter()) {
- g_ground_counter++;
- }
- if (m_hio.ChkGroundCheckTimer()) {
- OSStartStopwatch(&s_ground_sw);
- }
- f32 rt = cBgS::GroundCross(i_gndChk);
- if (m_hio.ChkGroundCheckTimer()) {
- OSStopStopwatch(&s_ground_sw);
- OSDumpStopwatch(&s_ground_sw);
- }
- return rt;
- #else
return cBgS::GroundCross(i_gndChk);
- #endif
}
+ #endif
void ChkDeleteActorRegist(fopAc_ac_c*);
void Draw();
+ void CaptPoly(dBgS_CaptPoly&);
#if DEBUG
/* 0x1404 */ u8 field_0x1404[0x1408 - 0x1404];
diff --git a/include/d/d_bg_s_acch.h b/include/d/d_bg_s_acch.h
index 4f97961dde..33bca24c0a 100644
--- a/include/d/d_bg_s_acch.h
+++ b/include/d/d_bg_s_acch.h
@@ -25,7 +25,7 @@ private:
public:
enum {
- /* 0x2 */ WALL_HIT = 2,
+ /* 0x2 */ FLAG_WALL_HIT = 2,
/* 0x4 */ WALL_H_DIRECT = 4,
};
@@ -42,16 +42,18 @@ public:
virtual ~dBgS_AcchCir() {}
#endif
+ void SetWallPolyIndex(int index) { SetPolyIndex(index); }
+
f32 GetWallH() { return m_wall_h; }
f32 GetWallR() { return m_wall_r; }
void SetWallH(f32 h) { m_wall_h = h; }
void ClrWallHDirect() { m_flags &= ~WALL_H_DIRECT; }
- bool ChkWallHit() { return (m_flags & WALL_HIT) != 0; }
+ bool ChkWallHit() { return (m_flags & FLAG_WALL_HIT) != 0; }
s16 GetWallAngleY() { return m_wall_angle_y; }
- bool ChkWallHDirect() { return (m_flags & WALL_H_DIRECT) != 0; }
+ BOOL ChkWallHDirect() { return (m_flags & WALL_H_DIRECT); }
f32 GetWallHDirect() { return m_wall_h_direct; }
f32 GetWallRR() { return m_wall_rr; }
- void SetWallHit() { m_flags |= WALL_HIT; }
+ void SetWallHit() { m_flags |= FLAG_WALL_HIT; }
void SetWallAngleY(s16 i_angle) { m_wall_angle_y = i_angle; }
cM3dGCir* GetCirP() { return &m_cir; }
@@ -62,26 +64,26 @@ class dBgS;
class dBgS_Acch : public cBgS_Chk, public dBgS_Chk {
public:
enum {
- /* 0x000002 */ GRND_NONE = (1 << 1),
- /* 0x000004 */ WALL_NONE = (1 << 2),
- /* 0x000008 */ ROOF_NONE = (1 << 3),
- /* 0x000010 */ WALL_HIT = (1 << 4),
- /* 0x000020 */ GROUND_HIT = (1 << 5),
- /* 0x000040 */ GROUND_FIND = (1 << 6),
- /* 0x000080 */ GROUND_LANDING = (1 << 7),
- /* 0x000100 */ GROUND_AWAY = (1 << 8),
- /* 0x000200 */ ROOF_HIT = (1 << 9),
- /* 0x000400 */ WATER_NONE = (1 << 10),
- /* 0x000800 */ WATER_HIT = (1 << 11),
- /* 0x001000 */ WATER_IN = (1 << 12),
- /* 0x002000 */ LINE_CHECK = (1 << 13),
- /* 0x004000 */ LINE_CHECK_NONE = (1 << 14),
- /* 0x008000 */ CLR_SPEED_Y = (1 << 15),
- /* 0x010000 */ LINE_CHECK_HIT = (1 << 16),
- /* 0x100000 */ MOVE_BG_ONLY = (1 << 20),
- /* 0x200000 */ GND_THIN_CELLING_OFF = (1 << 21),
- /* 0x400000 */ WALL_SORT = (1 << 22),
- /* 0x800000 */ LINE_DOWN = (1 << 23),
+ /* 0x000002 */ FLAG_GRND_NONE = (1 << 1),
+ /* 0x000004 */ FLAG_WALL_NONE = (1 << 2),
+ /* 0x000008 */ FLAG_ROOF_NONE = (1 << 3),
+ /* 0x000010 */ FLAG_WALL_HIT = (1 << 4),
+ /* 0x000020 */ FLAG_GROUND_HIT = (1 << 5),
+ /* 0x000040 */ FLAG_GROUND_FIND = (1 << 6),
+ /* 0x000080 */ FLAG_GROUND_LANDING = (1 << 7),
+ /* 0x000100 */ FLAG_GROUND_AWAY = (1 << 8),
+ /* 0x000200 */ FLAG_ROOF_HIT = (1 << 9),
+ /* 0x000400 */ FLAG_WATER_NONE = (1 << 10),
+ /* 0x000800 */ FLAG_WATER_HIT = (1 << 11),
+ /* 0x001000 */ FLAG_WATER_IN = (1 << 12),
+ /* 0x002000 */ FLAG_LINE_CHECK = (1 << 13),
+ /* 0x004000 */ FLAG_LINE_CHECK_NONE = (1 << 14),
+ /* 0x008000 */ FLAG_CLR_SPEED_Y = (1 << 15),
+ /* 0x010000 */ FLAG_LINE_CHECK_HIT = (1 << 16),
+ /* 0x100000 */ FLAG_MOVE_BG_ONLY = (1 << 20),
+ /* 0x200000 */ FLAG_GND_THIN_CELLING_OFF = (1 << 21),
+ /* 0x400000 */ FLAG_WALL_SORT = (1 << 22),
+ /* 0x800000 */ FLAG_LINE_DOWN = (1 << 23),
};
dBgS_Acch();
@@ -124,56 +126,56 @@ public:
f32 GetRoofHeight() const { return m_roof_height; }
int GetTblSize() { return m_tbl_size; }
void SetLin() { m_lin.SetStartEnd(*pm_old_pos, *pm_pos); }
- bool ChkGroundFind() { return (m_flags & GROUND_FIND) != 0; }
- bool ChkGroundHit() const { return (m_flags & GROUND_HIT) != 0; }
- bool ChkGroundLanding() const { return (m_flags & GROUND_LANDING) != 0; }
- void ClrGroundLanding() { m_flags &= ~GROUND_LANDING; }
- void ClrGroundAway() { m_flags &= ~GROUND_AWAY; }
- void ClrWallHit() { m_flags &= ~WALL_HIT; }
- void SetRoofNone() { m_flags |= ROOF_NONE; }
- void SetRoofHit() { m_flags |= ROOF_HIT; }
- void SetWaterNone() { m_flags |= WATER_NONE; }
- u32 ChkWallHit() const { return m_flags & WALL_HIT; }
- void OffLineCheckHit() { m_flags &= ~LINE_CHECK_HIT; }
- void OffLineCheck() { m_flags &= ~LINE_CHECK; }
- u32 ChkLineCheckNone() const { return (m_flags & LINE_CHECK_NONE) != 0; }
- u32 ChkLineCheck() const { return (m_flags & LINE_CHECK) != 0; }
- void ClrRoofHit() { m_flags &= ~ROOF_HIT; }
- void ClrWaterHit() { m_flags &= ~WATER_HIT; }
- void SetWaterHit() { m_flags |= WATER_HIT; }
- void ClrWaterIn() { m_flags &= ~WATER_IN; }
- void SetWaterIn() { m_flags |= WATER_IN; }
- const u32 MaskWaterIn() const { return m_flags & WATER_IN; }
+ bool ChkGroundFind() { return (m_flags & FLAG_GROUND_FIND) != 0; }
+ bool ChkGroundHit() const { return (m_flags & FLAG_GROUND_HIT) != 0; }
+ bool ChkGroundLanding() const { return (m_flags & FLAG_GROUND_LANDING) != 0; }
+ void ClrGroundLanding() { m_flags &= ~FLAG_GROUND_LANDING; }
+ void ClrGroundAway() { m_flags &= ~FLAG_GROUND_AWAY; }
+ void ClrWallHit() { m_flags &= ~FLAG_WALL_HIT; }
+ void SetRoofNone() { m_flags |= FLAG_ROOF_NONE; }
+ void SetRoofHit() { m_flags |= FLAG_ROOF_HIT; }
+ void SetWaterNone() { m_flags |= FLAG_WATER_NONE; }
+ u32 ChkWallHit() const { return m_flags & FLAG_WALL_HIT; }
+ void OffLineCheckHit() { m_flags &= ~FLAG_LINE_CHECK_HIT; }
+ void OffLineCheck() { m_flags &= ~FLAG_LINE_CHECK; }
+ u32 ChkLineCheckNone() const { return (m_flags & FLAG_LINE_CHECK_NONE); }
+ u32 ChkLineCheck() const { return (m_flags & FLAG_LINE_CHECK); }
+ void ClrRoofHit() { m_flags &= ~FLAG_ROOF_HIT; }
+ void ClrWaterHit() { m_flags &= ~FLAG_WATER_HIT; }
+ void SetWaterHit() { m_flags |= FLAG_WATER_HIT; }
+ void ClrWaterIn() { m_flags &= ~FLAG_WATER_IN; }
+ void SetWaterIn() { m_flags |= FLAG_WATER_IN; }
+ const u32 MaskWaterIn() const { return m_flags & FLAG_WATER_IN; }
const bool ChkWaterIn() const { return MaskWaterIn() != 0; }
- void ClrGroundFind() { m_flags &= ~GROUND_FIND; }
- u32 MaskRoofHit() const { return m_flags & ROOF_HIT; }
+ void ClrGroundFind() { m_flags &= ~FLAG_GROUND_FIND; }
+ u32 MaskRoofHit() const { return m_flags & FLAG_ROOF_HIT; }
bool ChkRoofHit() const { return MaskRoofHit() != 0; }
- void OffClrSpeedY() { m_flags |= CLR_SPEED_Y; }
- void OnClrSpeedY() { m_flags &= ~CLR_SPEED_Y; }
- bool ChkClrSpeedY() const { return !(m_flags & CLR_SPEED_Y); }
- void SetGroundFind() { m_flags |= GROUND_FIND; }
- void SetGroundHit() { m_flags |= GROUND_HIT; }
- void SetGroundLanding() { m_flags |= GROUND_LANDING; }
- void SetGroundAway() { m_flags |= GROUND_AWAY; }
- const u32 MaskWaterHit() const { return m_flags & WATER_HIT; }
+ void OffClrSpeedY() { m_flags |= FLAG_CLR_SPEED_Y; }
+ void OnClrSpeedY() { m_flags &= ~FLAG_CLR_SPEED_Y; }
+ bool ChkClrSpeedY() const { return !(m_flags & FLAG_CLR_SPEED_Y); }
+ void SetGroundFind() { m_flags |= FLAG_GROUND_FIND; }
+ void SetGroundHit() { m_flags |= FLAG_GROUND_HIT; }
+ void SetGroundLanding() { m_flags |= FLAG_GROUND_LANDING; }
+ void SetGroundAway() { m_flags |= FLAG_GROUND_AWAY; }
+ const u32 MaskWaterHit() const { return m_flags & FLAG_WATER_HIT; }
const bool ChkWaterHit() const { return MaskWaterHit() != 0; }
- void ClrWaterNone() { m_flags &= ~WATER_NONE; }
+ void ClrWaterNone() { m_flags &= ~FLAG_WATER_NONE; }
void SetWaterCheckOffset(f32 offset) { m_wtr_chk_offset = offset; }
- void OnLineCheck() { m_flags |= LINE_CHECK; }
- void ClrRoofNone() { m_flags &= ~ROOF_NONE; }
+ void OnLineCheck() { m_flags |= FLAG_LINE_CHECK; }
+ void ClrRoofNone() { m_flags &= ~FLAG_ROOF_NONE; }
void SetRoofCrrHeight(f32 height) { m_roof_crr_height = height; }
void SetWtrChkMode(int mode) { m_wtr_mode = mode; }
- void SetGrndNone() { m_flags |= GRND_NONE; }
- void ClrGrndNone() { m_flags &= ~GRND_NONE; }
- bool ChkMoveBGOnly() const { return (m_flags & MOVE_BG_ONLY) != 0; }
- void SetWallHit() { m_flags |= WALL_HIT; }
- void ClrWallNone() { m_flags &= ~WALL_NONE; }
- void OnLineCheckNone() { m_flags |= LINE_CHECK_NONE; }
- void OffLineCheckNone() { m_flags &= ~LINE_CHECK_NONE; }
- void SetWallNone() { m_flags |= WALL_NONE; }
- void OnLineCheckHit() { m_flags |= LINE_CHECK_HIT; }
- bool ChkGroundAway() const { return (m_flags & GROUND_AWAY) != 0; }
- void ClrGroundHit() { m_flags &= ~GROUND_HIT; }
+ void SetGrndNone() { m_flags |= FLAG_GRND_NONE; }
+ void ClrGrndNone() { m_flags &= ~FLAG_GRND_NONE; }
+ bool ChkMoveBGOnly() const { return (m_flags & FLAG_MOVE_BG_ONLY) != 0; }
+ void SetWallHit() { m_flags |= FLAG_WALL_HIT; }
+ void ClrWallNone() { m_flags &= ~FLAG_WALL_NONE; }
+ void OnLineCheckNone() { m_flags |= FLAG_LINE_CHECK_NONE; }
+ void OffLineCheckNone() { m_flags &= ~FLAG_LINE_CHECK_NONE; }
+ void SetWallNone() { m_flags |= FLAG_WALL_NONE; }
+ void OnLineCheckHit() { m_flags |= FLAG_LINE_CHECK_HIT; }
+ bool ChkGroundAway() const { return (m_flags & FLAG_GROUND_AWAY) != 0; }
+ void ClrGroundHit() { m_flags &= ~FLAG_GROUND_HIT; }
void SetGroundCheckOffset(f32 offset) { m_gnd_chk_offset = offset; }
cM3dGCyl* GetWallBmdCylP() { return &m_wall_cyl; }
@@ -186,7 +188,7 @@ public:
f32 GetWallH(int i_no) { return pm_acch_cir[i_no].GetWallH(); }
f32 GetWallR(int i_no) { return pm_acch_cir[i_no].GetWallR(); }
- bool ChkWallHDirect(int i_no) { return pm_acch_cir[i_no].ChkWallHDirect(); }
+ BOOL ChkWallHDirect(int i_no) { return pm_acch_cir[i_no].ChkWallHDirect(); }
f32 GetWallHDirect(int i_no) { return pm_acch_cir[i_no].GetWallHDirect(); }
f32 GetWallRR(int i_no) { return pm_acch_cir[i_no].GetWallRR(); }
void SetWallCirHit(int i_no) { pm_acch_cir[i_no].SetWallHit(); }
diff --git a/include/d/d_bg_s_cap_poly.h b/include/d/d_bg_s_cap_poly.h
deleted file mode 100644
index ca4a38542c..0000000000
--- a/include/d/d_bg_s_cap_poly.h
+++ /dev/null
@@ -1,19 +0,0 @@
-#ifndef D_BG_D_BG_S_CAPT_POLY_H
-#define D_BG_D_BG_S_CAPT_POLY_H
-
-#include "d/d_bg_s_chk.h"
-#include "SSystem/SComponent/c_m3d_g_aab.h"
-
-class dBgS_CaptPoly;
-
-typedef void (*CaptPolyCallback)(dBgS_CaptPoly&, cBgD_Vtx_t*, u16, u16, u16, cM3dGPla*);
-
-struct dBgS_CaptPoly : public cBgS_Chk, public dBgS_Chk {
-public:
- cM3dGAab* GetBndP() { return &m_pos;}
-
- /* 0x2C */ cM3dGAab m_pos;
- /* 0x48 */ CaptPolyCallback m_callback;
-};
-
-#endif
diff --git a/include/d/d_bg_s_capt_poly.h b/include/d/d_bg_s_capt_poly.h
index 69a36ce247..9e61d74336 100644
--- a/include/d/d_bg_s_capt_poly.h
+++ b/include/d/d_bg_s_capt_poly.h
@@ -1,18 +1,24 @@
-#ifndef _D_BG_S_CAPT_POLY_H
-#define _D_BG_S_CAPT_POLY_H
+#ifndef D_BG_D_BG_S_CAPT_POLY_H
+#define D_BG_D_BG_S_CAPT_POLY_H
#include "d/d_bg_s_chk.h"
#include "SSystem/SComponent/c_m3d_g_aab.h"
-#include "SSystem/SComponent/c_xyz.h"
-class dBgS_CaptPoly : public cBgS_Chk, public dBgS_Chk {
+struct dBgS_CaptPoly;
+
+typedef int (*CaptPolyCallback)(dBgS_CaptPoly*, cBgD_Vtx_t*, int, int, int, cM3dGPla*);
+
+struct dBgS_CaptPoly : public cBgS_Chk, public dBgS_Chk {
public:
dBgS_CaptPoly();
~dBgS_CaptPoly() {}
void Set(cXyz&, cXyz&);
- /* 0x24 */ cM3dGAab aab;
- /* 0x48 */ int field_0x48;
+ void SetCallback(CaptPolyCallback callback) { m_callback = callback; }
+ cM3dGAab* GetBndP() { return &m_bnd;}
+
+ /* 0x2C */ cM3dGAab m_bnd;
+ /* 0x48 */ CaptPolyCallback m_callback;
};
-#endif /* _D_BG_S_CAPT_POLY_H */
+#endif
diff --git a/include/d/d_bg_s_grp_pass_chk.h b/include/d/d_bg_s_grp_pass_chk.h
index c58300e68b..eea3414b98 100644
--- a/include/d/d_bg_s_grp_pass_chk.h
+++ b/include/d/d_bg_s_grp_pass_chk.h
@@ -20,6 +20,7 @@ public:
void OffWaterGrp() { mGrp &= ~WATER_GRP; }
void OnNormalGrp() { mGrp |= NORMAL_GRP; }
void OffNormalGrp() { mGrp &= ~NORMAL_GRP; }
+ void OnFullGrp() { mGrp |= FULL_GRP; }
void OffFullGrp() { mGrp &= ~FULL_GRP; }
void OnAll() { mGrp |= FULL_GRP; }
u32 MaskNormalGrp() { return mGrp & NORMAL_GRP; }
diff --git a/include/d/d_bg_s_sph_chk.h b/include/d/d_bg_s_sph_chk.h
index a7734563c6..200a46d89b 100644
--- a/include/d/d_bg_s_sph_chk.h
+++ b/include/d/d_bg_s_sph_chk.h
@@ -15,6 +15,7 @@ public:
dBgS_SphChk();
virtual ~dBgS_SphChk();
+ void Init() { ClearPi(); }
void SetCallback(SphChk_Callback i_callback) { mCallback = i_callback; }
/* 0x50 */ SphChk_Callback mCallback;
diff --git a/include/d/d_bg_s_spl_grp_chk.h b/include/d/d_bg_s_spl_grp_chk.h
index bc8567eec5..447bbf4d73 100644
--- a/include/d/d_bg_s_spl_grp_chk.h
+++ b/include/d/d_bg_s_spl_grp_chk.h
@@ -24,7 +24,7 @@ public:
void OffMoveBGOnly() { m_flags &= ~MOVE_BG_ONLY; }
void OnMoveBGOnly() { m_flags |= MOVE_BG_ONLY; }
void OnFind() { m_flags |= FIND; }
- bool ChkMoveBGOnly() { return m_flags & MOVE_BG_ONLY; }
+ BOOL ChkMoveBGOnly() { return m_flags & MOVE_BG_ONLY; }
void SetHeight(f32 height) { m_height = height; }
f32 GetHeight() { return m_height; }
cXyz& GetPosP() { return m_ground; }
diff --git a/include/d/d_bg_w.h b/include/d/d_bg_w.h
index 09970f9f4d..592ae177a5 100644
--- a/include/d/d_bg_w.h
+++ b/include/d/d_bg_w.h
@@ -153,6 +153,10 @@ public:
u32 GetMaskPolyInf1_NoShift(int, u32) const;
u32 GetPolyInf2(int, u32, u32) const;
int GetTriGrp(int) const;
+
+ #if DEBUG
+ void DebugLocalPos();
+ #endif
virtual ~cBgW();
virtual bool ChkMemoryError();
@@ -215,23 +219,23 @@ public:
virtual bool ChkShdwDrawThrough(int, cBgS_PolyPassChk*);
virtual bool ChkGrpThrough(int, cBgS_GrpPassChk*, int);
- u32 GetOldInvMtx(Mtx m) { return MTXInverse(m_inv_mtx, m); }
- MtxP GetBaseMtxP() { return pm_base; }
- bool ChkNoCalcVtx() { return mFlags & NO_CALC_VTX_e; }
- bool ChkFlush() { return field_0x91 & 8; }
+ u32 GetOldInvMtx(Mtx m) const { return PSMTXInverse(m_inv_mtx, m); }
+ MtxP GetBaseMtxP() { return *pm_base; }
+ BOOL ChkNoCalcVtx() { return mFlags & NO_CALC_VTX_e; }
+ BOOL ChkFlush() { return field_0x91 & 8; }
void SetLock() { mFlags |= (u8)LOCK_e; }
void OffRoofRegist() { field_0x91 |= (u8)0x4; }
void OnRoofRegist() { field_0x91 &= ~0x04; }
- bool ChkRoofRegist() { return field_0x91 & 4;}
+ bool ChkRoofRegist() { return (field_0x91 & 4) == 0;}
cBgD_Vtx_t* GetVtxTbl() const { return pm_vtx_tbl; }
int GetVtxNum() const { return pm_bgd->m_v_num; }
void ClrNoCalcVtx() { mFlags &= ~NO_CALC_VTX_e; }
- void SetBaseMtxP(MtxP mtx) { pm_base = mtx; }
+ void SetBaseMtxP(Mtx* mtx) { pm_base = mtx; }
void SetNoCalcVtx() { mFlags |= NO_CALC_VTX_e; }
cBgD_t* GetBgd() const { return pm_bgd; }
public:
- /* 0x18 */ MtxP pm_base; // Model Matrix
+ /* 0x18 */ Mtx* pm_base; // Model Matrix
/* 0x1C */ Mtx m_inv_mtx;
/* 0x4C */ Mtx m_mtx;
/* 0x7C */ cXyz mTransVel;
@@ -330,10 +334,16 @@ public:
virtual bool ChkShdwDrawThrough(int, cBgS_PolyPassChk*);
virtual bool ChkGrpThrough(int, cBgS_GrpPassChk*, int);
+ #if DEBUG
+ void DrawBox() const;
+ void DebugDraw() const;
+ void DrawPoly(const cBgS_PolyInfo&, const GXColor&) const;
+ #endif
+
void SetCrrFunc(dBgW_CrrFunc func) { m_crr_func = func; }
void SetRideCallback(dBgW_RideCallback func) { m_ride_callback = func; }
void SetArrowStickCallback(dBgW_ArrowStickCallback func) { m_arrow_stick_callback = func; }
- void OnMoveFlag() { m_flags |= 1; }
+ void OnMoveFlag() { m_flags |= (u8)1; }
private:
/* 0xB0 */ dBgW_CrrFunc m_crr_func;
@@ -344,4 +354,8 @@ private:
dBgW* dBgW_NewSet(cBgD_t* pbgd, u32 flags, Mtx* pbase_mtx);
+#if DEBUG
+extern u8 lbl_8074C7F0;
+#endif
+
#endif /* D_BG_D_BG_W_H */
diff --git a/include/d/d_bg_w_base.h b/include/d/d_bg_w_base.h
index b8127cde6a..900b87c307 100644
--- a/include/d/d_bg_w_base.h
+++ b/include/d/d_bg_w_base.h
@@ -106,16 +106,16 @@ public:
virtual void CallArrowStickCallBack(fopAc_ac_c*, fopAc_ac_c*, cXyz&);
#if DEBUG
- virtual void DebugDraw() {}
- virtual void DrawPoly(cBgS_PolyInfo const& param_0, GXColor const& param_1) {}
- virtual void DebugBox() {}
+ virtual void DebugDraw() const {}
+ virtual void DrawPoly(cBgS_PolyInfo const& param_0, GXColor const& param_1) const {}
+ virtual void DrawBox() const {}
#endif
PushPull_CallBack GetPushPullCallback() const { return m_pushPull_Callback; }
s16 GetDiffShapeAngleY() { return m_diff_ShapeAngleY; }
int GetRoomId() { return m_roomId; }
- bool chkStickWall() { return field_0xb & 1; }
- bool chkStickRoof() { return field_0xb & 2; }
+ BOOL chkStickWall() { return field_0xb & 1; }
+ BOOL chkStickRoof() { return field_0xb & 2; }
bool ChkPushPullOk() const { return m_pushPull_Ok; }
void SetPushPullCallback(PushPull_CallBack i_callBack) { m_pushPull_Callback = i_callBack; }
void SetRoomId(int id) { m_roomId = id; }
diff --git a/include/d/d_com_inf_game.h b/include/d/d_com_inf_game.h
index cc233eb750..1d6edbb860 100644
--- a/include/d/d_com_inf_game.h
+++ b/include/d/d_com_inf_game.h
@@ -616,6 +616,7 @@ public:
void setItemMaxMagicCount(s16 max) { mItemInfo.mItemMaxMagicCount += max; }
s32 getItemOilCount() { return mItemInfo.mItemOilCount; }
void setItemOilCount(s32 oil) { mItemInfo.mItemOilCount += oil; }
+ void setItemMaxOilCount(s32 oil) { mItemInfo.mItemMaxOilCount += oil; }
void clearItemOilCount() { mItemInfo.mItemOilCount = 0; }
s32 getItemNowOil() { return mItemInfo.mItemNowOil; }
void setItemNowOil(s32 oil) { mItemInfo.mItemNowOil = oil; }
@@ -630,6 +631,7 @@ public:
s32 getOxygenCount() { return mItemInfo.mOxygenCount; }
void setOxygenCount(s32 oxygen) { mItemInfo.mOxygenCount += oxygen; }
void clearOxygenCount() { mItemInfo.mOxygenCount = 0; }
+ void setMaxOxygenCount(s32 oxygen) { mItemInfo.mMaxOxygenCount += oxygen; }
s32 getMaxOxygenCount() { return mItemInfo.mMaxOxygenCount; }
void clearMaxOxygenCount() { mItemInfo.mMaxOxygenCount = 0; }
s16 getItemArrowNumCount() { return mItemInfo.mItemArrowNumCount; }
@@ -1615,6 +1617,10 @@ inline u8 dComIfGs_getBombMax(u8 i_bombType) {
return g_dComIfG_gameInfo.info.getPlayer().getItemMax().getBombNum(i_bombType);
}
+inline void dComIfGs_setPohSpiritNum(u8 i_num) {
+ g_dComIfG_gameInfo.info.getPlayer().getCollect().setPohNum(i_num);
+}
+
inline u8 dComIfGs_getPohSpiritNum() {
return g_dComIfG_gameInfo.info.getPlayer().getCollect().getPohNum();
}
@@ -1623,6 +1629,10 @@ inline void dComIfGs_addPohSpiritNum() {
g_dComIfG_gameInfo.info.getPlayer().getCollect().addPohNum();
}
+inline BOOL dComIfGs_isCollectClothes(u8 i_clothesNo) {
+ return g_dComIfG_gameInfo.info.getPlayer().getCollect().isCollect(COLLECT_CLOTHING, i_clothesNo);
+}
+
inline void dComIfGs_setCollectClothes(u8 i_clothesNo) {
g_dComIfG_gameInfo.info.getPlayer().getCollect().setCollect(COLLECT_CLOTHING, i_clothesNo);
}
@@ -1640,18 +1650,34 @@ inline BOOL dComIfGs_isCollectClothing(u8 i_clothesNo) {
i_clothesNo);
}
+inline void dComIfGs_offCollectClothes(u8 i_clothesNo) {
+ g_dComIfG_gameInfo.info.getPlayer().getCollect().offCollect(COLLECT_CLOTHING, i_clothesNo);
+}
+
inline BOOL dComIfGs_isCollectSword(u8 i_swordNo) {
return g_dComIfG_gameInfo.info.getPlayer().getCollect().isCollect(COLLECT_SWORD, i_swordNo);
}
+inline void dComIfGs_offCollectSword(u8 i_swordNo) {
+ g_dComIfG_gameInfo.info.getPlayer().getCollect().offCollect(COLLECT_SWORD, i_swordNo);
+}
+
inline BOOL dComIfGs_isCollectShield(u8 i_item) {
return g_dComIfG_gameInfo.info.getPlayer().getCollect().isCollect(COLLECT_SHIELD, i_item);
}
+inline void dComIfGs_offCollectShield(u8 i_shieldNo) {
+ g_dComIfG_gameInfo.info.getPlayer().getCollect().offCollect(COLLECT_SHIELD, i_shieldNo);
+}
+
inline void dComIfGs_onCollectCrystal(u8 i_item) {
g_dComIfG_gameInfo.info.getPlayer().getCollect().onCollectCrystal(i_item);
}
+inline void dComIfGs_offCollectCrystal(u8 i_item) {
+ g_dComIfG_gameInfo.info.getPlayer().getCollect().offCollectCrystal(i_item);
+}
+
inline bool dComIfGs_isCollectCrystal(u8 i_item) {
return g_dComIfG_gameInfo.info.getPlayer().getCollect().isCollectCrystal(i_item);
}
@@ -1660,6 +1686,10 @@ inline void dComIfGs_onCollectMirror(u8 i_item) {
g_dComIfG_gameInfo.info.getPlayer().getCollect().onCollectMirror(i_item);
}
+inline void dComIfGs_offCollectMirror(u8 i_item) {
+ g_dComIfG_gameInfo.info.getPlayer().getCollect().offCollectMirror(i_item);
+}
+
inline bool dComIfGs_isCollectMirror(u8 i_item) {
return g_dComIfG_gameInfo.info.getPlayer().getCollect().isCollectMirror(i_item);
}
@@ -3457,7 +3487,7 @@ inline u8 dComIfGp_getItemLifeCountType() {
return g_dComIfG_gameInfo.play.getItemLifeCountType();
}
-inline void dComIfGp_setItemLifeCount(float amount, u8 type) {
+inline void dComIfGp_setItemLifeCount(f32 amount, u8 type) {
g_dComIfG_gameInfo.play.setItemLifeCount(amount, type);
}
@@ -3521,6 +3551,10 @@ inline void dComIfGp_setItemOilCount(s32 oil) {
g_dComIfG_gameInfo.play.setItemOilCount(oil);
}
+inline void dComIfGp_setItemMaxOilCount(s32 oil) {
+ g_dComIfG_gameInfo.play.setItemMaxOilCount(oil);
+}
+
inline void dComIfGp_clearItemOilCount() {
g_dComIfG_gameInfo.play.clearItemOilCount();
}
@@ -3577,6 +3611,10 @@ inline void dComIfGp_clearOxygenCount() {
g_dComIfG_gameInfo.play.clearOxygenCount();
}
+inline void dComIfGp_setMaxOxygenCount(s32 oxygen) {
+ g_dComIfG_gameInfo.play.setMaxOxygenCount(oxygen);
+}
+
inline s32 dComIfGp_getMaxOxygenCount() {
return g_dComIfG_gameInfo.play.getMaxOxygenCount();
}
diff --git a/include/d/d_menu_window_HIO.h b/include/d/d_menu_window_HIO.h
index 1df1b5cb72..b5d5c81fb4 100644
--- a/include/d/d_menu_window_HIO.h
+++ b/include/d/d_menu_window_HIO.h
@@ -1,75 +1,83 @@
#ifndef D_MENU_D_MENU_WINDOW_HIO_H
#define D_MENU_D_MENU_WINDOW_HIO_H
-#include <types.h>
+#include "JSystem/JHostIO/JORReflexible.h"
-class dMw_DHIO_c {
+class dMw_DHIO_c : public JORReflexible {
public:
dMw_DHIO_c();
virtual ~dMw_DHIO_c() {}
+ void genMessage(JORMContext*);
+
+ void bitCheck();
/* 0x004 */ s8 field_0x4;
- /* 0x005 */ bool mMap[32];
- /* 0x025 */ bool mCompass[32];
- /* 0x045 */ bool mBossKey[32];
- /* 0x065 */ bool mBossClear[32];
- /* 0x085 */ bool mHeartContainer[32];
- /* 0x0A5 */ bool mBossDemo[32];
- /* 0x0C5 */ bool mPortal[32];
- /* 0x0E5 */ bool mMidBossClear[32];
- /* 0x105 */ bool mMapCopy[32];
- /* 0x125 */ bool mCompassCopy[32];
- /* 0x145 */ bool mBossKeyCopy[32];
- /* 0x165 */ bool mBossClearCopy[32];
- /* 0x185 */ bool mHeartContainerCopy[32];
- /* 0x1A5 */ bool mBossDemoCopy[32];
- /* 0x1C5 */ bool mPortalCopy[32];
- /* 0x1E5 */ bool mMidBossClearCopy[32];
+ /* 0x005 */ u8 mMap[32];
+ /* 0x025 */ u8 mCompass[32];
+ /* 0x045 */ u8 mBossKey[32];
+ /* 0x065 */ u8 mBossClear[32];
+ /* 0x085 */ u8 mHeartContainer[32];
+ /* 0x0A5 */ u8 mBossDemo[32];
+ /* 0x0C5 */ u8 mPortal[32];
+ /* 0x0E5 */ u8 mMidBossClear[32];
+ /* 0x105 */ u8 mMapCopy[32];
+ /* 0x125 */ u8 mCompassCopy[32];
+ /* 0x145 */ u8 mBossKeyCopy[32];
+ /* 0x165 */ u8 mBossClearCopy[32];
+ /* 0x185 */ u8 mHeartContainerCopy[32];
+ /* 0x1A5 */ u8 mBossDemoCopy[32];
+ /* 0x1C5 */ u8 mPortalCopy[32];
+ /* 0x1E5 */ u8 mMidBossClearCopy[32];
};
extern dMw_DHIO_c g_mwDHIO;
-class dMw_HIO_c {
+class dMw_HIO_c : public JORReflexible {
public:
dMw_HIO_c();
void init();
- bool getBombFlag();
- bool getArrowFlag();
- bool getPachinkoFlag();
+ u8 getBombFlag();
+ u8 getArrowFlag();
+ u8 getPachinkoFlag();
void update();
+ void playerStatusHIO();
+ void itemBitCheck();
+ void itemNumHIO();
+ void itemHIO();
void setArrowFlag(u8 i_flag) { mArrowFlag = i_flag; }
void setPachinkoFlag(u8 i_flag) { mPachinkoFlag = i_flag; }
void setBombFlag(u8 i_flag) { mBombFlag = i_flag; }
virtual ~dMw_HIO_c() {}
+ void genMessage(JORMContext*);
/* 0x004 */ s8 field_0x4;
- /* 0x006 */ u16 mLife;
- /* 0x008 */ u16 mMaxLife;
+ /* 0x006 */ s16 mLife;
+ /* 0x008 */ s16 mMaxLife;
/* 0x00A */ u8 mMagic;
/* 0x00B */ u8 mMaxMagic;
/* 0x00C */ s32 mOil;
/* 0x010 */ s32 mMaxOil;
/* 0x014 */ s32 mOxygen;
/* 0x018 */ s32 mMaxOxygen;
- /* 0x01C */ bool mEnableMagic;
- /* 0x01D */ bool mEnableArrowDrops;
+ /* 0x01C */ u8 mEnableMagic;
+ /* 0x01D */ u8 mEnableArrowDrops;
/* 0x01E */ s16 mRupees;
/* 0x020 */ s16 mWalletSize;
/* 0x022 */ u8 mKeys;
/* 0x023 */ u8 field_0x23;
- /* 0x024 */ u16 mLifeCopy;
- /* 0x026 */ u16 mMaxLifeCopy;
+ /* 0x024 */ s16 mLifeCopy;
+ /* 0x026 */ s16 mMaxLifeCopy;
/* 0x028 */ u8 mMagicCopy;
/* 0x029 */ u8 mMaxMagicCopy;
/* 0x02C */ s32 mOilCopy;
/* 0x030 */ s32 mMaxOilCopy;
/* 0x034 */ s32 mOxygenCopy;
/* 0x038 */ s32 mMaxOxygenCopy;
- /* 0x03C */ bool mEnableMagicCopy;
- /* 0x03D */ bool mEnableArrowDropsCopy;
+ /* 0x03C */ u8 mEnableMagicCopy;
+ /* 0x03D */ u8 mEnableArrowDropsCopy;
/* 0x03E */ s16 mRupeesCopy;
/* 0x040 */ s16 mWalletSizeCopy;
/* 0x042 */ s16 mDonationAmount;
@@ -81,23 +89,23 @@ public:
/* 0x04A */ u8 mItems[24];
/* 0x062 */ u8 mItemsCopy[24];
/* 0x07A */ u8 field_0x7a[24];
- /* 0x092 */ bool mSwords[4];
- /* 0x096 */ bool mShields[3];
- /* 0x099 */ bool mClothes[3];
- /* 0x09C */ bool mSwordsCopy[4];
- /* 0x0A0 */ bool mShieldsCopy[3];
- /* 0x0A3 */ bool mClothesCopy[3];
+ /* 0x092 */ u8 mSwords[4];
+ /* 0x096 */ u8 mShields[3];
+ /* 0x099 */ u8 mClothes[3];
+ /* 0x09C */ u8 mSwordsCopy[4];
+ /* 0x0A0 */ u8 mShieldsCopy[3];
+ /* 0x0A3 */ u8 mClothesCopy[3];
/* 0x0A6 */ u8 mScent;
/* 0x0A7 */ u8 mScentCopy;
/* 0x0A8 */ u8 field_0xa8;
- /* 0x0A9 */ bool mBombBagLV2;
- /* 0x0AA */ bool mBombBagLV2Copy;
- /* 0x0AB */ bool mLV2KeyShards[3];
- /* 0x0AE */ bool mLV2KeyShardsCopy[3];
- /* 0x0B1 */ bool mLV5Item[2];
- /* 0x0B3 */ bool mLV5ItemCopy[2];
- /* 0x0B5 */ bool mGoldBug[24];
- /* 0x0CD */ bool mGoldBugCopy[24];
+ /* 0x0A9 */ u8 mBombBagLV2;
+ /* 0x0AA */ u8 mBombBagLV2Copy;
+ /* 0x0AB */ u8 mLV2KeyShards[3];
+ /* 0x0AE */ u8 mLV2KeyShardsCopy[3];
+ /* 0x0B1 */ u8 mLV5Item[2];
+ /* 0x0B3 */ u8 mLV5ItemCopy[2];
+ /* 0x0B5 */ u8 mGoldBug[24];
+ /* 0x0CD */ u8 mGoldBugCopy[24];
/* 0x0E5 */ u8 mArrowNum;
/* 0x0E6 */ u8 mSeedNum;
/* 0x0E7 */ u8 mBombNum[3];
@@ -112,15 +120,15 @@ public:
/* 0x101 */ u8 field_0x101[8];
/* 0x109 */ u8 field_0x109[8];
/* 0x111 */ u8 field_0x111[8];
- /* 0x119 */ bool mEnableOxygenMeter;
- /* 0x11A */ bool mEnableOxygenMeterCopy;
+ /* 0x119 */ u8 mEnableOxygenMeter;
+ /* 0x11A */ u8 mEnableOxygenMeterCopy;
/* 0x11B */ u8 mArrowFlag;
/* 0x11C */ u8 mPachinkoFlag;
/* 0x11D */ u8 mBombFlag;
- /* 0x11E */ bool mFusedShadow[4];
- /* 0x122 */ bool mFusedShadowCopy[4];
- /* 0x126 */ bool mMirrorShard[4];
- /* 0x12A */ bool mMirrorShardCopy[4];
+ /* 0x11E */ u8 mFusedShadow[4];
+ /* 0x122 */ u8 mFusedShadowCopy[4];
+ /* 0x126 */ u8 mMirrorShard[4];
+ /* 0x12A */ u8 mMirrorShardCopy[4];
}; // Size: 0x130
extern dMw_HIO_c g_mwHIO;
diff --git a/include/d/d_msg_object.h b/include/d/d_msg_object.h
index 2ef3f0ad69..45606e4e81 100644
--- a/include/d/d_msg_object.h
+++ b/include/d/d_msg_object.h
@@ -557,6 +557,11 @@ inline bool dMsgObject_isSelectTalkNowCheck() {
return dMsgObject_getMsgObjectClass()->getStatus() != 8 || (dMsgObject_getMsgObjectClass()->getStatus() != 9 && dMsgObject_getMsgObjectClass()->getStatus() != 20);
}
+inline void dMsgObject_setOffering(u16 i_num) {
+ dComIfGs_setEventReg(0xF7FF, i_num >> 8);
+ dComIfGs_setEventReg(0xF8FF, i_num & 0xFF);
+}
+
class dMsgObject_HowlHIO_c {
public:
dMsgObject_HowlHIO_c();
diff --git a/include/d/d_save.h b/include/d/d_save.h
index e56137ef51..3bcb4766a0 100644
--- a/include/d/d_save.h
+++ b/include/d/d_save.h
@@ -396,12 +396,14 @@ public:
void offCollectMirror(u8 i_item);
BOOL isCollectMirror(u8 i_item) const;
+ void setPohNum(u8 i_num) { mPohNum = i_num; }
u8 getPohNum() const { return mPohNum; }
+
void addPohNum() {
if (mPohNum < 0xFF) {
mPohNum++;
}
- };
+ }
private:
/* 0x0 */ u8 mItem[8];