diff options
| author | TakaRikka <38417346+TakaRikka@users.noreply.github.com> | 2026-03-17 03:44:11 -0700 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2026-03-17 03:44:11 -0700 |
| commit | 9f340b604b5ac3d19d330b7bd6a2d7355c58bc27 (patch) | |
| tree | 1db19763775c1b495235e05bd6ae1471a8bb53fb /include/d | |
| parent | ae0f8909a6ad9d1df2cf247a2538ff658d6e49c0 (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.h | 179 | ||||
| -rw-r--r-- | include/d/d_bg_s_acch.h | 140 | ||||
| -rw-r--r-- | include/d/d_bg_s_cap_poly.h | 19 | ||||
| -rw-r--r-- | include/d/d_bg_s_capt_poly.h | 20 | ||||
| -rw-r--r-- | include/d/d_bg_s_grp_pass_chk.h | 1 | ||||
| -rw-r--r-- | include/d/d_bg_s_sph_chk.h | 1 | ||||
| -rw-r--r-- | include/d/d_bg_s_spl_grp_chk.h | 2 | ||||
| -rw-r--r-- | include/d/d_bg_w.h | 30 | ||||
| -rw-r--r-- | include/d/d_bg_w_base.h | 10 | ||||
| -rw-r--r-- | include/d/d_com_inf_game.h | 40 | ||||
| -rw-r--r-- | include/d/d_menu_window_HIO.h | 108 | ||||
| -rw-r--r-- | include/d/d_msg_object.h | 5 | ||||
| -rw-r--r-- | include/d/d_save.h | 4 |
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(¶m_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]; |
