diff options
| author | TakaRikka <38417346+TakaRikka@users.noreply.github.com> | 2024-06-25 07:34:59 -0700 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-06-25 08:34:59 -0600 |
| commit | d923917b39f99ca74bd2ee2f609e8ff193f5c48a (patch) | |
| tree | 380aeb1dc2527f54e23f7b63ede46b2ce24ff0a8 /include | |
| parent | 3c82015f69403d22f7ee3809425cb217f5bdc3b5 (diff) | |
work on d_camera / d_ev_camera (#2170)
Diffstat (limited to 'include')
| -rw-r--r-- | include/SSystem/SComponent/c_angle.h | 5 | ||||
| -rw-r--r-- | include/Z2AudioLib/Z2StatusMgr.h | 1 | ||||
| -rw-r--r-- | include/d/a/d_a_alink.h | 6 | ||||
| -rw-r--r-- | include/d/a/d_a_player.h | 4 | ||||
| -rw-r--r-- | include/d/bg/d_bg_s.h | 2 | ||||
| -rw-r--r-- | include/d/bg/d_bg_w.h | 4 | ||||
| -rw-r--r-- | include/d/bg/d_bg_w_base.h | 2 | ||||
| -rw-r--r-- | include/d/bg/d_bg_w_kcol.h | 2 | ||||
| -rw-r--r-- | include/d/com/d_com_inf_game.h | 68 | ||||
| -rw-r--r-- | include/d/d_attention.h | 5 | ||||
| -rw-r--r-- | include/d/d_cam_param.h | 19 | ||||
| -rw-r--r-- | include/d/d_camera.h | 225 | ||||
| -rw-r--r-- | include/d/d_demo.h | 14 | ||||
| -rw-r--r-- | include/d/d_drawlist.h | 2 | ||||
| -rw-r--r-- | include/d/d_stage.h | 17 | ||||
| -rw-r--r-- | include/d/event/d_event_manager.h | 1 | ||||
| -rw-r--r-- | include/d/save/d_save.h | 12 | ||||
| -rw-r--r-- | include/f_op/f_op_actor.h | 2 | ||||
| -rw-r--r-- | include/f_op/f_op_camera_mng.h | 42 | ||||
| -rw-r--r-- | include/m_Do/m_Do_audio.h | 8 | ||||
| -rw-r--r-- | include/m_Do/m_Do_controller_pad.h | 1 | ||||
| -rw-r--r-- | include/m_Do/m_Do_mtx.h | 4 | ||||
| -rw-r--r-- | include/rel/d/a/d_a_horse/d_a_horse.h | 3 |
23 files changed, 313 insertions, 136 deletions
diff --git a/include/SSystem/SComponent/c_angle.h b/include/SSystem/SComponent/c_angle.h index 325cd1ff6f..debf6ad07c 100644 --- a/include/SSystem/SComponent/c_angle.h +++ b/include/SSystem/SComponent/c_angle.h @@ -114,12 +114,13 @@ public: }; class cSGlobe { -private: +public: float mRadius; cSAngle mAzimuth; // original: V cSAngle mInclination; // original: U -public: + cSGlobe() {} + cSGlobe(const cSGlobe&); cSGlobe(float, short, short); cSGlobe(float, const cSAngle&, const cSAngle&); diff --git a/include/Z2AudioLib/Z2StatusMgr.h b/include/Z2AudioLib/Z2StatusMgr.h index 40b0ee3aa3..75de83eec9 100644 --- a/include/Z2AudioLib/Z2StatusMgr.h +++ b/include/Z2AudioLib/Z2StatusMgr.h @@ -30,6 +30,7 @@ struct Z2StatusMgr : public JASGlobalInstance<Z2StatusMgr> { u8 getHour() { return mHour; } bool isPaused() { return mIsMenuIn; } bool isHeartGuageOn() { return mHeartGaugeOn; } + void getCameraMapInfo(u32 info) { mCameraMapInfo = info; } /* 0x00 */ u8 mHour; /* 0x01 */ u8 mMinute; diff --git a/include/d/a/d_a_alink.h b/include/d/a/d_a_alink.h index 45e6e1398d..773643d9b9 100644 --- a/include/d/a/d_a_alink.h +++ b/include/d/a/d_a_alink.h @@ -2291,7 +2291,7 @@ public: /* 800FE868 */ void setMoveBGClimbCorrect(); /* 800FEB90 */ int checkBgCorrectClimbMove(cXyz*, cXyz*); /* 800FEC70 */ void checkClimbRoof(f32); - /* 800FED50 */ void checkClimbGround(cXyz*, f32); + /* 800FED50 */ int checkClimbGround(cXyz*, f32); /* 800FEEC0 */ void checkBgClimbMove(int); /* 800FF28C */ void setClimbStartNotGround(); /* 800FF450 */ int procClimbUpStartInit(int); @@ -3198,7 +3198,7 @@ public: BOOL grassCancelTrigger() { return itemTriggerCheck(BTN_B); } BOOL arrowChangeTrigger() { return itemActionTrigger(); } bool peepSubjectCancelTrigger() { return itemTriggerCheck(0x8); } - u32 getStartMode() { return (fopAcM_GetParam(this) >> 0xC) & 0x1F; } + int getStartMode() { return (fopAcM_GetParam(this) >> 0xC) & 0x1F; } inline bool checkInputOnR() const; static int getSightBti() { return 0x5B; } bool checkBoomerangChargeEndWait() const { @@ -3378,6 +3378,8 @@ public: void itemHitSE(u32 param_1, u32 param_2, Z2SoundObjBase* param_3) { mZ2Link.startHitItemSE(param_1, param_2, param_3, -1.0f); } + BOOL checkStartFall() { return getStartMode() == 3; } + inline bool checkWindSpeedOnXZ() const; inline void startRestartRoomFromOut(int, u32, int); inline u16 getReadyItem(); diff --git a/include/d/a/d_a_player.h b/include/d/a/d_a_player.h index c35075fbcf..fefa599d53 100644 --- a/include/d/a/d_a_player.h +++ b/include/d/a/d_a_player.h @@ -793,6 +793,8 @@ public: s16 getBodyAngleX() const { return mBodyAngle.x; } s16 getBodyAngleY() const { return mBodyAngle.y; } + f32 getHeight() const { return field_0x598; } + BOOL checkMidnaWarp() const { return 0; } u32 checkNoResetFlg0(daPy_FLG0 i_flag) const { return mNoResetFlg0 & i_flag; } @@ -869,6 +871,8 @@ public: void changeDemoMoveAngle(s16 i_angle) { mDemo.setMoveAngle(i_angle); } + static bool checkPeepEndSceneChange() { return getLastSceneMode() == 7; } + inline static u32 i_getLastSceneMode(); inline static u32 getLastSceneMode(); inline static bool checkWoodSwordEquip(); diff --git a/include/d/bg/d_bg_s.h b/include/d/bg/d_bg_s.h index 25dbfcd69d..e20cc4ad60 100644 --- a/include/d/bg/d_bg_s.h +++ b/include/d/bg/d_bg_s.h @@ -88,7 +88,7 @@ public: s32 GetRoomCamId(cBgS_PolyInfo const&); s32 GetRoomPathId(cBgS_PolyInfo const&); s32 GetRoomPathPntNo(cBgS_PolyInfo const&); - u8 GetGrpSoundId(cBgS_PolyInfo const&); + int GetGrpSoundId(cBgS_PolyInfo const&); u32 ChkGrpInf(cBgS_PolyInfo const&, u32); s32 GetRoomId(cBgS_PolyInfo const&); bool GetPolyAttackThrough(cBgS_PolyInfo const&); diff --git a/include/d/bg/d_bg_w.h b/include/d/bg/d_bg_w.h index 4ca8f91446..c9b67a7451 100644 --- a/include/d/bg/d_bg_w.h +++ b/include/d/bg/d_bg_w.h @@ -205,7 +205,7 @@ public: virtual s32 GetRoomPathId(cBgS_PolyInfo const&) = 0; virtual s32 GetRoomPathPntNo(cBgS_PolyInfo const&) = 0; virtual u8 GetPolyGrpRoomInfId(cBgS_PolyInfo const&) = 0; - virtual u8 GetGrpSoundId(cBgS_PolyInfo const&) = 0; + virtual int GetGrpSoundId(cBgS_PolyInfo const&) = 0; virtual void CrrPos(cBgS_PolyInfo const&, void*, bool, cXyz*, csXyz*, csXyz*) = 0; virtual void TransPos(cBgS_PolyInfo const&, void*, bool, cXyz*, csXyz*, csXyz*) = 0; virtual void MatrixCrrPos(cBgS_PolyInfo const&, void*, bool, cXyz*, csXyz*, csXyz*) = 0; @@ -309,7 +309,7 @@ public: /* 8007B8D8 */ virtual s32 GetRoomPathId(cBgS_PolyInfo const&); /* 8007B904 */ virtual s32 GetRoomPathPntNo(cBgS_PolyInfo const&); /* 8007DF28 */ virtual u8 GetPolyGrpRoomInfId(cBgS_PolyInfo const&); - /* 8007DF58 */ virtual u8 GetGrpSoundId(cBgS_PolyInfo const&); + /* 8007DF58 */ virtual int GetGrpSoundId(cBgS_PolyInfo const&); /* 8007DF88 */ virtual void CrrPos(cBgS_PolyInfo const&, void*, bool, cXyz*, csXyz*, csXyz*); /* 8007DFC4 */ virtual void TransPos(cBgS_PolyInfo const&, void*, bool, cXyz*, csXyz*, diff --git a/include/d/bg/d_bg_w_base.h b/include/d/bg/d_bg_w_base.h index 587829898d..12f5ddddc9 100644 --- a/include/d/bg/d_bg_w_base.h +++ b/include/d/bg/d_bg_w_base.h @@ -84,7 +84,7 @@ public: virtual s32 GetRoomPathId(cBgS_PolyInfo const&) = 0; virtual s32 GetRoomPathPntNo(cBgS_PolyInfo const&) = 0; virtual u8 GetPolyGrpRoomInfId(cBgS_PolyInfo const&) = 0; - virtual u8 GetGrpSoundId(cBgS_PolyInfo const&) = 0; + virtual int GetGrpSoundId(cBgS_PolyInfo const&) = 0; virtual void CrrPos(cBgS_PolyInfo const&, void*, bool, cXyz*, csXyz*, csXyz*) = 0; virtual void TransPos(cBgS_PolyInfo const&, void*, bool, cXyz*, csXyz*, csXyz*) = 0; virtual void MatrixCrrPos(cBgS_PolyInfo const&, void*, bool, cXyz*, csXyz*, csXyz*) = 0; diff --git a/include/d/bg/d_bg_w_kcol.h b/include/d/bg/d_bg_w_kcol.h index ee842966cb..105eb86e17 100644 --- a/include/d/bg/d_bg_w_kcol.h +++ b/include/d/bg/d_bg_w_kcol.h @@ -105,7 +105,7 @@ public: /* 80082ECC */ virtual s32 GetRoomPathId(cBgS_PolyInfo const&); /* 80082EFC */ virtual s32 GetRoomPathPntNo(cBgS_PolyInfo const&); /* 80082F2C */ virtual u8 GetPolyGrpRoomInfId(cBgS_PolyInfo const&); - /* 80082F5C */ virtual u8 GetGrpSoundId(cBgS_PolyInfo const&); + /* 80082F5C */ virtual int GetGrpSoundId(cBgS_PolyInfo const&); /* 80082F8C */ virtual void CrrPos(cBgS_PolyInfo const&, void*, bool, cXyz*, csXyz*, csXyz*); /* 80082F90 */ virtual void TransPos(cBgS_PolyInfo const&, void*, bool, cXyz*, csXyz*, diff --git a/include/d/com/d_com_inf_game.h b/include/d/com/d_com_inf_game.h index b7b745a8bd..2871bbd0d6 100644 --- a/include/d/com/d_com_inf_game.h +++ b/include/d/com/d_com_inf_game.h @@ -49,8 +49,8 @@ public: ~dComIfG_camera_info_class() {} /* 0x00 */ camera_class* mCamera; - /* 0x04 */ u8 field_0x4; - /* 0x05 */ u8 field_0x5; + /* 0x04 */ s8 field_0x4; + /* 0x05 */ s8 field_0x5; /* 0x06 */ s8 field_0x6; /* 0x07 */ u8 field_0x7; /* 0x08 */ u32 mCameraAttentionStatus; @@ -59,8 +59,8 @@ public: /* 0x14 */ char* mCameraParamFileName; /* 0x18 */ cXyz mCameraPos; /* 0x24 */ cXyz mCameraTarget; - /* 0x30 */ f32 field_0x30; - /* 0x34 */ s16 field_0x34; + /* 0x30 */ f32 mCameraFovy; + /* 0x34 */ s16 mCameraBank; }; STATIC_ASSERT(sizeof(dComIfG_camera_info_class) == 0x38); @@ -486,11 +486,14 @@ public: mPlayer[i] = (daAlink_c*)ptr; mPlayerCameraID[camIdx] = 0; } - void setPlayerStatus(int param_0, int i, u32 flag) { mPlayerStatus[i] |= flag; } - void clearPlayerStatus(int param_0, int i, u32 flag) { mPlayerStatus[i] &= ~flag; } - bool checkPlayerStatus(int param_0, int i, u32 flag) { return flag & mPlayerStatus[i]; } + 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; } + bool checkPlayerStatus(int param_0, int i, u32 flag) { return flag & mPlayerStatus[param_0][i]; } int getPlayerCameraID(int i) { return mPlayerCameraID[i * 8]; } + int getCameraPlayer1ID(int i) { return mCameraInfo[i].field_0x5; } + int getCameraPlayer2ID(int i) { return mCameraInfo[i].field_0x6; } + int getCameraWinID(int i) { return mCameraInfo[i].field_0x4; } void setCameraParamFileName(int i, char* name) { mCameraInfo[i].mCameraParamFileName = name; } void setCamera(int i, camera_class* cam) { mCameraInfo[i].mCamera = cam; } const char* getCameraParamFileName(int i) { return mCameraInfo[i].mCameraParamFileName; } @@ -512,6 +515,21 @@ public: } f32 getCameraZoomForcus(int i_no) { return mCameraInfo[i_no].mCameraZoomForcus; } + void setCameraZoomScale(int i_no, f32 i_scale) { mCameraInfo[i_no].mCameraZoomScale = i_scale; } + + void saveCameraPosition(int i, cXyz* i_pos, cXyz* i_target, f32 i_fovy, s16 i_bank) { + mCameraInfo[i].mCameraPos = *i_pos; + mCameraInfo[i].mCameraTarget = *i_target; + mCameraInfo[i].mCameraFovy = i_fovy; + mCameraInfo[i].mCameraBank = i_bank; + } + + void loadCameraPosition(int i, cXyz* o_pos, cXyz* o_target, f32* o_fovy, s16* o_bank) { + *o_pos = mCameraInfo[i].mCameraPos; + *o_target = mCameraInfo[i].mCameraTarget; + *o_fovy = mCameraInfo[i].mCameraFovy; + *o_bank = mCameraInfo[i].mCameraBank; + } void setMesgCamInfoID(int param_0) { mMesgCamInfo = param_0; } @@ -763,8 +781,8 @@ public: /* 0x04FD4 */ fopAc_ac_c* mMesgCamInfoActor8; /* 0x04FD8 */ fopAc_ac_c* mMesgCamInfoActor9; /* 0x04FDC */ fopAc_ac_c* mMesgCamInfoActor10; - /* 0x04FE0 */ u32 mPlayerStatus[2]; - /* 0x04FE8 */ u8 field_0x4fe8[0x10]; + /* 0x04FE0 */ u32 mPlayerStatus[1][4]; + /* 0x04FF0 */ u8 field_0x4ff0[0x8]; /* 0x04FF8 */ __d_timer_info_c mTimerInfo; /* 0x0500C */ dDlst_window_c* mCurrentWindow; /* 0x05010 */ view_class* mCurrentView; @@ -1659,6 +1677,10 @@ inline void dComIfGp_removeSimpleModel(J3DModelData* i_modelData, int roomNo) { g_dComIfG_gameInfo.play.removeSimpleModel(i_modelData, roomNo); } +inline dSv_turnRestart_c& dComIfGs_getTurnRestart() { + return g_dComIfG_gameInfo.info.getTurnRestart(); +} + inline u32 dComIfGs_getTurnRestartParam() { return g_dComIfG_gameInfo.info.getTurnRestart().getParam(); } @@ -2002,6 +2024,18 @@ inline fopAc_ac_c* dComIfGp_getPlayer(int idx) { return g_dComIfG_gameInfo.play.getPlayer(idx); } +inline int dComIfGp_getCameraPlayer1ID(int idx) { + return g_dComIfG_gameInfo.play.getCameraPlayer1ID(idx); +} + +inline int dComIfGp_getCameraPlayer2ID(int idx) { + return g_dComIfG_gameInfo.play.getCameraPlayer2ID(idx); +} + +inline int dComIfGp_getCameraWinID(int idx) { + return g_dComIfG_gameInfo.play.getCameraWinID(idx); +} + inline int dComIfGp_getPlayerCameraID(int idx) { return g_dComIfG_gameInfo.play.getPlayerCameraID(idx); } @@ -2627,6 +2661,10 @@ inline void dComIfGp_setCameraInfo(int camIdx, camera_class* p_cam, int param_2, g_dComIfG_gameInfo.play.setCameraInfo(camIdx, p_cam, param_2, param_3, param_4); } +inline void dComIfGp_setCameraZoomScale(int i_no, f32 i_scale) { + g_dComIfG_gameInfo.play.setCameraZoomScale(i_no, i_scale); +} + inline f32 dComIfGp_getCameraZoomForcus(int i_no) { return g_dComIfG_gameInfo.play.getCameraZoomForcus(i_no); } @@ -2635,6 +2673,14 @@ inline u32 dComIfGp_getCameraAttentionStatus(int i_no) { return g_dComIfG_gameInfo.play.getCameraAttentionStatus(i_no); } +inline void dComIfGp_saveCameraPosition(int i, cXyz* i_pos, cXyz* i_target, f32 i_fovy, s16 i_bank) { + g_dComIfG_gameInfo.play.saveCameraPosition(i, i_pos, i_target, i_fovy, i_bank); +} + +inline void dComIfGp_loadCameraPosition(int i, cXyz* o_pos, cXyz* o_target, f32* o_fovy, s16* o_bank) { + g_dComIfG_gameInfo.play.loadCameraPosition(i, o_pos, o_target, o_fovy, o_bank); +} + inline void dComIfGp_clearPlayerStatus0(int param_0, u32 flag) { g_dComIfG_gameInfo.play.clearPlayerStatus(param_0, 0, flag); } @@ -3230,6 +3276,10 @@ inline BOOL dComIfGp_evmng_endCheck(s16 eventID) { return g_dComIfG_gameInfo.play.getEvtManager().endCheck(eventID); } +inline int dComIfGp_evmng_cameraPlay() { + return dComIfGp_getPEvtManager()->cameraPlay(); +} + inline u8 dComIfGp_event_getPreItemNo() { return g_dComIfG_gameInfo.play.getEvent().getPreItemNo(); } diff --git a/include/d/d_attention.h b/include/d/d_attention.h index 1f09ef2664..76577b631a 100644 --- a/include/d/d_attention.h +++ b/include/d/d_attention.h @@ -228,6 +228,11 @@ public: param_5); } + void Init(fopAc_ac_c* param_0, u32 i_padNo) { + mpPlayer = param_0; + mPadNo = i_padNo; + } + static dist_entry& i_getDistTable(int i_no) { return dist_table[i_no]; } static type_tbl_entry loc_type_tbl[3]; diff --git a/include/d/d_cam_param.h b/include/d/d_cam_param.h index 92a3fde44b..074d3f2fd2 100644 --- a/include/d/d_cam_param.h +++ b/include/d/d_cam_param.h @@ -22,12 +22,16 @@ public: /* 0xC */ u8 field_0xc[4]; /* 800889B0 */ virtual ~dCstick_c(); + + f32 SwTHH() { return mThresholdHigh; } }; class dCamBGChk_c { public: /* 80088464 */ dCamBGChk_c(); + f32 WallUpDistance() { return mWallUpDistance; } + // name is a guess for now struct ChkInfo { /* 0x0 */ f32 mDistance; @@ -53,7 +57,8 @@ struct dCamStyleData { struct StyleData { /* 0x0 */ u32 field_0x0; /* 0x4 */ u16 field_0x4; - /* 0x6 */ u8 field_0x6[0x78 - 0x6]; + /* 0x6 */ u16 field_0x6; + /* 0x8 */ u8 field_0x8[0x78 - 0x8]; }; // Size: 0x78 /* 0x0 */ u8 field_0x0[4]; @@ -74,7 +79,6 @@ public: /* 80182C74 */ void Arg0(u8); /* 80182C7C */ void Fovy(u8); /* 80182C58 */ void Fovy(); - /* 80182C8C */ void Flag(s32, u16); /* 80182CB4 */ void CheckFlag(u16); /* 80182CD0 */ void Val(s32, int); @@ -88,7 +92,10 @@ public: /* 0x14 */ int mStyleID; /* 0x18 */ u8 field_0x18[4]; - u16 Algorythmn(s32 i_style) { return mCamStyleData[i_style].field_0x4; } + 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; } /* 8008858C */ virtual ~dCamParam_c(); }; @@ -99,7 +106,6 @@ public: /* 80088918 */ bool CheckLatitudeRange(s16*); /* 80088988 */ f32 PlayerHideDist(); /* 80182BB8 */ void CheckFlag2(u16); - /* 80182BD0 */ void CheckFlag(u16); /* 80182BE8 */ void WaitRollSpeed(); /* 80182BF0 */ void WaitRollTimer(); /* 80182C1C */ void ThrowTimer(); @@ -110,6 +116,11 @@ public: /* 80182CF4 */ void ChargeTimer(); /* 80182CFC */ void ChargeLatitude(); + bool CheckFlag(u16 i_flag) { return mDebugFlags & i_flag; } + f32 ManualEndVal() { return mManualEndVal; } + f32 CinemaScopeTrimHeight() { return mTrimCineScopeHeight; } + f32 VistaTrimHeight() { return mTrimVistaHeight; } + /* 0x000 */ f32 mDrawNear; /* 0x004 */ f32 mDrawFar; /* 0x008 */ u16 mDebugFlags; diff --git a/include/d/d_camera.h b/include/d/d_camera.h index 5902b44cbd..4cd581cdf9 100644 --- a/include/d/d_camera.h +++ b/include/d/d_camera.h @@ -11,11 +11,22 @@ class fopAc_ac_c; struct dCamMapToolData { - /* 8015FEB8 */ void Set(s32, s32, fopAc_ac_c*, u16, u8); + dCamMapToolData() { Clr(); } + + /* 8015FEB8 */ int Set(s32, s32, fopAc_ac_c*, u16, u8); + + void Clr() { + field_0x2c = 0xFF; + field_0x30 = 0xFF; + field_0x3a = 0; + field_0x34 = NULL; + field_0x3b = 0xFF; + field_0x38 = 0xFF; + } /* 0x00 */ stage_camera2_data_class field_0x0; /* 0x18 */ stage_arrow_data_class field_0x18; - /* 0x2C */ u32 field_0x2c; + /* 0x2C */ int field_0x2c; /* 0x30 */ s32 field_0x30; /* 0x34 */ fopAc_ac_c* field_0x34; /* 0x38 */ u16 field_0x38; @@ -23,11 +34,12 @@ struct dCamMapToolData { /* 0x3B */ u8 field_0x3b; }; -struct dCamForcusLine : public dDlst_effectLine_c { +struct dCamForcusLine { /* 801824C8 */ void Init(); /* 80182560 */ void Draw(); /* 801825E4 */ void Off(); + /* 0x00 */ dDlst_effectLine_c mEffectLine; /* 0x38 */ cXyz field_0x38; /* 0x44 */ GXColor field_0x44; /* 0x48 */ u8 field_0x48; @@ -53,7 +65,8 @@ struct dCamera_FakeAngle_system { struct dCamera_monitoring_things { /* 0x00 */ cXyz field_0x0; - /* 0x0C */ u8 field_0xc[8]; + /* 0x0C */ f32 field_0xc; + /* 0x10 */ f32 field_0x10; /* 0x14 */ cXyz field_0x14; }; @@ -71,9 +84,11 @@ struct d2DBSplinePath { /* 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(); + /* 801828D4 */ virtual ~d2DBSplinePath() {} }; struct dCamera_event_param { @@ -113,14 +128,10 @@ class dCamera_c { public: class dCamInfo_c { public: - /* 8018291C */ dCamInfo_c(); - /* 80182920 */ ~dCamInfo_c(); - - private: - /* 0x00 */ cXyz field_0x0; - /* 0x0C */ cXyz field_0xc; - /* 0x18 */ f32 field_0x18; - /* 0x1C */ cSAngle field_0x1c; + /* 0x00 */ cXyz mCenter; + /* 0x0C */ cXyz mEye; + /* 0x18 */ f32 mFovy; + /* 0x1C */ cSAngle mBank; /* 0x1E */ s16 field_0x1e; }; // Size: 0x20 @@ -140,30 +151,42 @@ public: }; struct BG { - /* 0x000 */ u8 field_0x0; - /* 0x004 */ dBgS_CamGndChk field_0x4; - /* 0x058 */ f32 field_0x58; - /* 0x05C */ u8 field_0x5c; - /* 0x060 */ dBgS_CamGndChk field_0x60; - /* 0x0B4 */ f32 field_0xb4; + class { + public: + /* 0x00 */ u8 field_0x0; + /* 0x04 */ dBgS_CamGndChk field_0x4; + /* 0x58 */ f32 field_0x58; + } /* 0x000 */ field_0x0; + class { + public: + /* 0x00 */ u8 field_0x0; + /* 0x04 */ dBgS_CamGndChk field_0x4; + /* 0x58 */ f32 field_0x58; + } /* 0x05C */ field_0x5c; /* 0x0B8 */ u8 field_0xb8[0xC0 - 0xB8]; - /* 0x0C0 */ u8 field_0xc0; - /* 0x0C1 */ u8 field_0xc1; - /* 0x0C4 */ cXyz field_0xc4; - /* 0x0D0 */ cXyz field_0xd0; - /* 0x0DC */ cSAngle field_0xdc; - /* 0x0DE */ cSAngle field_0xde; - /* 0x0E0 */ cSGlobe field_0xe0; - /* 0x0E8 */ cSGlobe field_0xe8; - /* 0x0F0 */ u8 field_0xf0[4]; - /* 0x0F4 */ int field_0xf4; - /* 0x0F8 */ f32 field_0xf8; - /* 0x0FC */ int field_0xfc; - /* 0x100 */ int field_0x100; - /* 0x104 */ u8 field_0x104[4]; - /* 0x108 */ int field_0x108; - /* 0x10C */ f32 field_0x10c; - /* 0x110 */ cXyz field_0x110; + class { + public: + /* 0x00 */ u8 field_0x0; + /* 0x01 */ u8 field_0x1; + /* 0x04 */ cXyz field_0x4; + /* 0x10 */ cXyz field_0x10; + /* 0x1C */ cSAngle field_0x1c; + /* 0x1E */ cSAngle field_0x1e; + /* 0x20 */ int field_0x20; + /* 0x24 */ cSGlobe field_0x24; + /* 0x2C */ cSGlobe field_0x2c; + /* 0x34 */ int field_0x34; + /* 0x38 */ f32 field_0x38; + /* 0x3C */ int field_0x3c; + /* 0x40 */ int field_0x40; + /* 0x44 */ int field_0x44; + } /* 0x0C0 */ field_0xc0; + class { + public: + /* 0x0 */ int field_0x0; + /* 0x4 */ f32 field_0x4; + /* 0x8 */ cXyz field_0x8; + } /* 0x108 */ field_0x108; }; struct Shake { @@ -181,19 +204,19 @@ public: /* 80088A7C */ int StartEventCamera(int, int, ...); /* 80088BBC */ int EndEventCamera(int); /* 80088C24 */ int searchEventArgData(char*); - /* 8008908C */ void getEvIntData(int*, char*, int); - /* 80088CB0 */ void getEvIntData(int*, char*); - /* 80088D90 */ void getEvFloatData(f32*, char*); - /* 80089154 */ void getEvFloatData(f32*, char*, f32); - /* 80088E58 */ void getEvFloatListData(f32**, char*); - /* 80088F1C */ void getEvXyzListData(cXyz**, char*); - /* 8008941C */ void getEvStringPntData(char*, char*); - /* 80088FE0 */ void getEvStringPntData(char*); - /* 8008922C */ void getEvXyzData(cXyz*, char*, cXyz); - /* 8008933C */ void getEvStringData(char*, char*, char*); - /* 800894C4 */ void getEvActor(char*); - /* 800895F4 */ void getEvActor(char*, char*); - /* 80089730 */ void pauseEvCamera(); + /* 8008908C */ bool getEvIntData(int*, char*, int); + /* 80088CB0 */ bool getEvIntData(int*, char*); + /* 80088D90 */ bool getEvFloatData(f32*, char*); + /* 80089154 */ bool getEvFloatData(f32*, char*, f32); + /* 80088E58 */ int getEvFloatListData(f32**, char*); + /* 80088F1C */ int getEvXyzListData(cXyz**, char*); + /* 8008941C */ char* getEvStringPntData(char*, char*); + /* 80088FE0 */ char* getEvStringPntData(char*); + /* 8008922C */ bool getEvXyzData(cXyz*, char*, cXyz); + /* 8008933C */ bool getEvStringData(char*, char*, char*); + /* 800894C4 */ fopAc_ac_c* getEvActor(char*); + /* 800895F4 */ fopAc_ac_c* getEvActor(char*, char*); + /* 80089730 */ int pauseEvCamera(); /* 800897E8 */ void fixedFrameEvCamera(); /* 8008A510 */ void stokerEvCamera(); /* 8008A974 */ void rollingEvCamera(); @@ -206,12 +229,12 @@ public: /* 8008FAE8 */ void restorePosEvCamera(); /* 80090174 */ void talktoEvCamera(); /* 80090230 */ bool maptoolIdEvCamera(); - /* 80090478 */ void styleEvCamera(); + /* 80090478 */ bool styleEvCamera(); /* 80090514 */ void gameOverEvCamera(); /* 80091468 */ void tactEvCamera(); /* 800923B8 */ bool turnToActorEvCamera(); - /* 800923C0 */ void stbWaitEvCamera(); - /* 800924D0 */ void saveEvCamera(); + /* 800923C0 */ bool stbWaitEvCamera(); + /* 800924D0 */ bool saveEvCamera(); /* 8009258C */ void loadEvCamera(); /* 800929AC */ void useItem0EvCamera(); /* 800937AC */ void useItem1EvCamera(); @@ -225,10 +248,9 @@ public: /* 800965AC */ void hintTalkEvCamera(); /* 80096EDC */ void bspTransEvCamera(); /* 80097694 */ bool portalWarpEvCamera(); - /* 8009771C */ void attentionPos(fopAc_ac_c*); - /* 80097738 */ void directionOf(fopAc_ac_c*); - /* 8009775C */ void positionOf(fopAc_ac_c*); - /* 80097778 */ void setFlag(u32); + /* 8009771C */ cXyz attentionPos(fopAc_ac_c*); + /* 80097738 */ cSAngle directionOf(fopAc_ac_c*); + /* 8009775C */ cXyz positionOf(fopAc_ac_c*); /* 8009778C */ void eyePos(fopAc_ac_c*); /* 8016008C */ dCamera_c(camera_class*); /* 80160304 */ ~dCamera_c(); @@ -237,7 +259,7 @@ public: /* 801614C4 */ void QuickStart(); /* 801614D0 */ void Stop(); /* 801614E8 */ void Stay(); - /* 801614F4 */ u8 ChangeModeOK(s32); + /* 801614F4 */ bool ChangeModeOK(s32); /* 80161550 */ void initPad(); /* 801617B0 */ void updatePad(); /* 80161D84 */ void initMonitor(); @@ -246,38 +268,38 @@ public: /* 801622B0 */ void infoReport(); /* 801622B4 */ void Run(); /* 80162D38 */ void NotRun(); - /* 80162FB8 */ void V(); - /* 80162FD4 */ void U(); - /* 8016300C */ void SetTrimSize(s32); - /* 80163028 */ void SetTrimTypeForce(s32); + /* 80162FB8 */ s16 V(); + /* 80162FD4 */ s16 U(); + /* 8016300C */ bool SetTrimSize(s32); + /* 80163028 */ bool SetTrimTypeForce(s32); /* 80163034 */ void CalcTrimSize(); - /* 80163154 */ void Draw(); + /* 80163154 */ int Draw(); /* 8016317C */ void setStageMapToolData(); /* 80163340 */ void setMapToolData(); /* 80163558 */ void SetTagData(fopAc_ac_c*, s32, u16, u8); /* 801635AC */ void setRoomMapToolData(dCamMapToolData*, s32, s32); /* 801635E4 */ void nextMode(s32); /* 80163C38 */ void onModeChange(s32, s32); - /* 80163D50 */ void ModeFix(s32); + /* 80163D50 */ int ModeFix(s32); /* 80163D5C */ void nextType(s32); /* 8016444C */ void onTypeChange(s32, s32); - /* 8016469C */ void onStyleChange(s32, s32); - /* 801647B0 */ void onRoomChange(s32); - /* 80164878 */ void getParamTargetActor(s32); + /* 8016469C */ int onStyleChange(s32, s32); + /* 801647B0 */ int onRoomChange(s32); + /* 80164878 */ fopAc_ac_c* getParamTargetActor(s32); /* 80164944 */ int GetCameraTypeFromMapToolID(s32, s32); /* 80164B64 */ int GetCameraTypeFromCameraName(char const*); - /* 80164C10 */ void GetCameraTypeFromToolData(stage_camera2_data_class*); + /* 80164C10 */ int GetCameraTypeFromToolData(stage_camera2_data_class*); /* 80164C64 */ void pushInfo(dCamera_c::dCamInfo_c*, s16); /* 80164CAC */ void popInfo(dCamera_c::dCamInfo_c*); - /* 80164D2C */ void heightOf(fopAc_ac_c*); + /* 80164D2C */ f32 heightOf(fopAc_ac_c*); /* 80164E20 */ void relationalPos(fopAc_ac_c*, fopAc_ac_c*, cXyz*, f32); /* 80164D6C */ void relationalPos(fopAc_ac_c*, cXyz*); /* 80165104 */ void setUSOAngle(); - /* 80165158 */ void getUSOAngle(cSAngle); + /* 80165158 */ cSAngle getUSOAngle(cSAngle); /* 8016517C */ void pointInSight(cXyz*); /* 80167C24 */ void radiusActorInSight(fopAc_ac_c*, fopAc_ac_c*, fopAc_ac_c*); /* 80165238 */ void radiusActorInSight(fopAc_ac_c*, fopAc_ac_c*, cXyz*, cXyz*, f32, s16, f32); - /* 801657EC */ void groundHeight(cXyz*); + /* 801657EC */ f32 groundHeight(cXyz*); /* 801658C0 */ void lineBGCheck(cXyz*, cXyz*, dBgS_LinChk*, u32); /* 80165AF0 */ void lineBGCheck(cXyz*, cXyz*, u32); /* 801659F4 */ void lineBGCheck(cXyz*, cXyz*, cXyz*, u32); @@ -343,13 +365,10 @@ public: /* 80181534 */ void ForceLockOn(fopAc_ac_c*); /* 80181560 */ void ForceLockOff(unsigned int); /* 8018159C */ void ForceLockOff(fopAc_ac_c*); - /* 80181E20 */ void Up(); + /* 80181E20 */ cXyz Up(); /* 80181E64 */ cXyz Eye(); /* 80181E98 */ cXyz Center(); /* 8018295C */ void footHeightOf(fopAc_ac_c*); - /* 80182964 */ void push_any_key(); - /* 8018296C */ void clrFlag(u32); - /* 80182980 */ void chkFlag(u32); /* 801829AC */ void Bank(); bool Active() { return field_0x24 == 0; } @@ -357,10 +376,18 @@ public: int Type() { return mCurType; } int Mode() { return mNextMode; } f32 Fovy() { return mFovY + mShake.field_0x3c; } + bool isModeOK() { return field_0x158.field_0x0; } + bool push_any_key() { return field_0x224; } - bool i_chkFlag(u32 i_flag) { return mEventFlags & i_flag; } - void i_setFlag(u32 i_flag) { mEventFlags |= i_flag; } - void i_clrFlag(u32 i_flag) { mEventFlags &= ~i_flag; } + 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; } + + void ResetView() { setView(0.0f, 0.0f, 608.0f, 448.0f); } + + void clearInfo(dCamInfo_c* i_info, s16 param_1) { + i_info->field_0x1e = param_1; + } #ifdef NONMATCHING static engine_fn engine_tbl[]; @@ -375,9 +402,7 @@ public: /* 0x021 */ u8 field_0x21; /* 0x022 */ u8 field_0x22[2]; /* 0x024 */ int field_0x24; - /* 0x028 */ f32 field_0x28; - /* 0x02C */ s16 field_0x2c; - /* 0x02E */ s16 field_0x2e; + /* 0x028 */ cSGlobe field_0x28; /* 0x030 */ cXyz mCenter; /* 0x03C */ cXyz mEye; /* 0x048 */ cXyz mUp; @@ -400,10 +425,7 @@ public: /* 0x0A8 */ int field_0xa8; /* 0x0AC */ u32 field_0xac; /* 0x0B0 */ dCamInfo_c field_0xb0; - /* 0x0D0 */ u8 field_0xd0[0x8]; - /* 0x0D8 */ cXyz field_0xd8; - /* 0x0E4 */ u8 field_0xe4[0xc]; - /* 0x0F0 */ dCamInfo_c field_0xf0; + /* 0x0D0 */ dCamInfo_c field_0xd0[2]; class { public: /* 0x00 */ int field_0x0; @@ -420,7 +442,7 @@ public: /* 0x144 */ field_0x144; class { public: - /* 0x0 */ u8 field_0x0; + /* 0x0 */ bool field_0x0; /* 0x2 */ cSAngle field_0x2; /* 0x4 */ cSAngle field_0x4; } @@ -446,7 +468,9 @@ public: /* 0x1B4 */ f32 field_0x1b4; /* 0x1B8 */ u8 field_0x1b8[4]; /* 0x1BC */ dCamera_pad_info mPadInfo; - /* 0x1F4 */ u8 field_0x1f4[0x200 - 0x1F4]; + /* 0x1F4 */ int field_0x1f4; + /* 0x1F8 */ int field_0x1f8; + /* 0x1FC */ int field_0x1fc; /* 0x200 */ f32 mTriggerLeftLast; /* 0x204 */ f32 mTriggerLeftDelta; /* 0x208 */ u8 field_0x208; @@ -463,7 +487,7 @@ public: /* 0x219 */ u8 mTrigX; /* 0x21A */ u8 mHoldY; /* 0x21B */ u8 mTrigY; - /* 0x21C */ u8 mHoldZ; + /* 0x21C */ bool mHoldZ; /* 0x21D */ u8 mTrigZ; /* 0x21E */ u8 field_0x21e; /* 0x21F */ u8 field_0x21f; @@ -480,7 +504,9 @@ public: /* 0x2C8 */ f32 field_0x2c8; /* 0x2CC */ BG mBG; /* 0x3E8 */ u8 field_0x3e8; - /* 0x3E9 */ u8 field_0x3e9[0x4e8 - 0x3e9]; + /* 0x3EC */ int field_0x3ec; + /* 0x3F0 */ int field_0x3f0; + /* 0x3F4 */ u8 field_0x3f4[0x4E8 - 0x3F4]; /* 0x4E8 */ dCamera_event_data mEventData; /* 0x60C */ u32 mEventFlags; /* 0x610 */ u8 field_0x610; @@ -498,9 +524,9 @@ public: /* 0x66C */ int field_0x66c; /* 0x670 */ int field_0x670; /* 0x674 */ int field_0x674; - /* 0x678 */ int field_0x678; + /* 0x678 */ u8 field_0x678; /* 0x67C */ int mCamStyle; - /* 0x680 */ int field_0x684; + /* 0x680 */ int field_0x680; /* 0x684 */ dCamera_type_data* mCamTypeData; /* 0x688 */ int mCamTypeNum; /* 0x68C */ int mCurType; @@ -552,12 +578,23 @@ public: /* 0x920 */ f32 mTrimHeight; /* 0x924 */ int mTrimSize; /* 0x928 */ int mTrimTypeForce; - /* 0x92C */ u8 field_0x92c[0x93C - 0x92c]; - /* 0x93C */ f32 field_0x93c; - /* 0x940 */ u8 field_0x940[0x970 - 0x940]; + /* 0x92C */ u8 field_0x92c[0x934 - 0x92c]; + /* 0x934 */ f32 field_0x934; + /* 0x938 */ u8 field_0x938[0x93C - 0x938]; + /* 0x93C */ int field_0x93c; + /* 0x940 */ int field_0x940; + /* 0x944 */ u8 field_0x944; + /* 0x948 */ int field_0x948; + /* 0x94C */ cSAngle field_0x94c; + /* 0x950 */ int field_0x950; + /* 0x954 */ u8 field_0x954[0x958 - 0x954]; + /* 0x958 */ int field_0x958; + /* 0x95C */ cXyz field_0x95c; + /* 0x968 */ u8 field_0x968[0x970 - 0x968]; /* 0x970 */ dCamSetup_c mCamSetup; /* 0xAEC */ dCamParam_c mCamParam; - /* 0xB0C */ u8 field_0xb0c[0xd58 - 0xb0c]; + /* 0xB0C */ u8 field_0xb0c; + /* 0xB0D */ u8 field_0xb0d[0xd58 - 0xb0d]; }; // Size: 0xD58 dCamera_c* dCam_getBody(); diff --git a/include/d/d_demo.h b/include/d/d_demo.h index 41176035f6..4a23df2bfd 100644 --- a/include/d/d_demo.h +++ b/include/d/d_demo.h @@ -24,7 +24,7 @@ public: /* 80038FC0 */ JStage::TObject* appendActor(fopAc_ac_c*); /* 80039088 */ dDemo_actor_c* getActor(u8); /* 800390AC */ JStage::TObject* createCamera(); - /* 80039128 */ JStage::TObject* getActiveCamera(); + /* 80039128 */ dDemo_camera_c* getActiveCamera(); /* 8003913C */ JStage::TObject* createAmbient(); /* 800391B8 */ JStage::TObject* appendLight(); /* 80039258 */ JStage::TObject* createFog(); @@ -208,6 +208,13 @@ public: /* 80038DDC */ virtual void JSGSetViewRoll(f32); void onEnable(u8 flag) { mFlags |= flag; } + bool checkEnable(u8 flag) { return mFlags & flag; } + + cXyz& getTarget() { return mViewTargetVector; } + cXyz& getTrans() { return mViewPos; } + cXyz& getUp() { return mViewUpVector; } + f32 getFovy() { return mProjFovy; } + f32 getRoll() { return mViewRoll; } private: /* 0x04 */ u8 mFlags; @@ -279,6 +286,11 @@ public: static void setBranchData(const u8* p_data) { m_branchData = p_data; } static s16 getBranchId() { return m_branchId; } + static dDemo_camera_c* getCamera() { + JUT_ASSERT(m_object != 0); + return m_object->getActiveCamera(); + } + static s16 m_branchId; static dDemo_system_c* m_system; static JStudio::TControl* m_control; diff --git a/include/d/d_drawlist.h b/include/d/d_drawlist.h index da554aa11c..136b879ef4 100644 --- a/include/d/d_drawlist.h +++ b/include/d/d_drawlist.h @@ -15,6 +15,8 @@ class dKy_tevstr_c; class cM_rnd_c { public: + cM_rnd_c() { init(100, 100, 100); } + /* 80053CDC */ void init(int, int, int); /* 80053CEC */ f32 get(); /* 80053DE0 */ f32 getF(f32); diff --git a/include/d/d_stage.h b/include/d/d_stage.h index a8466b0e03..ac3af99faa 100644 --- a/include/d/d_stage.h +++ b/include/d/d_stage.h @@ -145,10 +145,10 @@ struct stage_envr_info_class { }; // Size: 0x41 struct stage_camera2_data_class { - /* 0x00 */ int field_0x0; - /* 0x04 */ f32 field_0x4; - /* 0x08 */ f32 field_0x8; - /* 0x0C */ f32 field_0xc; + struct { + int field_0x0; + Vec field_0x4; + } /* 0x00 */ field_0x0; /* 0x10 */ u8 field_0x10; /* 0x11 */ u8 field_0x11; /* 0x12 */ u8 field_0x12; @@ -165,6 +165,7 @@ struct stage_camera_class { struct stage_arrow_data_class { /* 0x00 */ cXyz mPosition; /* 0x0C */ csXyz mAngle; + /* 0x12 */ s16 field_0x12; }; // Size: 0x14 struct stage_arrow_class { @@ -1098,6 +1099,10 @@ inline u16 dStage_stagInfo_GetStageTitleNo(stage_stag_info_class* pstag) { return pstag->mStageTitleNo; } +inline u8 dStage_stagInfo_DefaultCameraType(stage_stag_info_class* pstag) { + return pstag->mCameraType; +} + inline u32 dStage_sclsInfo_getSceneLayer(stage_scls_info_class* p_info) { return p_info->field_0xb & 0xF; } @@ -1138,6 +1143,10 @@ inline int dStage_FileList_dt_GlobalWindDir(dStage_FileList_dt_c* i_fili) { return (i_fili->mParameters >> 0xF) & 7; } +inline u8 dStage_FileList_dt_GetDefaultCamera(dStage_FileList_dt_c* p_fList) { + return p_fList->mDefaultCamera; +} + inline f32 dStage_FileList2_dt_GetLeftRmX(dStage_FileList2_dt_c* p_fList2) { return p_fList2->mLeftRmX; } diff --git a/include/d/event/d_event_manager.h b/include/d/event/d_event_manager.h index ece67e7d5c..42e9010714 100644 --- a/include/d/event/d_event_manager.h +++ b/include/d/event/d_event_manager.h @@ -79,6 +79,7 @@ public: void setFlag(int flag) { mFlags.flagSet(flag); } bool dataLoaded() { return mDataLoaded; } int flagCheck(int flag) { return mFlags.flagCheck(flag); } + int cameraPlay() { return mCameraPlay; } inline static s16 getIndexCompositId(s16 param_0) { return param_0 != -1 ? (s16)(param_0 & 0xff) : (s16)-1; } static int getTypeCompositId(s16 param_0) { return param_0 == -1 ? 0 : param_0 >> 8; } diff --git a/include/d/save/d_save.h b/include/d/save/d_save.h index 0374757227..16a85f724a 100644 --- a/include/d/save/d_save.h +++ b/include/d/save/d_save.h @@ -1046,6 +1046,7 @@ private: class dSv_turnRestart_c { public: class dSv_turnRestart_camera_c { + public: /* 0x00 */ cXyz mCameraCtr; /* 0x0C */ cXyz mCameraEye; /* 0x18 */ cXyz mCameraUp; @@ -1057,6 +1058,17 @@ public: cXyz& getPos() { return mPosition; } s16 getAngleY() const { return mAngleY; } + f32 getCameraFvy() const { return mCameraFvy; } + void setCameraFvy(f32 i_fvy) { mCameraFvy = i_fvy; } + + const cXyz& getCameraUp() const { return mCamera.mCameraUp; } + const cXyz& getCameraEye() const { return mCamera.mCameraEye; } + const cXyz& getCameraCtr() const { return mCamera.mCameraCtr; } + + void setCameraUp(const cXyz& i_up) { mCamera.mCameraUp = i_up; } + void setCameraEye(const cXyz& i_eye) { mCamera.mCameraEye = i_eye; } + void setCameraCtr(const cXyz& i_ctr) { mCamera.mCameraCtr = i_ctr; } + private: /* 0x00 */ cXyz mPosition; /* 0x0C */ u32 mParam; diff --git a/include/f_op/f_op_actor.h b/include/f_op/f_op_actor.h index b85b9e99f1..e768f17016 100644 --- a/include/f_op/f_op_actor.h +++ b/include/f_op/f_op_actor.h @@ -239,6 +239,8 @@ public: fopAc_ac_c(); ~fopAc_ac_c(); + static void setStopStatus(u32 status) { stopStatus = status; } + static u32 stopStatus; }; // Size: 0x568 diff --git a/include/f_op/f_op_camera_mng.h b/include/f_op/f_op_camera_mng.h index dde9de4ff4..f9ee5c3c76 100644 --- a/include/f_op/f_op_camera_mng.h +++ b/include/f_op/f_op_camera_mng.h @@ -27,33 +27,45 @@ public: /* 0x248 */ dCamera_c mCamera; }; -/* void fopCamM_SetNear(camera_class* cam, f32 near) { - cam->mNear = near; +inline void fopCamM_SetNear(camera_class* i_this, f32 near) { + i_this->mNear = near; } -void fopCamM_SetFar(camera_class* cam, f32 far) { - cam->mFar = far; +inline void fopCamM_SetFar(camera_class* i_this, f32 far) { + i_this->mFar = far; } -void fopCamM_SetFovy(camera_class* cam, f32 fovy) { - cam->mFovy = fovy; +inline void fopCamM_SetFovy(camera_class* i_this, f32 fovy) { + i_this->mFovy = fovy; } -void fopCamM_SetAspect(camera_class* cam, f32 aspect) { - cam->mAspect = aspect; +inline void fopCamM_SetAspect(camera_class* i_this, f32 aspect) { + i_this->mAspect = aspect; } -void fopCamM_SetEye(camera_class* cam, f32 x, f32 y, f32 z) { - cam->field_0xd8.mEye.set(x, y, z); +inline void fopCamM_SetEye(camera_class* i_this, f32 x, f32 y, f32 z) { + i_this->mLookat.mEye.set(x, y, z); } -void fopCamM_SetCenter(camera_class* cam, f32 x, f32 y, f32 z) { - cam->field_0xd8.mCenter.set(x, y, z); +inline void fopCamM_SetCenter(camera_class* i_this, f32 x, f32 y, f32 z) { + i_this->mLookat.mCenter.set(x, y, z); } -void fopCamM_SetBank(camera_class* cam, s16 bank) { - cam->mBank = bank; -} */ +inline void fopCamM_SetBank(camera_class* i_this, s16 bank) { + i_this->mBank = bank; +} + +inline void fopCamM_SetPrm1(camera_class* i_this, int prm1) { + i_this->mPrm1 = prm1; +} + +inline void fopCamM_SetPrm2(camera_class* i_this, int prm2) { + i_this->mPrm2 = prm2; +} + +inline void fopCamM_SetPrm3(camera_class* i_this, int prm3) { + i_this->mPrm3 = prm3; +} inline s16 fopCamM_GetAngleX(camera_class* i_camera) { return i_camera->mAngle.x; diff --git a/include/m_Do/m_Do_audio.h b/include/m_Do/m_Do_audio.h index 4f9398c51b..74b4406c7d 100644 --- a/include/m_Do/m_Do_audio.h +++ b/include/m_Do/m_Do_audio.h @@ -142,6 +142,14 @@ inline void mDoAud_taktModeMuteOff() { Z2AudioMgr::getInterface()->taktModeMuteOff(); } +inline void mDoAud_getCameraMapInfo(u32 param_0) { + Z2AudioMgr::getInterface()->getCameraMapInfo(param_0); +} + +inline void mDoAud_setCameraGroupInfo(u8 param_0) { + Z2AudioMgr::getInterface()->setCameraGroupInfo(param_0); +} + inline void mDoAud_mEnvse_framework() { g_mEnvSeMgr.framework(); } diff --git a/include/m_Do/m_Do_controller_pad.h b/include/m_Do/m_Do_controller_pad.h index 91827f569d..bbe9549547 100644 --- a/include/m_Do/m_Do_controller_pad.h +++ b/include/m_Do/m_Do_controller_pad.h @@ -52,6 +52,7 @@ public: static f32 getStickValue(u32 pad) { return getCpadInfo(pad).mMainStickValue; } static s16 getStickAngle(u32 pad) { return getCpadInfo(pad).mMainStickAngle; } static s16 getStickAngle3D(u32 pad) { return getCpadInfo(pad).mMainStickAngle; } + static f32 getSubStickX3D(u32 pad) { return getCpadInfo(pad).mCStickPosX; } static f32 getSubStickX(u32 pad) { return getCpadInfo(pad).mCStickPosX; } static f32 getSubStickY(u32 pad) { return getCpadInfo(pad).mCStickPosY; } static f32 getSubStickValue(u32 pad) { return getCpadInfo(pad).mCStickValue; } diff --git a/include/m_Do/m_Do_mtx.h b/include/m_Do/m_Do_mtx.h index ed0b857d14..821d901c0c 100644 --- a/include/m_Do/m_Do_mtx.h +++ b/include/m_Do/m_Do_mtx.h @@ -138,6 +138,10 @@ inline void cMtx_inverse(const Mtx a, Mtx b) { mDoMtx_inverse(a, b); } +inline void cMtx_concatProjView(const Mtx a, const Mtx b, Mtx c) { + mDoMtx_concatProjView(a, b, c); +} + class mDoMtx_stack_c { public: mDoMtx_stack_c() { diff --git a/include/rel/d/a/d_a_horse/d_a_horse.h b/include/rel/d/a/d_a_horse/d_a_horse.h index df319ca75d..3ff25ea8f0 100644 --- a/include/rel/d/a/d_a_horse/d_a_horse.h +++ b/include/rel/d/a/d_a_horse/d_a_horse.h @@ -159,6 +159,9 @@ public: /* 80844590 */ void draw(); /* 8084478C */ ~daHorse_c(); /* 80844CB0 */ daHorse_c(); + + /* 80182D04 */ void getLashDashStart() const; + bool checkNoBombProc() const { return field_0x16b4 == 0 || field_0x16b4 == 1; } bool checkResetStateFlg0(daHorse_RFLG0 flag) const { return mResetStateFlg0 & flag; } |
