diff options
| author | YunataSavior <58997725+YunataSavior@users.noreply.github.com> | 2025-05-19 08:40:57 -0700 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-05-19 18:40:57 +0300 |
| commit | 9ffb52027a27a2e3c6ad6bb8b954ff0924db2503 (patch) | |
| tree | e8c4112706100f782ce72ce0f39aa70d05866725 /include | |
| parent | 75443954d41142a644ce58cc6d1532fd29d2fd55 (diff) | |
Debug and various d_ev_camera fixes (#2448)
Diffstat (limited to 'include')
| -rw-r--r-- | include/SSystem/SComponent/c_angle.h | 1 | ||||
| -rw-r--r-- | include/d/actor/d_a_obj_lv6SzGate.h | 2 | ||||
| -rw-r--r-- | include/d/d_camera.h | 48 |
3 files changed, 37 insertions, 14 deletions
diff --git a/include/SSystem/SComponent/c_angle.h b/include/SSystem/SComponent/c_angle.h index cc98ae4c5b..fc3436c64f 100644 --- a/include/SSystem/SComponent/c_angle.h +++ b/include/SSystem/SComponent/c_angle.h @@ -44,6 +44,7 @@ public: bool operator>(const cSAngle& other) const { return mAngle > other.mAngle; } bool operator<=(const cSAngle& other) const { return mAngle <= other.mAngle; } bool operator>=(const cSAngle& other) const { return mAngle >= other.mAngle; } + bool operator==(const cSAngle& other) const { return mAngle == other.mAngle; } operator s16(void) const { return mAngle; } void operator=(const cSAngle& other) { mAngle = other.mAngle; } static inline cSAngle getMaxNegative(void) { return cSAngle((s16)-0x8000); } diff --git a/include/d/actor/d_a_obj_lv6SzGate.h b/include/d/actor/d_a_obj_lv6SzGate.h index 023a191cea..68fad4fa2a 100644 --- a/include/d/actor/d_a_obj_lv6SzGate.h +++ b/include/d/actor/d_a_obj_lv6SzGate.h @@ -67,6 +67,8 @@ public: /* 80C7586C */ daLv6SzGate_HIO_c(); /* 80C76584 */ virtual ~daLv6SzGate_HIO_c() {}; + void genMessage(JORMContext*); + /* 0x04 */ f32 mSpeed; /* 0x08 */ f32 field_0x08; /* 0x0C */ f32 field_0x0c; diff --git a/include/d/d_camera.h b/include/d/d_camera.h index 4f9ddfec5a..b744fb3b71 100644 --- a/include/d/d_camera.h +++ b/include/d/d_camera.h @@ -140,6 +140,8 @@ class camera_class; class dCamera_c; typedef bool (dCamera_c::*engine_fn)(s32); +#pragma warn_illunionmembers off + class dCamera_c { public: class dCamInfo_c { @@ -442,6 +444,11 @@ public: static engine_fn engine_tbl[]; +#if VERSION == VERSION_SHIELD_DEBUG + // In the debug rom, there's D8 bytes preceeding all other members. + // The following is a stopgap: + u8 mFillerBytes[0xD8]; +#endif /* 0x000 */ camera_class* field_0x0; /* 0x004 */ int mRoomNo; /* 0x008 */ u8 field_0x8[0x20 - 0x8]; @@ -744,7 +751,7 @@ public: /* 0x14 */ cXyz field_0x14; /* 0x20 */ bool field_0x20; } hookshot; - struct { + struct event { /* 0x00 */ bool field_0x0; /* 0x01 */ bool field_0x1; /* 0x04 */ int field_0x4; @@ -771,10 +778,19 @@ public: /* 0x60 */ u8 field_0x60[0x6c - 0x60]; /* 0x6C */ int field_0x6c; } event; - struct { - /* 0x00 */ + struct fixedFrame { + /* 0x00 */ bool field_0x0; + /* 0x04 */ cXyz field_0x4; + /* 0x10 */ cXyz field_0x10; + /* 0x1C */ f32 field_0x1c; + /* 0x20 */ f32 field_0x20; + /* 0x24 */ fopAc_ac_c* mpRelActor; + /* 0x28 */ char mRelUseMask[4]; + /* 0x2C */ int mTimer; + /* 0x30 */ bool field_0x30; + /* 0x34 */ cXyz mBasePos; } fixedFrame; - struct { + struct stoker { /* 0x00 */ bool field_0x0; /* 0x01 */ bool field_0x1; /* 0x02 */ u8 field_0x2[2]; @@ -789,18 +805,19 @@ public: /* 0x34 */ fpc_ProcID field_0x34; /* 0x38 */ fpc_ProcID field_0x38; /* 0x3C */ u8 field_0x3c[0x40 - 0x3c]; - /* 0x40 */ u32 field_0x40; + /* 0x40 */ int field_0x40; } stoker; - struct { - /* 0x00 */ u8 field_0x0[0x4 - 0x0]; + struct rolling { + /* 0x00 */ bool field_0x0; + /* 0x00 */ bool field_0x1; /* 0x04 */ cXyz field_0x4; /* 0x10 */ cXyz field_0x10; /* 0x1C */ cXyz mEye; /* 0x28 */ cXyz mCenter; /* 0x34 */ f32 mFovy; /* 0x38 */ f32 mBank; - /* 0x3C */ fopAc_ac_c* mRelActor; - /* 0x40 */ fopAc_ac_c* field_0x40; + /* 0x3C */ fopAc_ac_c* mpRelActor; + /* 0x40 */ char mRelActor[4]; /* 0x44 */ int mTimer; /* 0x48 */ int mTransType; /* 0x4C */ f32 mRoll; @@ -808,10 +825,11 @@ public: /* 0x54 */ f32 mLatitude; /* 0x58 */ f32 mCtrCus; } rolling; - struct { - /* 0x00 */ u8 field_0x0[0x4 - 0x0]; + struct fixedPos { + /* 0x00 */ bool field_0x0; + /* 0x00 */ bool field_0x1; /* 0x04 */ cXyz field_0x4; - /* 0x10 */ u8 field_0x10[0x1c - 0x10]; + /* 0x10 */ cXyz field_0x10; /* 0x1C */ cXyz field_0x1c; /* 0x28 */ f32 field_0x28; /* 0x2C */ f32 field_0x2c; @@ -879,6 +897,7 @@ public: /* 0x020 */ f32 field_0x20; /* 0x024 */ int field_0x24; /* 0x028 */ f32 field_0x28; + /* 0x02C */ u8 field_0x2c[0x034 - 0x02C]; /* 0x034 */ fopAc_ac_c* field_0x34; /* 0x038 */ cSGlobe field_0x38; /* 0x040 */ int field_0x40; @@ -886,7 +905,6 @@ public: /* 0x048 */ dCamInfo_c field_0x48; /* 0x068 */ int field_0x68; /* 0x06C */ u8 field_0x6c[0x100 - 0x6c]; - /* 0x100 */ cSAngle field_0x100; } restorePos; struct gameOver { /* 0x00 */ int field_0x0; @@ -896,7 +914,7 @@ public: /* 0x10 */ cXyz field_0x10; /* 0x1C */ cSGlobe field_0x1c; /* 0x24 */ u8 field_0x24[0x3c - 0x24]; - /* 0x3C */ u8 field_0x3c; + /* 0x3C */ bool field_0x3c; } gameOver; struct tact { /* 0x00 */ int field_0x0; @@ -1163,6 +1181,8 @@ public: /* 0xB0D */ u8 field_0xb0d[0xd58 - 0xb0d]; }; // Size: 0xD58 +#pragma warn_illunionmembers on + dCamera_c* dCam_getBody(); camera_class* dCam_getCamera(); s16 dCam_getControledAngleY(camera_class* param_0); |
