work on d_camera / d_ev_camera (#2170)

This commit is contained in:
TakaRikka
2024-06-25 07:34:59 -07:00
committed by GitHub
parent 3c82015f69
commit d923917b39
82 changed files with 2759 additions and 2491 deletions
+3 -2
View File
@@ -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&);
+1
View File
@@ -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;
+4 -2
View File
@@ -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();
+4
View File
@@ -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();
+1 -1
View File
@@ -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&);
+2 -2
View File
@@ -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*,
+1 -1
View File
@@ -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;
+1 -1
View File
@@ -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*,
+59 -9
View File
@@ -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();
}
+5
View File
@@ -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];
+15 -4
View File
@@ -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;
+131 -94
View File
@@ -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();
+13 -1
View File
@@ -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;
+2
View File
@@ -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);
+13 -4
View File
@@ -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;
}
+1
View File
@@ -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; }
+12
View File
@@ -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;
+2
View File
@@ -239,6 +239,8 @@ public:
fopAc_ac_c();
~fopAc_ac_c();
static void setStopStatus(u32 status) { stopStatus = status; }
static u32 stopStatus;
}; // Size: 0x568
+27 -15
View File
@@ -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;
+8
View File
@@ -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();
}
+1
View File
@@ -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; }
+4
View File
@@ -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() {
+3
View File
@@ -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; }