diff options
| author | Max Roncace <me@caseif.net> | 2026-01-11 22:20:17 -0500 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2026-01-11 19:20:17 -0800 |
| commit | decb0c543799398b7e1d1ccb8fbbfe6937f5dbc0 (patch) | |
| tree | 494520cb90d14ea02a5ba2f1e24231b4c5956210 /include | |
| parent | 2dd7e2ea62daaa33195b2adbca8b086ceaa6d464 (diff) | |
d_camera debug almost matching (#3032)
Diffstat (limited to 'include')
| -rw-r--r-- | include/SSystem/SComponent/c_m3d_g_pla.h | 2 | ||||
| -rw-r--r-- | include/d/actor/d_a_alink.h | 2 | ||||
| -rw-r--r-- | include/d/actor/d_a_e_rb.h | 1 | ||||
| -rw-r--r-- | include/d/actor/d_a_e_ws.h | 1 | ||||
| -rw-r--r-- | include/d/d_cam_param.h | 132 | ||||
| -rw-r--r-- | include/d/d_camera.h | 158 | ||||
| -rw-r--r-- | include/d/d_debug_camera.h | 2 | ||||
| -rw-r--r-- | include/d/d_stage.h | 12 | ||||
| -rw-r--r-- | include/d/dolzel_base.pch | 1 |
9 files changed, 211 insertions, 100 deletions
diff --git a/include/SSystem/SComponent/c_m3d_g_pla.h b/include/SSystem/SComponent/c_m3d_g_pla.h index 2fc7463a4d..7f25724b55 100644 --- a/include/SSystem/SComponent/c_m3d_g_pla.h +++ b/include/SSystem/SComponent/c_m3d_g_pla.h @@ -22,7 +22,7 @@ public: virtual ~cM3dGPla() {} - f32 getPlaneFunc(const Vec* pPoint) const { return mD + VECDotProduct(&mNormal, pPoint); } + f32 getPlaneFunc(const Vec* pPoint) const { return mD + PSVECDotProduct(&mNormal, pPoint); } cXyz* GetNP() { return &mNormal; } const cXyz* GetNP() const { return &mNormal; } f32 GetD() const { return mD; } diff --git a/include/d/actor/d_a_alink.h b/include/d/actor/d_a_alink.h index 418aec0e84..a4debb71d2 100644 --- a/include/d/actor/d_a_alink.h +++ b/include/d/actor/d_a_alink.h @@ -7435,7 +7435,7 @@ public: bool checkHorseRideOn() const { return mProcID == PROC_HORSE_RIDE; } bool checkHorseTurnMode() const { return mProcID == PROC_HORSE_TURN; } bool checkGrabUp() const { return mProcID == PROC_GRAB_UP; } - bool checkSpinnerRideWait() const { + s16 checkSpinnerRideWait() const { return mProcID == PROC_SPINNER_WAIT && mProcVar2.field_0x300c == 0; } bool checkCopyRodSwingMode() { return mProcID == PROC_COPY_ROD_SWING; } diff --git a/include/d/actor/d_a_e_rb.h b/include/d/actor/d_a_e_rb.h index 8b1a3208bb..35dfecf410 100644 --- a/include/d/actor/d_a_e_rb.h +++ b/include/d/actor/d_a_e_rb.h @@ -2,6 +2,7 @@ #define D_A_E_RB_H #include "f_op/f_op_actor_mng.h" +#include "m_Do/m_Do_ext.h" #include "d/d_cc_d.h" #include "d/d_cc_uty.h" #include "d/d_bg_s_acch.h" diff --git a/include/d/actor/d_a_e_ws.h b/include/d/actor/d_a_e_ws.h index 88df8f29a4..c7b6ae5c58 100644 --- a/include/d/actor/d_a_e_ws.h +++ b/include/d/actor/d_a_e_ws.h @@ -2,6 +2,7 @@ #define D_A_E_WS_H #include "f_op/f_op_actor_mng.h" +#include "m_Do/m_Do_ext.h" #include "d/d_bg_s_acch.h" #include "d/d_cc_d.h" #include "d/d_cc_uty.h" diff --git a/include/d/d_cam_param.h b/include/d/d_cam_param.h index 5684ae3fa7..c3da29d8bd 100644 --- a/include/d/d_cam_param.h +++ b/include/d/d_cam_param.h @@ -1,6 +1,7 @@ #ifndef D_D_CAM_PARAM_H #define D_D_CAM_PARAM_H +#include "JSystem/JHostIO/JORFile.h" #include "SSystem/SComponent/c_angle.h" struct dCamMath { @@ -11,24 +12,44 @@ struct dCamMath { static f32 xyzHorizontalDistance(cXyz&, cXyz&); }; -class dCstick_c { +class dCstick_c +#if DEBUG + : public JORReflexible +#endif +{ public: dCstick_c(); bool Shift(u32); /* 0x0 */ f32 mThresholdLow; /* 0x4 */ f32 mThresholdHigh; - /* 0x8 */ int mInputSpeed; - /* 0xC */ u8 field_0xc[4]; + /* 0x8 */ s32 mInputSpeed; + /* 0xC */ u16 mIsDebugDisplay; +#if DEBUG + /* 0x10 */ s32 mDisplayPosX; + /* 0x14 */ s32 mDisplayPosY; +#endif virtual ~dCstick_c() {} +#if DEBUG + virtual void genMessage(JORMContext*); +#endif + + bool CheckFlag(u16 i_flag) { + return (i_flag & mIsDebugDisplay) ? true : false; + } f32 SwTHH() { return mThresholdHigh; } }; -class dCamBGChk_c { +class dCamBGChk_c +#if DEBUG + : public JORReflexible +#endif +{ public: dCamBGChk_c(); + ~dCamBGChk_c() {} f32 WallUpDistance() { return mWallUpDistance; } f32 FwdDistance(s32 param_0) { return mChkInfo[param_0].mDistance; } @@ -44,6 +65,10 @@ public: f32 CornerAngleMax() { return mCornerAngleMax; } f32 FloorMargin() { return mFloorMargin; } +#if DEBUG + virtual void genMessage(JORMContext*); +#endif + // name is a guess for now struct ChkInfo { /* 0x0 */ f32 mDistance; @@ -67,10 +92,10 @@ public: struct dCamStyleData { struct StyleData { - /* 0x0 */ u32 field_0x0; + /* 0x0 */ s32 field_0x0; /* 0x4 */ u16 field_0x4; - /* 0x6 */ u16 field_0x6; - /* 0x8 */ f32 field_0x8[28]; + /* 0x6 */ u16 mFlags; + /* 0x8 */ f32 mParams[28]; }; // Size: 0x78 /* 0x0 */ u8 field_0x0[4]; @@ -78,7 +103,11 @@ struct dCamStyleData { /* 0x8 */ StyleData* mStyleData; }; -class dCamParam_c { +class dCamParam_c +#if DEBUG + : public JORReflexible +#endif +{ public: dCamParam_c(s32); int Change(s32); @@ -92,40 +121,56 @@ public: void Arg0(u8 val) { mMapToolArg0 = val; } void Fovy(u8 val) { mMapToolFovy = val; } u8 Fovy() { return mMapToolFovy; } - bool CheckFlag(u16 flag) { return (flag & mCurrentStyle->field_0x6) != 0; } + bool CheckFlag(u16 flag) { return (flag & mCurrentStyle->mFlags) != 0 ? true : false; } f32 Val(s32 param_0, int param_1) { - return mCamStyleData[param_0].field_0x8[param_1]; + return mCamStyleData[param_0].mParams[param_1]; } void SetVal(s32 param_0, int param_1, f32 i_value) { - mCamStyleData[param_0].field_0x8[param_1] = i_value; + mCamStyleData[param_0].mParams[param_1] = i_value; } - /* 0x00 */ u8 mMapToolFovy; - /* 0x01 */ u8 mMapToolArg0; - /* 0x02 */ u8 mMapToolArg1; - /* 0x04 */ int mMapToolArg2; - /* 0x08 */ dCamStyleData::StyleData* mCamStyleData; - /* 0x0C */ s32 mStyleNum; - /* 0x10 */ dCamStyleData::StyleData* mCurrentStyle; - /* 0x14 */ int mStyleID; - /* 0x18 */ u8 field_0x18[4]; + /* 0x02 */ u8 mMapToolFovy; + /* 0x03 */ u8 mMapToolArg0; + /* 0x04 */ u8 mMapToolArg1; + /* 0x08 */ s32 mMapToolArg2; + /* 0x0C */ dCamStyleData::StyleData* mCamStyleData; + /* 0x10 */ s32 mStyleNum; + /* 0x14 */ dCamStyleData::StyleData* mCurrentStyle; + /* 0x18 */ s32 mStyleID; + /* 0x1C */ u16 field_0x1c; + /* 0x1E */ s8 mpHIOChild; +#if DEBUG + /* 0x20 */ JORFile mFile; +#endif u32 Id(s32 i_style) { return mCamStyleData[i_style].field_0x0; } int Algorythmn(s32 i_style) { return mCamStyleData[i_style].field_0x4; } int Algorythmn() { return mCurrentStyle->field_0x4; } - u16 Flag(s32 param_0, u16 param_1) { return mCamStyleData[param_0].field_0x6 & param_1; } - void SetFlag(u16 i_flag) { mCurrentStyle->field_0x6 |= i_flag; } + u16 Flag(s32 param_0, u16 param_1) { return mCamStyleData[param_0].mFlags & param_1; } + void SetFlag(u16 i_flag) { mCurrentStyle->mFlags |= i_flag; } virtual ~dCamParam_c(); +#if DEBUG + virtual void genMessage(JORMContext*); + virtual void listenPropertyEvent(const JORPropertyEvent*); + int writeParamXML(); + void OpenFile(); + void PrintFile(char*, ...); + void CloseFile(); +#endif }; -class dCamSetup_c { +class dCamSetup_c +#if DEBUG + : public JORReflexible +#endif +{ public: dCamSetup_c(); bool CheckLatitudeRange(s16*); f32 PlayerHideDist(); - bool CheckFlag2(u16 i_flag) { return (i_flag & mFlags2) != 0; } + bool CheckFlag2(u16 i_flag) { return (i_flag & mFlags2) != 0 ? true : false; } f32 WaitRollSpeed() { return mWaitRollSpeed; } int WaitRollTimer() { return mWaitRollTimer; } int ThrowTimer() { return mThrowTimer; } @@ -155,16 +200,30 @@ public: f32 CurveWeight() { return mCurveWeight; } s16 MapToolCameraLongTimer() { return mMapToolCamLongTimer; } s16 MapToolCameraShortTimer() { return mMapToolCamShortTimer; } + void SetTypeTable(void* i_typeTable, s32 i_typeNum) { + mTypeTable = i_typeTable; + mTypeNum = i_typeNum; + } + s32 ForceType() { return mForceType; } + s32 ModeSwitchType() { return mModeSwitchType; } + f32 Far() { return mDrawFar; } + f32 Near() { return mDrawNear; } + +#if DEBUG + virtual ~dCamSetup_c(); + + virtual void genMessage(JORMContext*); +#endif /* 0x000 */ f32 mDrawNear; /* 0x004 */ f32 mDrawFar; /* 0x008 */ u16 mDebugFlags; /* 0x00A */ u16 mFlags2; /* 0x00C */ int field_0xc; - /* 0x010 */ int mModeSwitchType; + /* 0x010 */ s32 mModeSwitchType; /* 0x014 */ void* mTypeTable; - /* 0x018 */ int mTypeNum; - /* 0x01C */ int mForceType; + /* 0x018 */ s32 mTypeNum; + /* 0x01C */ s32 mForceType; /* 0x020 */ f32 mCusCus; /* 0x024 */ f32 field_0x24; /* 0x028 */ f32 field_0x28; @@ -186,7 +245,7 @@ public: /* 0x068 */ f32 mTrimCineScopeHeight; /* 0x06C */ f32 field_0x6c; /* 0x070 */ f32 mForceLockOffDist; - /* 0x074 */ int mForceLockOffTimer; + /* 0x074 */ s32 mForceLockOffTimer; /* 0x078 */ f32 field_0x78; /* 0x07C */ f32 field_0x7c; /* 0x080 */ f32 field_0x80; @@ -194,7 +253,7 @@ public: /* 0x088 */ f32 mThrowVAngle; /* 0x08C */ f32 mThrowCtrOffset; /* 0x090 */ f32 mThrowCushion; - /* 0x094 */ int mThrowTimer; + /* 0x094 */ s32 mThrowTimer; /* 0x098 */ f32 mWindShakeCtr; /* 0x09C */ f32 field_0x9c; /* 0x0A0 */ f32 mWindShakeFvy; @@ -206,9 +265,9 @@ public: /* 0x0B8 */ f32 mManualStartCThreshold; /* 0x0BC */ f32 mManualEndVal; /* 0x0C0 */ f32 mChargeLatitude; - /* 0x0C4 */ int mChargeTimer; + /* 0x0C4 */ s32 mChargeTimer; /* 0x0C8 */ f32 mChargeBRatio; - /* 0x0CC */ int mLockonChangeTimer; + /* 0x0CC */ s32 mLockonChangeTimer; /* 0x0D0 */ f32 mLockonChangeCushion; /* 0x0D4 */ f32 field_0xd4; /* 0x0D8 */ f32 field_0xd8; @@ -223,8 +282,13 @@ public: /* 0x0F8 */ f32 field_0xf8; /* 0x0FC vtable */ +#if !DEBUG virtual ~dCamSetup_c(); +#endif +#if DEBUG + /* 0x100 */ s8 mpHIOChild; +#endif /* 0x100 */ dCstick_c mCStick; /* 0x114 */ dCamBGChk_c mBGChk; /* 0x15C */ f32 field_0x15c; @@ -232,9 +296,9 @@ public: /* 0x164 */ int mWaitRollTimer; /* 0x168 */ f32 mWaitRollSpeed; /* 0x16C */ f32 field_0x16c; - /* 0x170 */ int mScreensaverFirstWaitTimer; - /* 0x174 */ int mScreensaverWaitTimer; - /* 0x178 */ int mScreensaverExecTimer; + /* 0x170 */ s32 mScreensaverFirstWaitTimer; + /* 0x174 */ s32 mScreensaverWaitTimer; + /* 0x178 */ s32 mScreensaverExecTimer; }; #endif /* D_D_CAM_PARAM_H */ diff --git a/include/d/d_camera.h b/include/d/d_camera.h index d3b6604d03..5b7f46ea5e 100644 --- a/include/d/d_camera.h +++ b/include/d/d_camera.h @@ -32,8 +32,7 @@ struct dCamMapToolData { } void Clr() { - mArrowIndex = 0xFF; - mCameraIndex = 0xFF; + mCameraIndex = mArrowIndex = 0xFF; mFlags = 0; mpActor = NULL; mPathId = 0xFF; @@ -59,7 +58,7 @@ struct dCamForcusLine { /* 0x38 */ cXyz field_0x38; /* 0x44 */ GXColor field_0x44; /* 0x48 */ u8 field_0x48; - /* 0x49 */ u8 field_0x49; + /* 0x49 */ bool field_0x49; /* 0x4C */ int field_0x4c; /* 0x50 */ int field_0x50; /* 0x54 */ int field_0x54; @@ -73,17 +72,11 @@ struct dCamForcusLine { /* 0x6C */ f32 field_0x6c; }; -struct dCamera_FakeAngle_system { - /* 0x0 */ u8 field_0x0; - /* 0x2 */ cSAngle field_0x2; - /* 0x4 */ cSAngle field_0x4; -}; - -struct dCamera_monitoring_things { - /* 0x00 */ cXyz field_0x0; - /* 0x0C */ f32 field_0xc; - /* 0x10 */ f32 field_0x10; - /* 0x14 */ cXyz field_0x14; +struct UnkManualCameraParam { + f32 r; + f32 v; + f32 u; + f32 fov; }; struct dCamera_event_param { @@ -92,23 +85,6 @@ struct dCamera_event_param { /* 0x14 */ int value; }; -struct dCamera_event_data { - /* 0x000 */ u8 field_0x0; - /* 0x004 */ int mStaffIdx; - /* 0x008 */ int field_0x8; - /* 0x00C */ int field_0xc; - /* 0x010 */ u8 field_0x10; - /* 0x014 */ int field_0x14; - /* 0x018 */ int field_0x18; - /* 0x01C */ int field_0x1c; - /* 0x020 */ int field_0x20; - /* 0x024 */ int field_0x24; - /* 0x028 */ u8 field_0x28[0x2C - 0x28]; - /* 0x02C */ dCamera_event_param mEventParams[8]; - /* 0x0EC */ dStage_MapEvent_dt_c* field_0xec; - /* 0x0F0 */ d2DBSplinePath field_0xf0; -}; // Size: 0x124 - struct dCamera_type_data { /* 0x00 */ char name[24]; /* 0x18 */ s16 field_0x18[2][11]; @@ -170,22 +146,46 @@ public: /* 0x1C */ _stick mCStick; }; + struct dCamera_event_data { + /* 0x000 */ u8 field_0x0; + /* 0x004 */ int mStaffIdx; + /* 0x008 */ int field_0x8; + /* 0x00C */ int field_0xc; + /* 0x010 */ u8 field_0x10; + /* 0x014 */ int field_0x14; + /* 0x018 */ int field_0x18; + /* 0x01C */ int field_0x1c; + /* 0x020 */ int field_0x20; + /* 0x024 */ int field_0x24; + /* 0x028 */ u8 field_0x28[0x2C - 0x28]; + /* 0x02C */ dCamera_event_param mEventParams[8]; + /* 0x0EC */ dStage_MapEvent_dt_c* field_0xec; + /* 0x0F0 */ d2DBSplinePath field_0xf0; + }; // Size: 0x124 + + struct dCamera_monitoring_things { + /* 0x00 */ cXyz field_0x0; + /* 0x0C */ f32 field_0xc; + /* 0x10 */ f32 field_0x10; + /* 0x04 */ struct { + /* 0x00 */ cXyz field_0x0; + } field_0x14; + }; + + struct dCamera_FakeAngle_system { + /* 0x0 */ u8 field_0x0; + /* 0x2 */ cSAngle field_0x2; + /* 0x4 */ cSAngle field_0x4; + }; + struct BG { - class { - public: + struct { /* 0x00 */ bool field_0x0; /* 0x04 */ dBgS_CamGndChk field_0x4; /* 0x58 */ f32 field_0x58; - } /* 0x000 */ field_0x0; - class { - public: - /* 0x00 */ bool field_0x0; - /* 0x04 */ dBgS_CamGndChk field_0x4; - /* 0x58 */ f32 field_0x58; - } /* 0x05C */ field_0x5c; + } /* 0x000 */ field_0x0, field_0x5c; /* 0x0B8 */ u8 field_0xb8[0xC0 - 0xB8]; - class { - public: + struct { /* 0x00 */ u8 field_0x0; /* 0x01 */ u8 field_0x1; /* 0x04 */ cXyz field_0x4; @@ -201,8 +201,7 @@ public: /* 0x40 */ int field_0x40; /* 0x44 */ u8 field_0x44; } /* 0x0C0 */ field_0xc0; - class { - public: + struct { /* 0x0 */ int field_0x0; /* 0x4 */ f32 field_0x4; /* 0x8 */ cXyz field_0x8; @@ -875,6 +874,23 @@ public: /* 0xA0 */ fopAc_ac_c* field_0xa0; }; + struct ManualData { + int field_0x00; + cXyz field_0x04; + cXyz field_0x10; + f32 field_0x1c; + f32 field_0x20; + int field_0x24; + u8 field_0x28; + f32 field_0x2c; + cSGlobe field_0x30; + f32 field_0x38; + f32 field_0x3c; + int field_0x40; + cSAngle field_0x44; + f32 field_0x48; + }; + int StartEventCamera(int, int, ...); int EndEventCamera(int); int searchEventArgData(char*); @@ -940,6 +956,7 @@ public: void updateMonitor(); bool checkForceLockTarget(); void infoReport(); + void debugDrawInit(); bool Run(); bool NotRun(); s16 V(); @@ -948,6 +965,9 @@ public: bool SetTrimTypeForce(s32); void CalcTrimSize(); int Draw(); + void debugDraw(); + int debugDrawPoint(cXyz&); + int debugDrawLine(cXyz&, cXyz&); void setStageMapToolData(); void setMapToolData(); void SetTagData(fopAc_ac_c*, s32, u16, u8); @@ -973,6 +993,10 @@ public: bool pointInSight(cXyz*); f32 radiusActorInSight(fopAc_ac_c*, fopAc_ac_c*, fopAc_ac_c*); f32 radiusActorInSight(fopAc_ac_c*, fopAc_ac_c*, cXyz*, cXyz*, f32, s16, f32); + f32 radiusActorInSight(fopAc_ac_c* param_0, fopAc_ac_c* param_1) { + return radiusActorInSight(param_0, param_1, &mViewCache.mCenter, &mViewCache.mEye, mFovy, + mBank, 0.05f); + } f32 groundHeight(cXyz*); bool lineBGCheck(cXyz*, cXyz*, dBgS_LinChk*, u32); bool lineBGCheck(cXyz*, cXyz*, u32); @@ -1046,8 +1070,6 @@ public: cXyz talkBasePos(fopAc_ac_c* i_actor) { return i_actor->current.pos; } cXyz talkEyePos(fopAc_ac_c* i_actor) { return i_actor->eyePos; } - void debugDraw(); - int CameraID() { return mCameraID; } bool Active() { return mCurState == 0; } @@ -1062,7 +1084,7 @@ public: u32 setFlag(u32 i_flag) { return mEventFlags |= i_flag; } u32 clrFlag(u32 i_flag) { return mEventFlags &= ~i_flag; } - bool CheckFlag(u32 i_flag) { return mEventFlags & i_flag; } + bool CheckFlag(u32 i_flag) { return (mEventFlags & i_flag) != 0 ? true : false; } void ResetView() { setView(0.0f, 0.0f, FB_WIDTH, FB_HEIGHT); } @@ -1114,12 +1136,25 @@ public: int Gear() { return mGear; } + bool HideBGPartsOK() { + return chkFlag(0x4); + } + + f32 Near4Debug() { + return mCamSetup.Near(); + } + f32 Far4Debug() { + return mCamSetup.Far(); + } + static engine_fn engine_tbl[]; /* 0x000 */ camera_class* field_0x0; #if DEBUG cXyz dbg_field_0x04[16]; - u8 dbg_field_c4[0xDC - 0xC4]; + s8 dbg_field_0xc4[0x10]; + u32 dbg_field_0xd4; + int dbg_field_0xd8; #endif struct { /* 0x00 */ int mRoomNo; @@ -1144,6 +1179,11 @@ public: /* 0x14 */ cXyz mEye; /* 0x20 */ cSAngle mBank; /* 0x24 */ f32 mFovy; +#if defined(__MWERKS__) && __MWERKS__ < 0x4200 + // Static data members in an anonymous class are illegal in C++, but MWCC for GC accepts it. + // However, MWCC for Wii does not so this was removed for the Shield release. + static const int PatternLengthMax = 4; +#endif } /* 0x05C */ mViewCache; /* 0x084 */ f32 field_0x84; @@ -1181,7 +1221,8 @@ public: /* 0x168 */ u8 field_0x168; /* 0x16C */ int field_0x16c; /* 0x170 */ u32 field_0x170; - /* 0x174 */ u32 mCurCamStyleTimer; // this might be a signed int in ShieldD + /* 0x174 */ u32 mCurCamStyleTimer; // something is weird about this field - it's sometimes (but + // not always) treated as signed in ShieldD specifically /* 0x178 */ u32 mCameraID; /* 0x17C */ u32 mPadID; /* 0x180 */ fopAc_ac_c* mpPlayerActor; @@ -1205,16 +1246,16 @@ public: /* 0x1FC */ int mCStickUpLatch; /* 0x200 */ f32 mTriggerLeftLast; /* 0x204 */ f32 mTriggerLeftDelta; - /* 0x208 */ u8 mHoldLockL; - /* 0x209 */ u8 mTrigLockL; - /* 0x20A */ u8 mLockLActive; - /* 0x20B */ u8 mLockLJustActivated; + /* 0x208 */ bool mHoldLockL; + /* 0x209 */ bool mTrigLockL; + /* 0x20A */ bool mLockLActive; + /* 0x20B */ bool mLockLJustActivated; /* 0x20C */ f32 mTriggerRightLast; /* 0x210 */ f32 mTriggerRightDelta; - /* 0x214 */ u8 mHoldLockR; - /* 0x215 */ u8 mTrigLockR; - /* 0x216 */ u8 mLockRActive; - /* 0x217 */ u8 mLockRJustActivated; + /* 0x214 */ bool mHoldLockR; + /* 0x215 */ bool mTrigLockR; + /* 0x216 */ bool mLockRActive; + /* 0x217 */ bool mLockRJustActivated; /* 0x218 */ bool mHoldX; /* 0x219 */ bool mTrigX; /* 0x21A */ bool mHoldY; @@ -1324,9 +1365,6 @@ public: /* 0x968 */ f32 field_0x968; /* 0x96C */ f32 field_0x96c; /* 0x970 */ dCamSetup_c mCamSetup; -#if DEBUG - u8 unk_debug_0xbc4[0x10]; -#endif /* 0xAEC */ dCamParam_c mCamParam; /* 0xB0C */ u8 field_0xb0c; /* 0xB0D */ u8 field_0xb0d[0xd58 - 0xb0d]; diff --git a/include/d/d_debug_camera.h b/include/d/d_debug_camera.h index 600e1beb10..d5cd7403ac 100644 --- a/include/d/d_debug_camera.h +++ b/include/d/d_debug_camera.h @@ -13,6 +13,8 @@ enum dDbgCam_KeyAction { class dDbgCamera_c; +extern dDbgCamera_c dDbgCamera; + class dDbgCamKey_c { public: dDbgCamKey_c() {} diff --git a/include/d/d_stage.h b/include/d/d_stage.h index 2fdc6a9cf3..501376909c 100644 --- a/include/d/d_stage.h +++ b/include/d/d_stage.h @@ -186,8 +186,12 @@ struct stage_camera_class { // AROB / RARO struct stage_arrow_data_class { - /* 0x00 */ cXyz position; - /* 0x0C */ csXyz angle; + /* 0x00 */ f32 posX; + /* 0x04 */ f32 posY; + /* 0x08 */ f32 posZ; + /* 0x0C */ s16 angleX; + /* 0x0E */ s16 angleY; + /* 0x10 */ s16 angleZ; /* 0x12 */ s16 field_0x12; }; // Size: 0x14 @@ -684,8 +688,8 @@ public: /* vt[91] */ virtual void setElst(dStage_Elst_c* i_Elst) { mElst = i_Elst; } /* vt[92] */ virtual dStage_Elst_c* getElst(void); - s16 getWorldRollAngleX() { return (s16)mWorldRollAngleX; } - s16 getWorldRollDirAngleY() { return mWorldRollDirAngleY; } + s16 getWorldRollAngleX() const { return (s16)mWorldRollAngleX; } + s16 getWorldRollDirAngleY() const { return mWorldRollDirAngleY; } public: /* 0x08 */ stage_camera_class* mCamera; diff --git a/include/d/dolzel_base.pch b/include/d/dolzel_base.pch index 169f985047..eb6533d44e 100644 --- a/include/d/dolzel_base.pch +++ b/include/d/dolzel_base.pch @@ -41,6 +41,7 @@ #include "d/d_bg_s_chk.h" // IWYU pragma: export #include "d/d_bg_w.h" // IWYU pragma: export #include "d/d_drawlist.h" // IWYU pragma: export +#include "d/d_bg_s_sph_chk.h" // IWYU pragma: export #include "d/d_com_inf_game.h" // IWYU pragma: export #include "m_Do/m_Do_graphic.h" // IWYU pragma: export #include "JSystem/J2DGraph/J2DOrthoGraph.h" // IWYU pragma: export |
