diff options
| author | Caroline Madsen <69010899+randomsalience@users.noreply.github.com> | 2025-04-01 22:05:30 -0400 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-04-01 19:05:30 -0700 |
| commit | e55c504f28caf0815a0bf7ba31c4014dd8d3d849 (patch) | |
| tree | 83510f9cd7889fa10bbdb5d522093c6977a99036 /include | |
| parent | 9847b2a2787b0db8ce931552fa6d99da21ad0873 (diff) | |
d_camera work (#2369)
* bumpCheck matching
* checkGroundInfo matching
* chaseCamera matching
* lockonCamera attempted
* talktoCamera matching
* subjectCamera, magneCamera matching
* colosseumCamera close, plus various fixes
* towerCamera attempted
* hookshotCamera matching
Diffstat (limited to 'include')
| -rw-r--r-- | include/SSystem/SComponent/c_angle.h | 3 | ||||
| -rw-r--r-- | include/SSystem/SComponent/c_cc_d.h | 6 | ||||
| -rw-r--r-- | include/d/actor/d_a_alink.h | 12 | ||||
| -rw-r--r-- | include/d/actor/d_a_horse.h | 3 | ||||
| -rw-r--r-- | include/d/actor/d_a_player.h | 8 | ||||
| -rw-r--r-- | include/d/actor/d_a_tag_mwait.h | 2 | ||||
| -rw-r--r-- | include/d/d_attention.h | 6 | ||||
| -rw-r--r-- | include/d/d_bg_s.h | 1 | ||||
| -rw-r--r-- | include/d/d_cam_param.h | 26 | ||||
| -rw-r--r-- | include/d/d_camera.h | 357 | ||||
| -rw-r--r-- | include/d/d_cc_s.h | 1 | ||||
| -rw-r--r-- | include/d/d_com_inf_game.h | 61 | ||||
| -rw-r--r-- | include/d/d_name.h | 4 | ||||
| -rw-r--r-- | include/d/d_particle.h | 18 | ||||
| -rw-r--r-- | include/d/d_s_play.h | 31 | ||||
| -rw-r--r-- | include/d/d_s_play_env.h | 27 | ||||
| -rw-r--r-- | include/d/d_spline_path.h | 15 | ||||
| -rw-r--r-- | include/d/d_stage.h | 2 | ||||
| -rw-r--r-- | include/f_op/f_op_camera.h | 1 |
19 files changed, 396 insertions, 188 deletions
diff --git a/include/SSystem/SComponent/c_angle.h b/include/SSystem/SComponent/c_angle.h index db0055ef6e..cc98ae4c5b 100644 --- a/include/SSystem/SComponent/c_angle.h +++ b/include/SSystem/SComponent/c_angle.h @@ -42,6 +42,8 @@ public: void operator*=(float); 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); } @@ -133,6 +135,7 @@ public: void R(f32 i_radius) { mRadius = i_radius; } void U(cSAngle const& i_azimuth) { mAzimuth = i_azimuth.Val(); } + void V(cSAngle const& i_inclination) { mInclination = i_inclination.Val(); } cSGlobe(const cSGlobe&); cSGlobe(float, short, short); diff --git a/include/SSystem/SComponent/c_cc_d.h b/include/SSystem/SComponent/c_cc_d.h index a56f90ca8d..de6af75a72 100644 --- a/include/SSystem/SComponent/c_cc_d.h +++ b/include/SSystem/SComponent/c_cc_d.h @@ -69,12 +69,10 @@ public: /* 0x1C vtable */ struct Shape { - /* 80167BBC */ ~Shape(); + /* 80167BBC */ ~Shape() {} /* 0x00 */ int _0; - /* 0x04 */ f32 _4; - /* 0x08 */ f32 _8; - /* 0x0C */ f32 _C; + /* 0x04 */ cXyz _4; /* 0x10 */ f32 _10; /* 0x14 */ f32 _14; }; diff --git a/include/d/actor/d_a_alink.h b/include/d/actor/d_a_alink.h index be330877ad..9668025af7 100644 --- a/include/d/actor/d_a_alink.h +++ b/include/d/actor/d_a_alink.h @@ -3088,7 +3088,7 @@ public: virtual bool cancelWolfLock(fopAc_ac_c*); virtual s32 getAtnActorID() const; virtual s32 getItemID() const; - virtual s32 getGrabActorID() const; + virtual u32 getGrabActorID() const; virtual BOOL exchangeGrabActor(fopAc_ac_c*); virtual BOOL setForceGrab(fopAc_ac_c*, int, int); virtual void setForcePutPos(cXyz const&); @@ -3346,10 +3346,16 @@ public: const daAlink_AnmData* getAnmData(daAlink_ANM anmID) const { return &m_anmDataTable[anmID]; } const daAlink_FaceTexData* getFaceTexData(daAlink_FTANM i_anmID) const { return &m_faceTexDataTable[i_anmID]; } + s16 getCameraAngleX() const { return field_0x310a; } + s16 getCameraAngleY() const { return field_0x310c; } + cXyz* getSubjectEyePos() { return &field_0x3768; } + u32 checkReinRide() const { return mRideStatus == 1 || mRideStatus == 2; } int getGrassHowlEventActor() const { return field_0x3198; } MtxP getShieldMtx() const { return mShieldModel->getBaseTRMtx(); } MtxP getMagneBootsMtx() { return mMagneBootMtx; } + MtxP getMagneBootsInvMtx() { return mMagneBootInvMtx; } + s16 getMagneBootsModelShapeAngle() const { return field_0x3118; } bool checkFishingCastMode() const { bool var_r5; @@ -3439,6 +3445,7 @@ public: bool checkSpinnerRideWait() const { return mProcID == PROC_SPINNER_WAIT && mProcVar2.field_0x300c == 0; } + bool checkRoofSwitchHang() const { return mProcID == PROC_ROOF_SWITCH_HANG; } fopAc_ac_c* getCopyRodActor() { return mCopyRodAcKeep.getActor(); } fopAc_ac_c* getHookshotRoofWaitActor() { return mCargoCarryAcKeep.getActor(); } @@ -3507,10 +3514,11 @@ public: const cXyz& getWindSpeed() const { return mWindSpeed; } const cXyz& getHsChainTopPos() const { return mHookshotTopPos; } const cXyz& getHsChainRootPos() const { return mHeldItemRootPos; } - const cXyz& getHsSubChainRootPos() const { return field_0x3810; } + const csXyz& getHsAngle() const { return field_0x316c; } s16 getHookshotStopTime() const { return field_0x3026; } + bool getHookshotLeft() const { return field_0x3020 == 0; } static int getBallModelIdx() { return 0x25; } static int getBallBtkIdx() { return 0x49; } diff --git a/include/d/actor/d_a_horse.h b/include/d/actor/d_a_horse.h index c02b5458f6..b1b7ee7339 100644 --- a/include/d/actor/d_a_horse.h +++ b/include/d/actor/d_a_horse.h @@ -221,7 +221,8 @@ public: /* 80844590 */ int draw(); /* 8084478C */ ~daHorse_c(); - /* 80182D04 */ void getLashDashStart() const; + /* 80182D04 */ bool getLashDashStart() const { return checkResetStateFlg0(RFLG0_LASH_DASH_START); } + bool checkNoBombProc() const { return m_procID == PROC_WAIT_e || m_procID == PROC_MOVE_e; } bool checkResetStateFlg0(daHorse_RFLG0 flag) const { return m_resetStateFlg0 & flag; } diff --git a/include/d/actor/d_a_player.h b/include/d/actor/d_a_player.h index ebd38a7d1f..acc7b2cb16 100644 --- a/include/d/actor/d_a_player.h +++ b/include/d/actor/d_a_player.h @@ -694,12 +694,12 @@ public: inline static BOOL checkSwordGet(); cXyz getHeadTopPos() const { return mHeadTopPos; } - BOOL checkThrowDamage() const { return checkNoResetFlg1(FLG1_THROW_DAMAGE); } - BOOL checkGoronSideMove() const { return mSpecialMode == 0x2B; } + u32 checkThrowDamage() const { return checkNoResetFlg1(FLG1_THROW_DAMAGE); } + bool checkGoronSideMove() const { return mSpecialMode == 0x2B; } cXyz* getRightFootPosP() { return &mRightFootPos; } cXyz* getLeftFootPosP() { return &mLeftFootPos; } BOOL checkCopyRodThrowAfter() const { return checkNoResetFlg3(FLG3_COPY_ROD_THROW_AFTER); } - BOOL checkRide() const { return checkHorseRide() || checkBoarRide() || checkSpinnerRide() || checkCanoeRide() || checkBoardRide(); } + u32 checkRide() const { return checkHorseRide() || checkBoarRide() || checkSpinnerRide() || checkCanoeRide() || checkBoardRide(); } cXyz getRightHandPos() const { return mRightHandPos; } const cXyz getLeftHandPos() const { return mLeftHandPos; } const cXyz getItemPos() const { return mItemPos; } @@ -765,7 +765,7 @@ public: virtual bool cancelWolfLock(fopAc_ac_c*); virtual s32 getAtnActorID() const { return -1; } virtual s32 getItemID() const; - virtual s32 getGrabActorID() const { return -1; } + virtual u32 getGrabActorID() const { return fpcM_ERROR_PROCESS_ID_e; } virtual BOOL exchangeGrabActor(fopAc_ac_c*); virtual BOOL setForceGrab(fopAc_ac_c*, int, int); virtual void setForcePutPos(cXyz const&); diff --git a/include/d/actor/d_a_tag_mwait.h b/include/d/actor/d_a_tag_mwait.h index bfd9546fa8..709dcbf47a 100644 --- a/include/d/actor/d_a_tag_mwait.h +++ b/include/d/actor/d_a_tag_mwait.h @@ -10,7 +10,7 @@ public: /* 80D5C01C */ ~daTagMwait_c(); /* 80D5C0A8 */ int execute(); - bool checkEndMessage() {return fopAcM_isSwitch(this, mEnterSw); } + BOOL checkEndMessage() {return fopAcM_isSwitch(this, mEnterSw); } /* 0x568 */ u8 mOnSw; /* 0x569 */ u8 mEnterSw; diff --git a/include/d/d_attention.h b/include/d/d_attention.h index 085ecc4314..41ad71e140 100644 --- a/include/d/d_attention.h +++ b/include/d/d_attention.h @@ -213,9 +213,9 @@ public: /* 8007378C */ fopAc_ac_c* CheckObjectTarget(s32); /* 800737E4 */ bool LockonTruth(); /* 80073838 */ int checkDistance(cXyz*, s16, cXyz*, f32, f32, f32, f32); - /* 8016E424 */ void LockEdge(); - /* 80182994 */ void GetCheckObjectCount(); - /* 80182AD0 */ void keepLock(int); + /* 8016E424 */ bool LockEdge() { return chkFlag(8) || chkFlag(0x20); } + /* 80182994 */ int GetCheckObjectCount() { return mCheckObjectCount; } + /* 80182AD0 */ void keepLock(int timer) { mAttnBlockTimer = timer; } /* 8014B010 */ static dist_entry& getDistTable(int i_no) { return dist_table[i_no]; } fopAc_ac_c* getCatghTarget() { return mCatghTarget.getCatghTarget(); } diff --git a/include/d/d_bg_s.h b/include/d/d_bg_s.h index cecd2ee3f5..088e80e4ad 100644 --- a/include/d/d_bg_s.h +++ b/include/d/d_bg_s.h @@ -110,6 +110,7 @@ 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) {} + fopAc_ac_c* GetActorPointer(cBgS_PolyInfo const& param_0) { return cBgS::GetActorPointer(param_0); } }; // Size: 0x1404 bool dBgS_CheckBGroundPoly(cBgS_PolyInfo const&); diff --git a/include/d/d_cam_param.h b/include/d/d_cam_param.h index 48cfa63238..28d010bb8a 100644 --- a/include/d/d_cam_param.h +++ b/include/d/d_cam_param.h @@ -37,6 +37,12 @@ public: f32 FwdWeightL(s32 param_0) { return mChkInfo[param_0].mWeightL; } f32 FwdBackMargin() { return mFwdBackMargin; } f32 FwdCushion() { return mFwdCushion; } + f32 GazeBackMargin() { return mGazeBackMargin; } + f32 WallCushion() { return mWallCushion; } + f32 WallBackCushion() { return mWallBackCushion; } + f32 CornerCushion() { return mCornerCushion; } + f32 CornerAngleMax() { return mCornerAngleMax; } + f32 FloorMargin() { return mFloorMargin; } // name is a guess for now struct ChkInfo { @@ -79,14 +85,14 @@ public: /* 80088620 */ int SearchStyle(u32); /* 80182C60 */ void Arg2(s16 val) { mMapToolArg2 = val; } - /* 80182C3C */ int Arg2() { return mMapToolArg2; } + /* 80182C3C */ s16 Arg2() { return mMapToolArg2; } /* 80182C48 */ u8 Arg1() { return mMapToolArg1; } /* 80182C6C */ void Arg1(u8 val) { mMapToolArg1 = val; } /* 80182C50 */ u8 Arg0() { return mMapToolArg0; } /* 80182C74 */ void Arg0(u8 val) { mMapToolArg0 = val; } /* 80182C7C */ void Fovy(u8 val) { mMapToolFovy = val; } /* 80182C58 */ u8 Fovy() { return mMapToolFovy; } - /* 80182CB4 */ bool CheckFlag(u16 flag) { return mCurrentStyle->field_0x6 & flag; } + /* 80182CB4 */ bool CheckFlag(u16 flag) { return (flag & mCurrentStyle->field_0x6) != 0; } /* 80182CD0 */ f32 Val(s32 param_0, int param_1) { return mCamStyleData[param_0].field_0x8[param_1]; } @@ -104,7 +110,8 @@ public: 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; } - bool Flag(s32 param_0, u16 param_1) { return mCamStyleData[param_0].field_0x6 & param_1; } + 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; } /* 8008858C */ virtual ~dCamParam_c(); }; @@ -115,7 +122,7 @@ public: /* 80088918 */ bool CheckLatitudeRange(s16*); /* 80088988 */ f32 PlayerHideDist(); - /* 80182BB8 */ bool CheckFlag2(u16 i_flag) { return mFlags2 & i_flag; } + /* 80182BB8 */ bool CheckFlag2(u16 i_flag) { return (i_flag & mFlags2) != 0; } /* 80182BE8 */ f32 WaitRollSpeed() { return mWaitRollSpeed; } /* 80182BF0 */ int WaitRollTimer() { return mWaitRollTimer; } /* 80182C1C */ int ThrowTimer() { return mThrowTimer; } @@ -126,7 +133,7 @@ public: /* 80182CF4 */ int ChargeTimer() { return mChargeTimer; } /* 80182CFC */ f32 ChargeLatitude() { return mChargeLatitude; } - bool CheckFlag(u16 i_flag) { return mDebugFlags & i_flag; } + bool CheckFlag(u16 i_flag) { return (i_flag & mDebugFlags) != 0; } f32 ManualEndVal() { return mManualEndVal; } f32 CinemaScopeTrimHeight() { return mTrimCineScopeHeight; } f32 VistaTrimHeight() { return mTrimVistaHeight; } @@ -134,6 +141,15 @@ public: f32 ForceLockOffDist() { return mForceLockOffDist; } f32 USOValue() { return mFalseValue; } f32 USOAngle() { return mFalseAngle; } + f32 WindShakeGap4Ctr() { return mWindShakeCtr; } + f32 WindShakeGap4Fvy() { return mWindShakeFvy; } + f32 LockonChangeCushion() { return mLockonChangeCushion; } + int LockonChangeTimer() { return mLockonChangeTimer; } + f32 Cushion4Base() { return mBaseCushion; } + f32 Cushion4Jump() { return mJumpCushion; } + f32 CusCus() { return mCusCus; } + f32 ParallelDist() { return mParallelDist; } + f32 CurveWeight() { return mCurveWeight; } /* 0x000 */ f32 mDrawNear; /* 0x004 */ f32 mDrawFar; diff --git a/include/d/d_camera.h b/include/d/d_camera.h index 95b57f812f..79adaa5ff5 100644 --- a/include/d/d_camera.h +++ b/include/d/d_camera.h @@ -6,10 +6,10 @@ #include "d/d_bg_s_gnd_chk.h" #include "d/d_cam_param.h" #include "d/d_drawlist.h" +#include "d/d_spline_path.h" #include "d/d_stage.h" -#include "dolphin/types.h" +#include "f_op/f_op_actor.h" -class fopAc_ac_c; dAttention_c& dComIfGp_getAttention(); struct dCamMapToolData { @@ -84,27 +84,6 @@ struct dCamera_monitoring_things { /* 0x14 */ cXyz field_0x14; }; -struct d2DBSplinePath { - /* 0x00 */ s32 field_0x0; - /* 0x04 */ s32 field_0x4; - /* 0x08 */ s32 field_0x8; - /* 0x0C */ s32 field_0xc; - /* 0x10 */ f32 field_0x10; - /* 0x14 */ f32 field_0x14; - /* 0x18 */ f32 field_0x18; - /* 0x1C */ f32 field_0x1c; - /* 0x20 */ u32 field_0x20; - /* 0x24 */ u32 field_0x24; - /* 0x28 */ u32 field_0x28; - /* 0x2C */ u32 field_0x2c; - - d2DBSplinePath() { Init(0, 0); } - - /* 80097878 */ void Init(s32, s32); - /* 80097B68 */ void Spot(f32*, f32); - /* 801828D4 */ virtual ~d2DBSplinePath() {} -}; - struct dCamera_event_param { /* 0x00 */ char name[16]; /* 0x10 */ int field_0x10; @@ -190,13 +169,13 @@ public: struct BG { class { public: - /* 0x00 */ u8 field_0x0; + /* 0x00 */ bool field_0x0; /* 0x04 */ dBgS_CamGndChk field_0x4; /* 0x58 */ f32 field_0x58; } /* 0x000 */ field_0x0; class { public: - /* 0x00 */ u8 field_0x0; + /* 0x00 */ bool field_0x0; /* 0x04 */ dBgS_CamGndChk field_0x4; /* 0x58 */ f32 field_0x58; } /* 0x05C */ field_0x5c; @@ -209,7 +188,7 @@ public: /* 0x10 */ cXyz field_0x10; /* 0x1C */ cSAngle field_0x1c; /* 0x1E */ cSAngle field_0x1e; - /* 0x20 */ int field_0x20; + /* 0x20 */ fopAc_ac_c* field_0x20; /* 0x24 */ cSGlobe field_0x24; /* 0x2C */ cSGlobe field_0x2c; /* 0x34 */ int field_0x34; @@ -255,42 +234,42 @@ public: /* 8008933C */ bool getEvStringData(char*, char*, char*); /* 800894C4 */ fopAc_ac_c* getEvActor(char*); /* 800895F4 */ fopAc_ac_c* getEvActor(char*, char*); - /* 80089730 */ int pauseEvCamera(); - /* 800897E8 */ int fixedFrameEvCamera(); - /* 8008A510 */ int stokerEvCamera(); - /* 8008A974 */ int rollingEvCamera(); - /* 8008B9B0 */ int fixedPositionEvCamera(); - /* 8008BE2C */ int uniformTransEvCamera(); - /* 8008BE50 */ int uniformBrakeEvCamera(); - /* 8008BE74 */ int uniformAcceleEvCamera(); + /* 80089730 */ bool pauseEvCamera(); + /* 800897E8 */ bool fixedFrameEvCamera(); + /* 8008A510 */ bool stokerEvCamera(); + /* 8008A974 */ bool rollingEvCamera(); + /* 8008B9B0 */ bool fixedPositionEvCamera(); + /* 8008BE2C */ bool uniformTransEvCamera(); + /* 8008BE50 */ bool uniformBrakeEvCamera(); + /* 8008BE74 */ bool uniformAcceleEvCamera(); /* 8008BE98 */ void transEvCamera(int); - /* 8008E938 */ int watchActorEvCamera(); - /* 8008FAE8 */ int restorePosEvCamera(); - /* 80090174 */ int talktoEvCamera(); + /* 8008E938 */ bool watchActorEvCamera(); + /* 8008FAE8 */ bool restorePosEvCamera(); + /* 80090174 */ bool talktoEvCamera(); /* 80090230 */ bool maptoolIdEvCamera(); - /* 80090478 */ int styleEvCamera(); - /* 80090514 */ int gameOverEvCamera(); - /* 80091468 */ int tactEvCamera(); - /* 800923B8 */ int turnToActorEvCamera(); - /* 800923C0 */ int stbWaitEvCamera(); - /* 800924D0 */ int saveEvCamera(); - /* 8009258C */ int loadEvCamera(); - /* 800929AC */ int useItem0EvCamera(); - /* 800937AC */ int useItem1EvCamera(); - /* 80094240 */ int getItemEvCamera(); - /* 80094A70 */ int possessedEvCamera(); - /* 80095010 */ int fixedFramesEvCamera(); - /* 8009544C */ int bSplineEvCamera(); - /* 800956E4 */ int twoActor0EvCamera(); - /* 80095E7C */ int peepHoleEvCamera(); - /* 80095FD0 */ int digHoleEvCamera(); - /* 800965AC */ int hintTalkEvCamera(); - /* 80096EDC */ int bspTransEvCamera(); - /* 80097694 */ int portalWarpEvCamera(); + /* 80090478 */ bool styleEvCamera(); + /* 80090514 */ bool gameOverEvCamera(); + /* 80091468 */ bool tactEvCamera(); + /* 800923B8 */ bool turnToActorEvCamera(); + /* 800923C0 */ bool stbWaitEvCamera(); + /* 800924D0 */ bool saveEvCamera(); + /* 8009258C */ bool loadEvCamera(); + /* 800929AC */ bool useItem0EvCamera(); + /* 800937AC */ bool useItem1EvCamera(); + /* 80094240 */ bool getItemEvCamera(); + /* 80094A70 */ bool possessedEvCamera(); + /* 80095010 */ bool fixedFramesEvCamera(); + /* 8009544C */ bool bSplineEvCamera(); + /* 800956E4 */ bool twoActor0EvCamera(); + /* 80095E7C */ bool peepHoleEvCamera(); + /* 80095FD0 */ bool digHoleEvCamera(); + /* 800965AC */ bool hintTalkEvCamera(); + /* 80096EDC */ bool bspTransEvCamera(); + /* 80097694 */ bool portalWarpEvCamera(); /* 8009771C */ cXyz attentionPos(fopAc_ac_c*); /* 80097738 */ cSAngle directionOf(fopAc_ac_c*); /* 8009775C */ cXyz positionOf(fopAc_ac_c*); - /* 8009778C */ void eyePos(fopAc_ac_c*); + /* 8009778C */ cXyz eyePos(fopAc_ac_c*); /* 8016008C */ dCamera_c(camera_class*); /* 80160304 */ ~dCamera_c(); /* 80160470 */ void initialize(camera_class*, fopAc_ac_c*, u32, u32); @@ -347,7 +326,7 @@ public: /* 80165EF4 */ int defaultTriming(); /* 80165FB4 */ void setView(f32, f32, f32, f32); /* 8016608C */ cSAngle forwardCheckAngle(); - /* 80166764 */ void bumpCheck(u32); + /* 80166764 */ bool bumpCheck(u32); /* 80167BF8 */ bool lineBGCheckBoth(cXyz*, cXyz*, dBgS_LinChk*, u32); /* 80167CD8 */ BOOL jutOutCheck(cXyz*, f32); /* 80167E3C */ void tooNearEscape(cXyz*); @@ -355,13 +334,11 @@ public: /* 80167FEC */ void checkGroundInfo(); /* 80168744 */ bool chaseCamera(s32); /* 8016C384 */ bool lockonCamera(s32); - /* 8016E448 */ void getMsgCmdSpeaker(); - /* 8016E4A4 */ void getMsgCmdCut(s32); + /* 8016E448 */ fopAc_ac_c* getMsgCmdSpeaker(); + /* 8016E4A4 */ s32 getMsgCmdCut(s32); /* 8016E4F4 */ bool talktoCamera(s32); - /* 80174E18 */ void talkBasePos(fopAc_ac_c*); - /* 80174E34 */ void talkEyePos(fopAc_ac_c*); /* 80174EA4 */ bool CalcSubjectAngle(s16*, s16*); - /* 80174EAC */ void SaveZoomRatio(); + /* 80174EAC */ bool SaveZoomRatio(); /* 80174ED4 */ bool subjectCamera(s32); /* 80176074 */ bool magneCamera(s32); /* 801767F8 */ bool colosseumCamera(s32); @@ -378,7 +355,7 @@ public: /* 8017E730 */ bool fixedPositionCamera(s32); /* 8017F25C */ bool oneSideCamera(s32); /* 8017F828 */ bool eventCamera(s32); - /* 8018050C */ int currentEvCamera(); + /* 8018050C */ bool currentEvCamera(); /* 801806D4 */ bool letCamera(s32); /* 801806DC */ void setEventRecoveryTrans(s16); /* 80180738 */ void runEventRecoveryTrans(); @@ -407,8 +384,11 @@ public: /* 80181E20 */ cXyz Up(); /* 80181E64 */ cXyz Eye(); /* 80181E98 */ cXyz Center(); - /* 8018295C */ void footHeightOf(fopAc_ac_c*); + + /* 8018295C */ f32 footHeightOf(fopAc_ac_c* i_actor) { return i_actor->current.pos.y; } /* 801829AC */ cSAngle Bank() { return mBank + mShake.field_0x40; } + /* 80174E18 */ cXyz talkBasePos(fopAc_ac_c* i_actor) { return i_actor->current.pos; } + /* 80174E34 */ cXyz talkEyePos(fopAc_ac_c* i_actor) { return i_actor->eyePos; } void debugDraw(); @@ -416,13 +396,13 @@ public: f32 TrimHeight() { return mTrimHeight; } int Type() { return mCurType; } int Mode() { return mCurMode; } - f32 Fovy() { return mFovY + mShake.field_0x3c; } + f32 Fovy() { return mFovy + mShake.field_0x3c; } bool isModeOK() { return field_0x158.field_0x0; } bool push_any_key() { return field_0x224; } - bool chkFlag(u32 i_flag) { return mEventFlags & i_flag; } - void setFlag(u32 i_flag) { mEventFlags |= i_flag; } - void clrFlag(u32 i_flag) { mEventFlags &= ~i_flag; } + bool chkFlag(u32 i_flag) { return (mEventFlags & i_flag) != 0; } + 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; } @@ -450,7 +430,7 @@ public: s16 U2() { if (chkFlag(0x10)) { - return field_0x5c.field_0x0.U(); + return field_0x5c.mDirection.U(); } else { return field_0x8c; } @@ -469,27 +449,27 @@ public: /* 0x021 */ u8 field_0x21; /* 0x022 */ u8 field_0x22[2]; /* 0x024 */ int field_0x24; - /* 0x028 */ cSGlobe field_0x28; + /* 0x028 */ cSGlobe mDirection; /* 0x030 */ cXyz mCenter; /* 0x03C */ cXyz mEye; /* 0x048 */ cXyz mUp; /* 0x054 */ cSAngle mBank; - /* 0x058 */ f32 mFovY; + /* 0x058 */ f32 mFovy; class { public: - /* 0x00 */ cSGlobe field_0x0; - /* 0x08 */ cXyz field_0x8; - /* 0x14 */ cXyz field_0x14; - /* 0x20 */ cSAngle field_0x20; + /* 0x00 */ cSGlobe mDirection; + /* 0x08 */ cXyz mCenter; + /* 0x14 */ cXyz mEye; + /* 0x20 */ cSAngle mBank; + /* 0x24 */ f32 mFovy; } /* 0x05C */ field_0x5c; - /* 0x080 */ f32 field_0x80; /* 0x084 */ f32 field_0x84; /* 0x088 */ u32 field_0x88; /* 0x08C */ cSAngle field_0x8c; /* 0x090 */ cXyz field_0x90; /* 0x09C */ cXyz field_0x9c; - /* 0x0A8 */ int field_0xa8; + /* 0x0A8 */ u32 field_0xa8; /* 0x0AC */ u32 field_0xac; /* 0x0B0 */ dCamInfo_c field_0xb0; /* 0x0D0 */ dCamInfo_c field_0xd0[2]; @@ -514,19 +494,19 @@ public: /* 0x4 */ cSAngle field_0x4; } /* 0x158 */ field_0x158; - /* 0x160 */ int field_0x160; + /* 0x160 */ u32 field_0x160; /* 0x164 */ int field_0x164; /* 0x168 */ u8 field_0x168; /* 0x169 */ int field_0x16c; /* 0x170 */ int field_0x170; - /* 0x174 */ u32 mCurCamTypeTimer; + /* 0x174 */ u32 mCurCamStyleTimer; /* 0x178 */ u32 mCameraID; /* 0x17C */ u32 mPadID; /* 0x180 */ fopAc_ac_c* mpPlayerActor; /* 0x184 */ fopAc_ac_c* mpLockonTarget; - /* 0x188 */ u32 field_0x188; - /* 0x18C */ u32 field_0x18c; - /* 0x190 */ int field_0x190; + /* 0x188 */ fopAc_ac_c* field_0x188; + /* 0x18C */ fopAc_ac_c* field_0x18c; + /* 0x190 */ int mIsWolf; /* 0x194 */ bool field_0x194; /* 0x198 */ fpc_ProcID mLockOnActorID; /* 0x19C */ fopAc_ac_c* mpLockOnActor; @@ -565,7 +545,7 @@ public: /* 0x221 */ bool mTrigB; /* 0x222 */ u8 field_0x222; /* 0x223 */ u8 field_0x223; - /* 0x224 */ u8 field_0x224; + /* 0x224 */ bool field_0x224; /* 0x228 */ dCamForcusLine mFocusLine; /* 0x298 */ dCamera_FakeAngle_system mFakeAngleSys; /* 0x2A0 */ dCamera_monitoring_things mMonitor; @@ -573,10 +553,206 @@ public: /* 0x2C4 */ int field_0x2c4; /* 0x2C8 */ f32 field_0x2c8; /* 0x2CC */ BG mBG; - /* 0x3E8 */ u8 field_0x3e8; - /* 0x3EC */ int field_0x3ec; - /* 0x3F0 */ int field_0x3f0; - /* 0x3F4 */ u8 field_0x3f4[0x4E8 - 0x3F4]; + /* 0x3E8 */ union { + struct { + /* 0x00 */ int field_0x0; + /* 0x04 */ int field_0x4; + /* 0x08 */ f32 field_0x8; + /* 0x0C */ f32 field_0xc; + /* 0x10 */ int field_0x10; + /* 0x14 */ int field_0x14; + /* 0x18 */ s16 field_0x18; + /* 0x1A */ s16 field_0x1a; + /* 0x1C */ s16 field_0x1c; + /* 0x20 */ f32 field_0x20; + /* 0x24 */ f32 field_0x24; + /* 0x28 */ f32 field_0x28; + /* 0x2C */ f32 field_0x2c; + /* 0x30 */ f32 field_0x30; + /* 0x34 */ f32 field_0x34; + /* 0x38 */ f32 field_0x38; + /* 0x3C */ f32 field_0x3c; + /* 0x40 */ f32 field_0x40; + /* 0x44 */ int field_0x44; + /* 0x48 */ f32 field_0x48; + /* 0x4C */ f32 field_0x4c; + /* 0x50 */ f32 field_0x50; + /* 0x54 */ f32 field_0x54; + /* 0x58 */ cXyz field_0x58; + /* 0x64 */ cXyz field_0x64; + /* 0x70 */ bool field_0x70; + /* 0x71 */ bool field_0x71; + /* 0x72 */ bool field_0x72; + /* 0x73 */ bool field_0x73; + /* 0x74 */ f32 field_0x74; + /* 0x78 */ f32 field_0x78; + /* 0x7C */ f32 field_0x7c; + /* 0x80 */ f32 field_0x80; + /* 0x84 */ f32 field_0x84; + /* 0x88 */ f32 field_0x88; + /* 0x8C */ int field_0x8c; + /* 0x90 */ bool field_0x90; + /* 0x91 */ bool field_0x91; + /* 0x92 */ bool field_0x92; + /* 0x93 */ bool field_0x93; + /* 0x94 */ bool field_0x94; + /* 0x95 */ bool field_0x95; + /* 0x96 */ cSAngle field_0x96; + /* 0x98 */ cSAngle field_0x98; + /* 0x9A */ cSAngle field_0x9a; + /* 0x9C */ int field_0x9c; + /* 0xA0 */ int field_0xa0; + /* 0xA4 */ f32 field_0xa4; + /* 0xA8 */ int field_0xa8; + /* 0xAC */ f32 field_0xac; + } chase; + struct { + /* 0x00 */ int field_0x0; + /* 0x04 */ u8 field_0x4[8]; + /* 0x0C */ int field_0xc; + /* 0x10 */ f32 field_0x10; + /* 0x14 */ int field_0x14; + /* 0x18 */ bool field_0x18; + /* 0x1C */ cXyz field_0x1c; + /* 0x28 */ bool field_0x28; + /* 0x29 */ bool field_0x29; + /* 0x2A */ bool field_0x2a; + /* 0x2C */ int field_0x2c; + /* 0x30 */ int field_0x30; + /* 0x34 */ cSGlobe field_0x34; + /* 0x3C */ fpc_ProcID field_0x3c; + /* 0x40 */ bool field_0x40; + /* 0x42 */ cSAngle field_0x42; + /* 0x44 */ int field_0x44; + /* 0x48 */ f32 field_0x48; + /* 0x4C */ f32 field_0x4c; + /* 0x50 */ cSAngle field_0x50; + /* 0x54 */ f32 field_0x54; + /* 0x58 */ f32 field_0x58; + /* 0x5C */ f32 field_0x5c; + /* 0x60 */ f32 field_0x60; + } lockon; + struct { + /* 0x00 */ int field_0x0; + /* 0x04 */ cXyz field_0x4; + /* 0x10 */ cXyz field_0x10; + /* 0x1C */ cXyz field_0x1c; + /* 0x28 */ cSGlobe field_0x28; + /* 0x30 */ cSGlobe field_0x30; + /* 0x38 */ int field_0x38; + /* 0x3C */ int field_0x3c; + /* 0x40 */ int field_0x40; + /* 0x44 */ int field_0x44; + /* 0x48 */ int field_0x48; + /* 0x4C */ f32 field_0x4c; + /* 0x50 */ f32 field_0x50; + /* 0x54 */ f32 field_0x54; + /* 0x58 */ f32 field_0x58; + /* 0x5C */ f32 field_0x5c; + /* 0x60 */ f32 field_0x60; + /* 0x64 */ f32 field_0x64; + /* 0x68 */ f32 field_0x68; + /* 0x6C */ f32 field_0x6c; + /* 0x70 */ fopAc_ac_c* field_0x70; + /* 0x74 */ fopAc_ac_c* field_0x74; + /* 0x78 */ fopAc_ac_c* field_0x78; + /* 0x7C */ f32 field_0x7c; + /* 0x80 */ f32 field_0x80; + /* 0x84 */ s16 field_0x84; + /* 0x86 */ s16 field_0x86; + /* 0x88 */ bool field_0x88; + /* 0x89 */ bool field_0x89; + /* 0x8C */ u32 field_0x8c; + /* 0x90 */ cXyz field_0x90; + /* 0x9C */ cXyz field_0x9c; + /* 0xA8 */ cSGlobe field_0xa8; + /* 0xB0 */ f32 field_0xb0; + /* 0xB4 */ cXyz field_0xb4; + /* 0xC0 */ cXyz field_0xc0; + /* 0xCC */ cXyz field_0xcc; + /* 0xD8 */ cXyz field_0xd8; + } talk; + struct { + /* 0x00 */ int field_0x0; + /* 0x04 */ cXyz field_0x4; + /* 0x10 */ int field_0x10; + /* 0x14 */ int field_0x14; + /* 0x18 */ int field_0x18; + /* 0x1C */ bool field_0x1c; + /* 0x1D */ bool field_0x1d; + /* 0x20 */ f32 field_0x20; + /* 0x24 */ f32 field_0x24; + /* 0x28 */ cSAngle field_0x28; + /* 0x2A */ cSAngle field_0x2a; + /* 0x2C */ cSAngle field_0x2c; + /* 0x2E */ cSAngle field_0x2e; + /* 0x30 */ cXyz field_0x30; + /* 0x3C */ cXyz field_0x3c; + /* 0x48 */ cSGlobe field_0x48; + } subject; + struct { + /* 0x00 */ int field_0x0; + /* 0x04 */ cXyz field_0x4; + /* 0x10 */ cXyz field_0x10; + /* 0x1C */ cSGlobe field_0x1c; + } magne; + struct { + /* 0x00 */ u8 field_0x0[8]; + /* 0x08 */ cXyz field_0x8; + /* 0x14 */ f32 field_0x14; + /* 0x18 */ int field_0x18; + } colosseum; + struct { + /* 0x00 */ int field_0x0; + /* 0x04 */ int field_0x4; + /* 0x08 */ f32 field_0x8; + /* 0x0C */ f32 field_0xc; + /* 0x10 */ int field_0x10; + /* 0x14 */ int field_0x14; + /* 0x18 */ f32 field_0x18; + /* 0x1C */ f32 field_0x1c; + /* 0x20 */ f32 field_0x20; + /* 0x24 */ f32 field_0x24; + /* 0x28 */ cSAngle field_0x28; + /* 0x2C */ f32 field_0x2c; + /* 0x30 */ f32 field_0x30; + /* 0x34 */ f32 field_0x34; + /* 0x38 */ int field_0x38; + /* 0x3C */ f32 field_0x3c; + /* 0x40 */ f32 field_0x40; + /* 0x44 */ f32 field_0x44; + /* 0x48 */ cXyz field_0x48; + /* 0x54 */ cXyz field_0x54; + /* 0x60 */ cSAngle field_0x60; + /* 0x64 */ int field_0x64; + /* 0x68 */ bool field_0x68; + /* 0x69 */ bool field_0x69; + /* 0x6A */ bool field_0x6a; + /* 0x6B */ bool field_0x6b; + /* 0x6C */ bool field_0x6c; + /* 0x70 */ f32 field_0x70; + /* 0x74 */ f32 field_0x74; + /* 0x78 */ f32 field_0x78; + /* 0x7C */ f32 field_0x7c; + /* 0x80 */ f32 field_0x80; + /* 0x84 */ f32 field_0x84; + } tower; + struct { + /* 0x00 */ int field_0x0; + /* 0x04 */ u8 field_0x4[4]; + /* 0x08 */ cXyz field_0x8; + /* 0x14 */ cXyz field_0x14; + /* 0x20 */ bool field_0x20; + } hookshot; + struct { + /* 0x00 */ bool field_0x0; + /* 0x04 */ int field_0x4; + /* 0x08 */ int field_0x8; + } event; + struct { + u8 field_0x0[0x100]; + } bytes; + } mWork; /* 0x4E8 */ dCamera_event_data mEventData; /* 0x60C */ u32 mEventFlags; /* 0x610 */ u8 field_0x610; @@ -652,7 +828,7 @@ public: /* 0x92C */ f32 field_0x92c; /* 0x930 */ u8 field_0x930[0x930 - 0x92c]; /* 0x934 */ f32 field_0x934; - /* 0x938 */ u8 field_0x938[0x93C - 0x938]; + /* 0x938 */ int field_0x938; /* 0x93C */ int field_0x93c; /* 0x940 */ int field_0x940; /* 0x944 */ u8 field_0x944; @@ -662,7 +838,8 @@ public: /* 0x954 */ u8 field_0x954[0x958 - 0x954]; /* 0x958 */ int field_0x958; /* 0x95C */ cXyz field_0x95c; - /* 0x968 */ u8 field_0x968[0x970 - 0x968]; + /* 0x968 */ f32 field_0x968; + /* 0x96C */ f32 field_0x96c; /* 0x970 */ dCamSetup_c mCamSetup; /* 0xAEC */ dCamParam_c mCamParam; /* 0xB0C */ u8 field_0xb0c; diff --git a/include/d/d_cc_s.h b/include/d/d_cc_s.h index 619bb360b8..9db69795ed 100644 --- a/include/d/d_cc_s.h +++ b/include/d/d_cc_s.h @@ -47,6 +47,7 @@ public: void SetMass(cCcD_Obj* i_obj, u8 i_priority) { mMass_Mng.Set(i_obj, i_priority); } void SetMassCam(cM3dGCps& i_cps) { mMass_Mng.SetCam(i_cps); } u32 GetMassResultCam() { return mMass_Mng.GetResultCam(); } + void GetMassCamTopPos(Vec* o_pos) { mMass_Mng.GetCamTopPos(o_pos); } void PrepareMass() { mMass_Mng.Prepare(); } u32 ChkMass(cXyz* param_0, fopAc_ac_c** param_1, dCcMassS_HitInf* param_2) { diff --git a/include/d/d_com_inf_game.h b/include/d/d_com_inf_game.h index 4432c181e1..aae93b2b76 100644 --- a/include/d/d_com_inf_game.h +++ b/include/d/d_com_inf_game.h @@ -85,6 +85,13 @@ class daAlink_c; class dMsgObject_c; class J2DOrthoGraph; +class dComIfG_MesgCamInfo_c { +public: + /* 0x00 */ int mID; + /* 0x04 */ int mBasicID; + /* 0x08 */ fopAc_ac_c* mActor[10]; +}; + class dComIfG_play_c { public: dComIfG_play_c() { this->ct(); } @@ -361,10 +368,10 @@ public: s32 getItemRupeeCount() { return mItemRupeeCount; } s16 getItemKeyNumCount() { return mItemKeyNumCount; } void clearNowAnimeID() { mNowAnimeID = -1; } - void clearMesgCamInfoID() { mMesgCamInfo = -1; } + void clearMesgCamInfoID() { mMesgCamInfo.mID = -1; } void clearBaseAnimeID() { mBaseAnimeID = 0; } void clearFaceAnimeID() { mFaceAnimeID = 0; } - void clearMesgCamInfoBasicID() { mMesgCamInfoBasicID = 0; } + void clearMesgCamInfoBasicID() { mMesgCamInfo.mBasicID = 0; } void clearItemMaxLifeCount() { mItemMaxLifeCount = 0; } void clearItemMaxOilCount() { mItemMaxOilCount = 0; } void clearItemOilCount() { mItemOilCount = 0; } @@ -463,23 +470,23 @@ public: void setMsgCommonArchive(JKRArchive* arc) { mMsgCommonArchive = arc; } void setMsgArchive(int i, JKRArchive* arc) { mMsgArchive[i] = arc; } void setMsgObjectClass(dMsgObject_c* obj) { mMsgObjectClass = obj; } - void setMesgCamInfoBasicID(int id) { mMesgCamInfoBasicID = id; } + void setMesgCamInfoBasicID(int id) { mMesgCamInfo.mBasicID = id; } void setMesgCamInfoActor(fopAc_ac_c* param_1, fopAc_ac_c* param_2, fopAc_ac_c* param_3, fopAc_ac_c* param_4, fopAc_ac_c* param_5, fopAc_ac_c* param_6, fopAc_ac_c* param_7, fopAc_ac_c* param_8, fopAc_ac_c* param_9, fopAc_ac_c* param_10) { - mMesgCamInfoActor1 = param_1; - mMesgCamInfoActor2 = param_2; - mMesgCamInfoActor3 = param_3; - mMesgCamInfoActor4 = param_4; - mMesgCamInfoActor5 = param_5; - mMesgCamInfoActor6 = param_6; - mMesgCamInfoActor7 = param_7; - mMesgCamInfoActor8 = param_8; - mMesgCamInfoActor9 = param_9; - mMesgCamInfoActor10 = param_10; + mMesgCamInfo.mActor[0] = param_1; + mMesgCamInfo.mActor[1] = param_2; + mMesgCamInfo.mActor[2] = param_3; + mMesgCamInfo.mActor[3] = param_4; + mMesgCamInfo.mActor[4] = param_5; + mMesgCamInfo.mActor[5] = param_6; + mMesgCamInfo.mActor[6] = param_7; + mMesgCamInfo.mActor[7] = param_8; + mMesgCamInfo.mActor[8] = param_9; + mMesgCamInfo.mActor[9] = param_10; } - int getMesgCamInfo() { return mMesgCamInfoBasicID; } + dComIfG_MesgCamInfo_c* getMesgCamInfo() { return &mMesgCamInfo; } void setFontArchive(JKRArchive* arc) { mFontArchive = arc; } void setRubyArchive(JKRArchive* arc) { mRubyArchive = arc; } void setMain2DArchive(JKRArchive* arc) { mMain2DArchive = arc; } @@ -494,7 +501,7 @@ public: } void setPlayerStatus(int param_0, int i, u32 flag) { mPlayerStatus[param_0][i] |= flag; } void clearPlayerStatus(int param_0, int i, u32 flag) { mPlayerStatus[param_0][i] &= ~flag; } - u32 checkPlayerStatus(int param_0, int i, u32 flag) { return flag & mPlayerStatus[param_0][i]; } + u32 checkPlayerStatus(int param_0, int i, u32 flag) { return mPlayerStatus[param_0][i] & flag; } int getPlayerCameraID(int i) { return mPlayerCameraID[i * 8]; } int getCameraPlayer1ID(int i) { return mCameraInfo[i].field_0x5; } @@ -521,6 +528,7 @@ public: } f32 getCameraZoomForcus(int i_no) { return mCameraInfo[i_no].mCameraZoomForcus; } + void setCameraZoomForcus(int i_no, f32 i_focus) { mCameraInfo[i_no].mCameraZoomForcus = i_focus; } f32 getCameraZoomScale(int i_no) { return mCameraInfo[i_no].mCameraZoomScale; } void setCameraZoomScale(int i_no, f32 i_scale) { mCameraInfo[i_no].mCameraZoomScale = i_scale; } @@ -539,7 +547,7 @@ public: *o_bank = mCameraInfo[i].mCameraBank; } - void setMesgCamInfoID(int param_0) { mMesgCamInfo = param_0; } + void setMesgCamInfoID(int param_0) { mMesgCamInfo.mID = param_0; } void setStatus(u16 status) { mStatus = status; } s32 checkStatus(u16 flags) { return flags & mStatus; } @@ -778,18 +786,7 @@ public: /* 0x04FAB */ u8 field_0x4fab; // related to setWarpItemData /* 0x04FAC */ u8 field_0x4fac; // related to setWarpItemData /* 0x04FAD */ u8 field_0x4fad[3]; - /* 0x04FB0 */ int mMesgCamInfo; - /* 0x04FB4 */ int mMesgCamInfoBasicID; - /* 0x04FB8 */ fopAc_ac_c* mMesgCamInfoActor1; - /* 0x04FBC */ fopAc_ac_c* mMesgCamInfoActor2; - /* 0x04FC0 */ fopAc_ac_c* mMesgCamInfoActor3; - /* 0x04FC4 */ fopAc_ac_c* mMesgCamInfoActor4; - /* 0x04FC8 */ fopAc_ac_c* mMesgCamInfoActor5; - /* 0x04FCC */ fopAc_ac_c* mMesgCamInfoActor6; - /* 0x04FD0 */ fopAc_ac_c* mMesgCamInfoActor7; - /* 0x04FD4 */ fopAc_ac_c* mMesgCamInfoActor8; - /* 0x04FD8 */ fopAc_ac_c* mMesgCamInfoActor9; - /* 0x04FDC */ fopAc_ac_c* mMesgCamInfoActor10; + /* 0x04FB0 */ dComIfG_MesgCamInfo_c mMesgCamInfo; /* 0x04FE0 */ u32 mPlayerStatus[1][4]; /* 0x04FF0 */ u8 field_0x4ff0[0x8]; /* 0x04FF8 */ __d_timer_info_c mTimerInfo; @@ -2792,6 +2789,10 @@ inline f32 dComIfGp_getCameraZoomScale(int i_no) { return g_dComIfG_gameInfo.play.getCameraZoomScale(i_no); } +inline void dComIfGp_setCameraZoomForcus(int i_no, f32 i_focus) { + g_dComIfG_gameInfo.play.setCameraZoomForcus(i_no, i_focus); +} + inline f32 dComIfGp_getCameraZoomForcus(int i_no) { return g_dComIfG_gameInfo.play.getCameraZoomForcus(i_no); } @@ -3236,11 +3237,11 @@ inline void dComIfGp_setMesgCameraAttrInfo(int param_1) { g_dComIfG_gameInfo.play.setMesgCamInfoBasicID(param_1); } -inline int dComIfGp_getMesgCameraInfo() { +inline dComIfG_MesgCamInfo_c* dComIfGp_getMesgCameraInfo() { return g_dComIfG_gameInfo.play.getMesgCamInfo(); } -inline s32 dComIfGp_roomControl_getStayNo() { +inline int dComIfGp_roomControl_getStayNo() { return dStage_roomControl_c::getStayNo(); } diff --git a/include/d/d_name.h b/include/d/d_name.h index 229debe31b..8360d381b0 100644 --- a/include/d/d_name.h +++ b/include/d/d_name.h @@ -14,7 +14,7 @@ class STControl; class dNm_HIO_c { public: /* 8024E3E0 */ dNm_HIO_c(); - /* 802511A4 */ virtual ~dNm_HIO_c(); + /* 802511A4 */ virtual ~dNm_HIO_c() {} /* 0x04 */ s8 field_0x4; /* 0x08 */ f32 mMenuScale; @@ -27,7 +27,7 @@ public: dDlst_NameIN_c() {} /* 80251094 */ virtual void draw(); - /* 8025115C */ virtual ~dDlst_NameIN_c(); + /* 8025115C */ virtual ~dDlst_NameIN_c() {} /* 0x04 */ J2DScreen* NameInScr; /* 0x08 */ JUTFont* font; diff --git a/include/d/d_particle.h b/include/d/d_particle.h index 958c1a145f..eea3e1d825 100644 --- a/include/d/d_particle.h +++ b/include/d/d_particle.h @@ -6,6 +6,8 @@ #include "d/d_particle_name.h" #include "d/d_kankyo.h" +void dPa_cleanupGX(); + class J3DAnmTexPattern; class J3DModel; class J3DModelData; @@ -114,8 +116,8 @@ public: dPa_setColorEcallBack(const GXColor& color) { mColor = color; } /* 800502E4 */ virtual ~dPa_setColorEcallBack() {} - /* 800502B0 */ virtual void draw(JPABaseEmitter*); - /* 800502E0 */ virtual void setup(JPABaseEmitter*, cXyz const*, csXyz const*, s8); + /* 800502B0 */ virtual void draw(JPABaseEmitter*) { GXSetTevColor(GX_TEVREG1, mColor); } + /* 800502E0 */ virtual void setup(JPABaseEmitter*, cXyz const*, csXyz const*, s8) {} /* 0x4 */ GXColor mColor; }; @@ -126,7 +128,7 @@ public: /* 8004FF8C */ virtual ~dPa_selectTexEcallBack() {} /* 8004ADC4 */ virtual void draw(JPABaseEmitter*); - /* 80050010 */ virtual void setup(JPABaseEmitter*, cXyz const*, csXyz const*, s8); + /* 80050010 */ virtual void setup(JPABaseEmitter*, cXyz const*, csXyz const*, s8) {} /* 0x4 */ u8 field_0x4; }; @@ -184,7 +186,7 @@ public: /* 80050378 */ virtual ~dPa_modelEcallBack() {} /* 8004AA34 */ virtual void draw(JPABaseEmitter*); - /* 80050014 */ virtual void drawAfter(JPABaseEmitter*); + /* 80050014 */ virtual void drawAfter(JPABaseEmitter* param_0) { cleanupModel(param_0); } /* 8004AAA8 */ virtual void setup(JPABaseEmitter*, cXyz const*, csXyz const*, s8); static void setModel(JPABaseEmitter* param_0, J3DModelData* param_1, @@ -211,7 +213,7 @@ class dPa_light8EcallBack : public dPa_levelEcallBack { public: /* 8005015C */ virtual ~dPa_light8EcallBack() {} /* 8004A340 */ virtual void draw(JPABaseEmitter*); - /* 800501E0 */ virtual void drawAfter(JPABaseEmitter*); + /* 800501E0 */ virtual void drawAfter(JPABaseEmitter*) { dPa_cleanupGX(); } /* 8004979C */ virtual void setup(JPABaseEmitter*, cXyz const*, csXyz const*, s8); }; @@ -226,7 +228,7 @@ class dPa_gen_d_light8EcallBack : public dPa_levelEcallBack { public: /* 800503FC */ virtual ~dPa_gen_d_light8EcallBack() {} /* 8004A388 */ virtual void draw(JPABaseEmitter*); - /* 80050098 */ virtual void drawAfter(JPABaseEmitter*); + /* 80050098 */ virtual void drawAfter(JPABaseEmitter*) { dPa_cleanupGX(); } /* 800497CC */ virtual void setup(JPABaseEmitter*, cXyz const*, csXyz const*, s8); }; @@ -241,7 +243,7 @@ class dPa_gen_b_light8EcallBack : public dPa_levelEcallBack { public: /* 800500B8 */ virtual ~dPa_gen_b_light8EcallBack() {} /* 8004A364 */ virtual void draw(JPABaseEmitter*); - /* 8005013C */ virtual void drawAfter(JPABaseEmitter*); + /* 8005013C */ virtual void drawAfter(JPABaseEmitter*) { dPa_cleanupGX(); } /* 800497B0 */ virtual void setup(JPABaseEmitter*, cXyz const*, csXyz const*, s8); }; @@ -452,7 +454,7 @@ public: } static dPa_selectTexEcallBack mTsubo[8]; - static u8 mLifeBall[24]; + static dPa_setColorEcallBack mLifeBall[3]; static Mtx mWindViewMatrix; static JPAEmitterManager* mEmitterMng; static dPa_wbPcallBack_c mWaterBubblePcallBack; diff --git a/include/d/d_s_play.h b/include/d/d_s_play.h index 816ca182d1..4c7dc454a8 100644 --- a/include/d/d_s_play.h +++ b/include/d/d_s_play.h @@ -1,7 +1,7 @@ #ifndef D_S_D_S_PLAY_H #define D_S_D_S_PLAY_H -#include "SSystem/SComponent/c_xyz.h" +#include "d/d_s_play_env.h" #include "f_op/f_op_scene.h" #include "m_Do/m_Do_hostIO.h" @@ -32,32 +32,6 @@ public: void genMessage(JORMContext*); }; -class dScnPly_env_otherHIO_c { -public: - /* 80259440 */ dScnPly_env_otherHIO_c(); - - /* 8025AC0C */ virtual ~dScnPly_env_otherHIO_c() {} - - /* 0x4 */ f32 mShadowDensity; - /* 0x8 */ u8 mLODBias; - /* 0x9 */ u8 field_0x9; - /* 0xA */ u8 mDispTransCylinder; -}; - -class dScnPly_env_debugHIO_c { -public: - /* 80259468 */ dScnPly_env_debugHIO_c(); - - /* 8025ABC4 */ virtual ~dScnPly_env_debugHIO_c() {} - -private: - /* 0x04 */ u8 field_0x4; - /* 0x08 */ cXyz mBoxCullMinSize; - /* 0x14 */ cXyz mBoxCullMaxSize; - /* 0x20 */ cXyz mSphereCullCenter; - /* 0x2C */ f32 mSphereCullRadius; -}; - class dScnPly_env_HIO_c { public: /* 8025AD04 */ virtual ~dScnPly_env_HIO_c() {} @@ -67,9 +41,6 @@ public: /* 0x14 */ dScnPly_env_debugHIO_c mDebug; }; -extern s8 pauseTimer__9dScnPly_c; -extern s8 nextPauseTimer__9dScnPly_c; // sPauseTimer - class dScnPly_c : public scene_class { public: /* 80259400 */ s8 calcPauseTimer(); diff --git a/include/d/d_s_play_env.h b/include/d/d_s_play_env.h new file mode 100644 index 0000000000..5d207dcc8a --- /dev/null +++ b/include/d/d_s_play_env.h @@ -0,0 +1,27 @@ +#include "SSystem/SComponent/c_xyz.h" + +class dScnPly_env_otherHIO_c { +public: + /* 80259440 */ dScnPly_env_otherHIO_c(); + + /* 8025AC0C */ virtual ~dScnPly_env_otherHIO_c() {} + + /* 0x4 */ f32 mShadowDensity; + /* 0x8 */ u8 mLODBias; + /* 0x9 */ u8 field_0x9; + /* 0xA */ u8 mDispTransCylinder; +}; + +class dScnPly_env_debugHIO_c { +public: + /* 80259468 */ dScnPly_env_debugHIO_c(); + + /* 8025ABC4 */ virtual ~dScnPly_env_debugHIO_c() {} + +private: + /* 0x04 */ u8 field_0x4; + /* 0x08 */ cXyz mBoxCullMinSize; + /* 0x14 */ cXyz mBoxCullMaxSize; + /* 0x20 */ cXyz mSphereCullCenter; + /* 0x2C */ f32 mSphereCullRadius; +}; diff --git a/include/d/d_spline_path.h b/include/d/d_spline_path.h index 7e011ed099..f45d8d95f2 100644 --- a/include/d/d_spline_path.h +++ b/include/d/d_spline_path.h @@ -16,12 +16,6 @@ struct dPathCurve { class d2DBSplinePath { public: - /* 80097878 */ void Init(s32, s32); - /* 80097904 */ bool Step(); - /* 80097B20 */ f32 Calc(f32*); - /* 80097A6C */ cXyz Calc(cXyz*); - /* 80097B68 */ f32 Spot(f32*, f32); - /* 0x00 */ s32 field_0x00; /* 0x04 */ s32 field_0x04; /* 0x08 */ s32 field_0x08; @@ -30,7 +24,14 @@ public: /* 0x14 */ f32 mCurveWeight[3]; /* 0x20 */ int mCurveKey[3]; /* 0x2C */ int field_0x2c; - /* 0x30 */ void* field_0x30; + + d2DBSplinePath() { Init(0, 0); } + /* 80097878 */ void Init(s32, s32); + /* 80097904 */ bool Step(); + /* 80097B20 */ f32 Calc(f32*); + /* 80097A6C */ cXyz Calc(cXyz*); + /* 80097B68 */ f32 Spot(f32*, f32); + /* 801828D4 */ virtual ~d2DBSplinePath() {} }; #endif /* D_D_SPLINE_PATH_H */ diff --git a/include/d/d_stage.h b/include/d/d_stage.h index 5f11a9c264..e63b56c8ef 100644 --- a/include/d/d_stage.h +++ b/include/d/d_stage.h @@ -561,7 +561,7 @@ public: void setTreasure(stage_tresure_class*); - s16 getWorldRollAngleX() { return mWorldRollAngleX; } + s16 getWorldRollAngleX() { return (s16)mWorldRollAngleX; } s16 getWorldRollDirAngleY() { return mWorldRollDirAngleY; } public: diff --git a/include/f_op/f_op_camera.h b/include/f_op/f_op_camera.h index da55182179..584bff29d4 100644 --- a/include/f_op/f_op_camera.h +++ b/include/f_op/f_op_camera.h @@ -8,6 +8,7 @@ class camera_class; struct camera_process_profile_definition { /* 0x00 */ view_process_profile_definition base; /* 0x3C */ leafdraw_method_class* sub_method; // Subclass methods + /* 0x40 */ u32 unk_0x40; }; static s32 fopCam_Draw(camera_class* i_this); |
