mirror of
https://github.com/zeldaret/tww.git
synced 2026-05-22 22:44:17 -04:00
d_camera 28% (#732)
* initial progress * more progress * more progress * more progress * more progress * more progress * more progress * more progress * more progress * more progress * more progress * more progress * fix outdated member names * more progress * more progress * more progress * more progress * more progress * more progress * fixed deprecated member references * more progress * more progress * more progress * fix deprecated member references * more progress * more progress * more progress * more progress * more progress * check in for review * remove comment * initial PR changes * more PR changes * more PR changes * added anonymous struct as class member * reverted changes to `stage_camera2_data_class` * added `dCamera_event_data`, `dCamera_monitoring_things` and `dCamera_DMC_system` from debug maps * more progress * more progress * realmatch for `camera_draw` * PR changes * fix broken merge * formatting * Reverted change to `camSphChkdata` that caused `sph_chk_callback` match to regress * Reverted change to `BG` struct that caused ctor and dtor match to regress
This commit is contained in:
@@ -19,7 +19,7 @@ public:
|
||||
cSAngle(s16);
|
||||
cSAngle(float);
|
||||
s16 Val() const { return mAngle; }
|
||||
// void Set(s16 angle) { this->mAngle = angle; }
|
||||
//void Set(s16 angle) { this->mAngle = angle; }
|
||||
void Val(const cSAngle&);
|
||||
void Val(s16);
|
||||
void Val(float);
|
||||
@@ -65,9 +65,15 @@ struct cAngle {
|
||||
/* Converts Radian value into Degree value */
|
||||
static f32 r2d(f32 r) { return Radian_to_Degree(r); }
|
||||
|
||||
/* Converts Degree value into Radian value */
|
||||
static f32 d2r(f32 d) { return Degree_to_Radian(d); }
|
||||
|
||||
/* Converts Degree value to s16 angle */
|
||||
static s16 d2s(f32 d) { return Degree_to_SAngle(d); }
|
||||
|
||||
/* Converts s16 angle to Degree value */
|
||||
static f32 s2d(s16 a) { return SAngle_to_Degree(a); }
|
||||
|
||||
template <typename T>
|
||||
static T Adjust(T f1, T f2, T f3);
|
||||
};
|
||||
@@ -112,6 +118,10 @@ public:
|
||||
void Val(const cXyz&);
|
||||
cXyz Xyz() const;
|
||||
void Globe(class cSGlobe*) const;
|
||||
|
||||
void R(f32 i_radial) { mRadial = i_radial; }
|
||||
void U(cSAngle const& i_angle) { mAngle2 = i_angle.Val(); }
|
||||
void V(cSAngle const& i_angle) { mAngle1 = i_angle.Val(); }
|
||||
};
|
||||
|
||||
class cSGlobe {
|
||||
@@ -135,6 +145,11 @@ public:
|
||||
float R() const { return mRadius; }
|
||||
const cSAngle& V() const { return mAzimuth; }
|
||||
const cSAngle& U() const { return mInclination; }
|
||||
|
||||
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(); }
|
||||
|
||||
cXyz Xyz() const;
|
||||
void Polar(cSPolar*) const;
|
||||
cXyz Norm() const;
|
||||
|
||||
@@ -23,7 +23,7 @@ public:
|
||||
cBgS_Chk() {
|
||||
mPolyPassChk = NULL;
|
||||
mGrpPassChk = NULL;
|
||||
mSameActorChk = 1;
|
||||
mSameActorChk = true;
|
||||
}
|
||||
void SetExtChk(cBgS_Chk& other) {
|
||||
mPolyPassChk = other.mPolyPassChk;
|
||||
|
||||
@@ -67,16 +67,19 @@ public:
|
||||
|
||||
class dBgS_CamGndChk : public dBgS_GndChk {
|
||||
public:
|
||||
dBgS_CamGndChk() { /* SetCam(); */ }
|
||||
dBgS_CamGndChk() { SetCam(); }
|
||||
|
||||
virtual ~dBgS_CamGndChk() {}
|
||||
};
|
||||
|
||||
class dBgS_CamGndChk_Wtr : public dBgS_CamGndChk {
|
||||
public:
|
||||
dBgS_CamGndChk_Wtr();
|
||||
dBgS_CamGndChk_Wtr() {
|
||||
OffNormalGrp();
|
||||
OnWaterGrp();
|
||||
};
|
||||
|
||||
virtual ~dBgS_CamGndChk_Wtr();
|
||||
virtual ~dBgS_CamGndChk_Wtr() {}
|
||||
};
|
||||
|
||||
#endif /* D_BG_D_BG_S_GND_CHK_H */
|
||||
|
||||
@@ -77,9 +77,12 @@ public:
|
||||
|
||||
class dBgS_CamLinChk_NorWtr : public dBgS_CamLinChk {
|
||||
public:
|
||||
dBgS_CamLinChk_NorWtr();
|
||||
dBgS_CamLinChk_NorWtr() {
|
||||
OnWaterGrp();
|
||||
OnNormalGrp();
|
||||
}
|
||||
|
||||
virtual ~dBgS_CamLinChk_NorWtr();
|
||||
virtual ~dBgS_CamLinChk_NorWtr() {}
|
||||
};
|
||||
|
||||
class dBgS_MirLightLinChk : public dBgS_LinChk {
|
||||
|
||||
@@ -7,25 +7,25 @@ class cBgS_PolyPassChk {
|
||||
public:
|
||||
virtual ~cBgS_PolyPassChk() {}
|
||||
|
||||
/* 0x4 */ u8 mbObjThrough;
|
||||
/* 0x5 */ u8 mbCamThrough;
|
||||
/* 0x6 */ u8 mbLinkThrough;
|
||||
/* 0x7 */ u8 mbArrowThrough; // Also light
|
||||
/* 0x8 */ u8 mbBombThrough;
|
||||
/* 0x9 */ u8 mbBoomerangThrough;
|
||||
/* 0xA */ u8 mbRopeThrough; // Actually Hookshot?
|
||||
/* 0x4 */ bool mbObjThrough;
|
||||
/* 0x5 */ bool mbCamThrough;
|
||||
/* 0x6 */ bool mbLinkThrough;
|
||||
/* 0x7 */ bool mbArrowThrough; // Also light
|
||||
/* 0x8 */ bool mbBombThrough;
|
||||
/* 0x9 */ bool mbBoomerangThrough;
|
||||
/* 0xA */ bool mbRopeThrough; // Actually Hookshot?
|
||||
};
|
||||
|
||||
class dBgS_PolyPassChk : public cBgS_PolyPassChk {
|
||||
public:
|
||||
dBgS_PolyPassChk() {
|
||||
mbObjThrough = 0;
|
||||
mbCamThrough = 0;
|
||||
mbLinkThrough = 0;
|
||||
mbArrowThrough = 0;
|
||||
mbBombThrough = 0;
|
||||
mbBoomerangThrough = 0;
|
||||
mbRopeThrough = 0;
|
||||
mbObjThrough = false;
|
||||
mbCamThrough = false;
|
||||
mbLinkThrough = false;
|
||||
mbArrowThrough = false;
|
||||
mbBombThrough = false;
|
||||
mbBoomerangThrough = false;
|
||||
mbRopeThrough = false;
|
||||
}
|
||||
virtual ~dBgS_PolyPassChk() {}
|
||||
|
||||
@@ -36,6 +36,14 @@ public:
|
||||
void SetBomb() { mbBombThrough = true; }
|
||||
void SetBoomerang() { mbBoomerangThrough = true; }
|
||||
void SetRope() { mbRopeThrough = true; }
|
||||
|
||||
void ClrObj() { mbObjThrough = false; }
|
||||
void ClrCam() { mbCamThrough = false; }
|
||||
void ClrLink() { mbLinkThrough = false; }
|
||||
void ClrArrow() { mbArrowThrough = false; }
|
||||
void ClrBomb() { mbBombThrough = false; }
|
||||
void ClrBoomerang() { mbBoomerangThrough = false; }
|
||||
void ClrRope() { mbRopeThrough = false; }
|
||||
|
||||
void SetPassChkInfo(dBgS_PolyPassChk& other) {
|
||||
*this = other;
|
||||
|
||||
@@ -21,7 +21,7 @@ public:
|
||||
|
||||
virtual ~dBgS_RoofChk() {}
|
||||
|
||||
void SetPos(cXyz& pos) { m_pos = pos; }
|
||||
void SetPos(cXyz &pos) { m_pos = pos; }
|
||||
cXyz* GetPosP() { return &m_pos; }
|
||||
f32 GetNowY() { return m_now_y; }
|
||||
void SetNowY(f32 y) { m_now_y = y; }
|
||||
@@ -40,4 +40,4 @@ public:
|
||||
virtual ~dBgS_LinkRoofChk() {}
|
||||
}; // Size: 0x4C
|
||||
|
||||
#endif /* D_BG_D_BG_S_ROOF_CHK_H */
|
||||
#endif /* D_BG_D_BG_S_ROOF_CHK_H */
|
||||
|
||||
@@ -8,7 +8,14 @@
|
||||
|
||||
class dBgS_SphChk : public cM3dGSph, public cBgS_PolyInfo, public cBgS_Chk, public dBgS_Chk {
|
||||
public:
|
||||
dBgS_SphChk();
|
||||
dBgS_SphChk() {
|
||||
SetPolyPassChk(GetPolyPassChkInfo());
|
||||
SetGrpPassChk(GetGrpPassChkInfo());
|
||||
SetActorPid(fpcM_ERROR_PROCESS_ID_e);
|
||||
Init();
|
||||
SetCallback(NULL);
|
||||
};
|
||||
|
||||
void Init() {
|
||||
ClearPi();
|
||||
}
|
||||
@@ -22,4 +29,10 @@ public:
|
||||
/* 0x4c */ SphChk_Callback mpCallback;
|
||||
}; // Size: 0x50
|
||||
|
||||
class dBgS_CamSphChk : public dBgS_SphChk {
|
||||
public:
|
||||
dBgS_CamSphChk() { SetCam(); }
|
||||
virtual ~dBgS_CamSphChk() {}
|
||||
};
|
||||
|
||||
#endif /* D_BG_D_BG_S_SPH_CHK_H */
|
||||
|
||||
+88
-47
@@ -6,7 +6,7 @@
|
||||
|
||||
struct dCamera__Style {
|
||||
/* 0x00 */ u32 m00;
|
||||
/* 0x04 */ u32 m04;
|
||||
/* 0x04 */ int engineIdx;
|
||||
/* 0x08 */ u32 m08;
|
||||
/* 0x0C */ u32 m0C;
|
||||
/* 0x10 */ u32 m10;
|
||||
@@ -57,25 +57,41 @@ class dCamBGChk_c {
|
||||
public:
|
||||
dCamBGChk_c();
|
||||
|
||||
// copied these from TP's implementation, may not be correct
|
||||
f32 WallUpDistance() { return mWallUpDistance; }
|
||||
f32 FwdDistance(s32 param_0) { return mChkInfo[param_0].mDistance; }
|
||||
s16 FwdChkAngle(s32 param_0) { return cAngle::d2s(mChkInfo[param_0].mChkAngle); }
|
||||
f32 FwdWeightH(s32 param_0) { return mChkInfo[param_0].mWeightH; }
|
||||
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 {
|
||||
/* 0x0 */ f32 mDistance;
|
||||
/* 0x4 */ f32 mChkAngle;
|
||||
/* 0x8 */ f32 mWeightH;
|
||||
/* 0xC */ f32 mWeightL;
|
||||
}; // Size: 0x10
|
||||
|
||||
public:
|
||||
/* 0x00 */ f32 m00;
|
||||
/* 0x04 */ f32 m04;
|
||||
/* 0x08 */ f32 m08;
|
||||
/* 0x0C */ f32 m0C;
|
||||
/* 0x10 */ f32 m10;
|
||||
/* 0x14 */ f32 m14;
|
||||
/* 0x18 */ f32 m18;
|
||||
/* 0x1C */ f32 m1C;
|
||||
/* 0x20 */ f32 m20;
|
||||
/* 0x24 */ f32 m24;
|
||||
/* 0x28 */ f32 m28;
|
||||
/* 0x00 */ f32 mFloorMargin;
|
||||
/* 0x04 */ ChkInfo mChkInfo[2];
|
||||
/* 0x24 */ f32 mFwdBackMargin;
|
||||
/* 0x28 */ f32 mFwdCushion;
|
||||
/* 0x2C */ f32 m2C;
|
||||
/* 0x30 */ f32 m30;
|
||||
/* 0x34 */ f32 m34;
|
||||
/* 0x38 */ f32 m38;
|
||||
/* 0x3C */ f32 m3C;
|
||||
/* 0x40 */ f32 m40;
|
||||
/* 0x44 */ f32 m44;
|
||||
/* 0x30 */ f32 mGazeBackMargin;
|
||||
/* 0x34 */ f32 mCornerCushion;
|
||||
/* 0x38 */ f32 mWallCushion;
|
||||
/* 0x3C */ f32 mWallUpDistance;
|
||||
/* 0x40 */ f32 mWallBackCushion;
|
||||
/* 0x44 */ f32 mCornerAngleMax;
|
||||
/* 0x48 */ f32 m48;
|
||||
/* 0x4C */ f32 m4C;
|
||||
/* 0x50 */ f32 m50;
|
||||
@@ -86,57 +102,58 @@ public:
|
||||
|
||||
class dCamSetup_c {
|
||||
public:
|
||||
/* 0x000 */ f32 m000;
|
||||
/* 0x004 */ f32 m004;
|
||||
/* 0x008 */ u16 m008;
|
||||
/* 0x00A */ u8 m00A[0x00C - 0x00A];
|
||||
/* 0x00C */ u32 m00C;
|
||||
/* 0x010 */ int m010;
|
||||
/* 0x014 */ u8 m014[0x01C - 0x014];
|
||||
/* 0x01C */ int m01C;
|
||||
/* 0x020 */ f32 m020;
|
||||
/* 0x000 */ f32 mDrawNear;
|
||||
/* 0x004 */ f32 mDrawFar;
|
||||
/* 0x008 */ u16 mDebugFlags;
|
||||
/* 0x00A */ u16 mFlags2;
|
||||
/* 0x00C */ int m00C;
|
||||
/* 0x010 */ int mModeSwitchType;
|
||||
/* 0x014 */ void* mTypeTable;
|
||||
/* 0x018 */ int mTypeNum;
|
||||
/* 0x01C */ int mForceType;
|
||||
/* 0x020 */ f32 mCusCus;
|
||||
/* 0x024 */ f32 m024;
|
||||
/* 0x028 */ f32 m028;
|
||||
/* 0x02C */ f32 m02C;
|
||||
/* 0x030 */ f32 m030;
|
||||
/* 0x034 */ f32 m034;
|
||||
/* 0x038 */ f32 m038;
|
||||
/* 0x03C */ f32 m03C;
|
||||
/* 0x040 */ f32 m040;
|
||||
/* 0x038 */ f32 mBaseCushion;
|
||||
/* 0x03C */ f32 mJumpCushion;
|
||||
/* 0x040 */ f32 mParallelDist;
|
||||
/* 0x044 */ f32 m044;
|
||||
/* 0x048 */ f32 m048;
|
||||
/* 0x04C */ f32 m04C;
|
||||
/* 0x04C */ f32 mCurveWeight;
|
||||
/* 0x050 */ f32 m050;
|
||||
/* 0x054 */ f32 m054;
|
||||
/* 0x058 */ f32 m058;
|
||||
/* 0x05C */ f32 m05C;
|
||||
/* 0x060 */ f32 m060;
|
||||
/* 0x064 */ f32 m064;
|
||||
/* 0x068 */ f32 m068;
|
||||
/* 0x064 */ f32 mTrimVistaHeight;
|
||||
/* 0x068 */ f32 mTrimCineScopeHeight;
|
||||
/* 0x06C */ f32 m06C;
|
||||
/* 0x070 */ f32 m070;
|
||||
/* 0x074 */ u32 m074;
|
||||
/* 0x070 */ f32 mForceLockOffDist;
|
||||
/* 0x074 */ int mForceLockOffTimer;
|
||||
/* 0x078 */ f32 m078;
|
||||
/* 0x07C */ f32 m07C;
|
||||
/* 0x080 */ f32 m080;
|
||||
/* 0x084 */ f32 m084;
|
||||
/* 0x088 */ f32 m088;
|
||||
/* 0x08C */ f32 m08C;
|
||||
/* 0x090 */ u8 m090[0x094 - 0x090];
|
||||
/* 0x094 */ u32 m094;
|
||||
/* 0x088 */ f32 mDMCValue;
|
||||
/* 0x08C */ f32 mDMCAngle;
|
||||
/* 0x090 */ f32 m090;
|
||||
/* 0x094 */ int m094;
|
||||
/* 0x098 */ f32 m098;
|
||||
/* 0x09C */ f32 m09C;
|
||||
/* 0x0A0 */ f32 m0A0;
|
||||
/* 0x0A4 */ f32 m0A4;
|
||||
/* 0x0A8 */ u32 m0A8;
|
||||
/* 0x0AC */ f32 m0AC;
|
||||
/* 0x0B0 */ u32 m0B0;
|
||||
/* 0x0B4 */ f32 m0B4;
|
||||
/* 0x0B8 */ f32 m0B8;
|
||||
/* 0x0BC */ f32 m0BC;
|
||||
/* 0x0A8 */ int m0A8;
|
||||
/* 0x0AC */ f32 mChargeLatitude;
|
||||
/* 0x0B0 */ int mChargeTimer;
|
||||
/* 0x0B4 */ f32 mChargeBRatio;
|
||||
/* 0x0B8 */ f32 mManualStartCThreshold;
|
||||
/* 0x0BC */ f32 mManualEndVal;
|
||||
/* 0x0C0 */ f32 m0C0;
|
||||
/* 0x0C4 */ f32 m0C4;
|
||||
/* 0x0C8 */ u32 m0C8;
|
||||
/* 0x0C4 */ f32 mLockonChangeCushion;
|
||||
/* 0x0C8 */ int mLockonChangeTimer;
|
||||
|
||||
public:
|
||||
dCamSetup_c();
|
||||
@@ -144,6 +161,27 @@ public:
|
||||
|
||||
bool CheckLatitudeRange(s16*);
|
||||
f32 FanBank();
|
||||
f32 PlayerHideDist();
|
||||
|
||||
bool CheckFlag2(u16 i_flag) { return (i_flag & mFlags2) != 0; }
|
||||
f32 ChargeBRatio() { return mChargeBRatio; }
|
||||
int ChargeTimer() { return mChargeTimer; }
|
||||
f32 ChargeLatitude() { return mChargeLatitude; }
|
||||
|
||||
f32 ManualEndVal() { return mManualEndVal; }
|
||||
f32 CinemaScopeTrimHeight() { return mTrimCineScopeHeight; }
|
||||
f32 VistaTrimHeight() { return mTrimVistaHeight; }
|
||||
f32 ForceLockOffTimer() { return mForceLockOffTimer; }
|
||||
f32 ForceLockOffDist() { return mForceLockOffDist; }
|
||||
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; }
|
||||
f32 DMCAngle() { return mDMCAngle; }
|
||||
f32 DMCValue() { return mDMCValue; }
|
||||
|
||||
public:
|
||||
/* 0x0D0 */ dCstick_c mCstick;
|
||||
@@ -175,6 +213,9 @@ public:
|
||||
s16 LockonLatitude(f32);
|
||||
f32 LockonFovy(f32);
|
||||
f32 LockonCenterHeight(f32);
|
||||
int Algorythmn(s32 i_style) { return mpStyle[i_style].engineIdx; }
|
||||
int Algorythmn() { return mpStyle->engineIdx; }
|
||||
bool CheckFlag(u16 flag) { return mpStyle->flag & flag; }
|
||||
};
|
||||
|
||||
class dCamMath {
|
||||
|
||||
+286
-173
@@ -2,15 +2,20 @@
|
||||
#define D_CAMERA_H
|
||||
|
||||
#include "SSystem/SComponent/c_angle.h"
|
||||
#include "SSystem/SComponent/c_rnd.h"
|
||||
#include "SSystem/SComponent/c_sxyz.h"
|
||||
#include "SSystem/SComponent/c_xyz.h"
|
||||
#include "f_pc/f_pc_base.h"
|
||||
#include "d/d_cam_param.h"
|
||||
#include "d/d_bg_s_gnd_chk.h"
|
||||
#include "d/d_com_inf_game.h"
|
||||
#include "d/d_spline_path.h"
|
||||
#include "global.h"
|
||||
|
||||
class camera_class;
|
||||
class camera_process_class;
|
||||
class dBgS_LinChk;
|
||||
class dBgS_CamGndChk;
|
||||
class d2DBSplinePath;
|
||||
class dStage_Event_dt_c;
|
||||
class fopAc_ac_c;
|
||||
|
||||
@@ -33,50 +38,110 @@ struct dCamera__EventParam {
|
||||
/* 0x10 */ int mValue;
|
||||
};
|
||||
|
||||
class d2DBSplinePath {
|
||||
public:
|
||||
~d2DBSplinePath() {}
|
||||
/* 0x00 */ int mKeyframeCur;
|
||||
/* 0x04 */ int mTimer;
|
||||
/* 0x08 */ int mKeyframeNum;
|
||||
/* 0x0C */ int mState;
|
||||
/* 0x10 */ int m10;
|
||||
/* 0x14 */ int mKeyframeLast;
|
||||
/* 0x18 */ u8 m18[0x1C - 0x18];
|
||||
/* 0x1C */ f32 mTime;
|
||||
/* 0x20 */ u8 m20[0x24 - 0x20];
|
||||
/* 0x24 */ f32 mFrameWeight[3];
|
||||
/* 0x30 */ int mFrameIdx[3];
|
||||
/* 0x3C */ u8 m3C[0x40 - 0x3C];
|
||||
/* 0x40 */ void* vtbl;
|
||||
struct dCamera__Type {
|
||||
/* 0x00 */ char name[24];
|
||||
/* 0x18 */ s16 mStyles[2][10];
|
||||
}; // Size: 0x40
|
||||
|
||||
struct dCamera_event_data {
|
||||
/* 0x000 */ u8 field_0x00;
|
||||
/* 0x001 */ u8 field_0x01[0x04 - 0x01];
|
||||
/* 0x004 */ int field_0x04;
|
||||
/* 0x008 */ int field_0x08;
|
||||
/* 0x00C */ int field_0x0c;
|
||||
/* 0x010 */ u8 field_0x10;
|
||||
/* 0x011 */ u8 field_0x11[0x14 - 0x11];
|
||||
/* 0x014 */ int field_0x14;
|
||||
/* 0x018 */ int field_0x18;
|
||||
/* 0x01C */ int field_0x1c;
|
||||
/* 0x020 */ int field_0x20;
|
||||
/* 0x024 */ int field_0x24;
|
||||
/* 0x028 */ u8 field_0x28[0x2C - 0x28];
|
||||
/* 0x02C */ dCamera__EventParam mEventParams[8];
|
||||
/* 0x0EC */ dStage_Event_dt_c* field_0xec;
|
||||
/* 0x0F0 */ d2DBSplinePath mSpline2DPath;
|
||||
}; // Size: 0x124
|
||||
|
||||
struct camSphChkdata {
|
||||
camSphChkdata(cXyz* i_center, f32 i_radius) {
|
||||
field_0x0 = i_center;
|
||||
field_0x8 = *i_center;
|
||||
field_0x4 = i_radius;
|
||||
}
|
||||
|
||||
~camSphChkdata(){}
|
||||
/* 0x00 */ cXyz* field_0x0;
|
||||
/* 0x04 */ f32 field_0x4;
|
||||
/* 0x08 */ cXyz field_0x8;
|
||||
/* 0x14 */ cXyz field_0x14;
|
||||
};
|
||||
|
||||
class dCamera_monitoring_things {
|
||||
public:
|
||||
dCamera_monitoring_things(){}
|
||||
~dCamera_monitoring_things(){}
|
||||
|
||||
/* 0x00 */ cXyz mPos;
|
||||
/* 0x0C */ cXyz field_0x0C;
|
||||
/* 0x10 */ int field_0x10;
|
||||
/* 0x14 */ f32 field_0x14;
|
||||
};
|
||||
|
||||
class dCamera_DMC_system {
|
||||
public:
|
||||
dCamera_DMC_system(){}
|
||||
~dCamera_DMC_system(){}
|
||||
|
||||
/* 0x0 */ u8 field_0x0;
|
||||
/* 0x1 */ u8 field_0x1;
|
||||
/* 0x2 */ cSAngle field_0x2;
|
||||
/* 0x4 */ cSAngle field_0x4;
|
||||
};
|
||||
|
||||
class dCamForcusLine {
|
||||
public:
|
||||
dCamForcusLine() { mEffectLine.initRnd(100, 100, 100); }
|
||||
void Init();
|
||||
void Draw();
|
||||
void Off();
|
||||
bool Off();
|
||||
|
||||
/* 0x00 */ void* vtbl;
|
||||
/* 0x04 */ cM_rnd_c mRnd;
|
||||
/* 0x10 */ u8 field_10[0x70 - 0x10];
|
||||
/* 0x00 */ dDlst_effectLine_c mEffectLine;
|
||||
/* 0x38 */ cXyz m38;
|
||||
/* 0x44 */ GXColor m44;
|
||||
/* 0x48 */ u8 m48;
|
||||
/* 0x49 */ u8 m49;
|
||||
/* 0x4C */ int m4C;
|
||||
/* 0x50 */ int m50;
|
||||
/* 0x54 */ int m54;
|
||||
/* 0x58 */ u16 m58;
|
||||
/* 0x5A */ u16 m5A;
|
||||
/* 0x5C */ u16 m5C;
|
||||
/* 0x5E */ u16 m5E;
|
||||
/* 0x60 */ f32 m60;
|
||||
/* 0x64 */ f32 m64;
|
||||
/* 0x68 */ f32 m68;
|
||||
/* 0x6C */ f32 m6C;
|
||||
};
|
||||
|
||||
class dCamera_c;
|
||||
typedef bool (dCamera_c::*engine_fn)(s32);
|
||||
|
||||
class dCamera_c {
|
||||
public:
|
||||
struct BG {
|
||||
BG() {}
|
||||
~BG() {}
|
||||
u8 temp[0xB0];
|
||||
/* 0x00 */ u8 m00[0x04 - 0x00];
|
||||
/* 0x04 */ dBgS_CamGndChk m04; // dBgS_CamGndChk might be too large by 4 bytes
|
||||
/* 0x58 */ f32 m58;
|
||||
/* 0x5C */ dBgS_CamGndChk m5C; // This offset is wrong, needs to be at 0x60
|
||||
};
|
||||
|
||||
/* 0x000 */ camera_class* mpCamera;
|
||||
/* 0x004 */ u8 m004;
|
||||
/* 0x005 */ u8 m005;
|
||||
/* 0x006 */ u8 m006[0x008 - 0x006];
|
||||
/* 0x008 */ f32 m008;
|
||||
/* 0x00C */ s16 m00C;
|
||||
/* 0x00E */ cSAngle m00E;
|
||||
/* 0x006 */ cSAngle m006;
|
||||
/* 0x008 */ cSGlobe mDirection;
|
||||
/* 0x010 */ cXyz mCenter;
|
||||
/* 0x01C */ cXyz mEye;
|
||||
/* 0x028 */ cXyz mUp;
|
||||
@@ -86,25 +151,42 @@ public:
|
||||
/* 0x03C */ cSGlobe m03C;
|
||||
/* 0x044 */ cXyz m044;
|
||||
/* 0x050 */ cXyz m050;
|
||||
/* 0x05C */ s16 m05C;
|
||||
/* 0x05C */ cSAngle m05C;
|
||||
/* 0x05E */ u8 m05E[0x060 - 0x05E];
|
||||
/* 0x060 */ f32 m060;
|
||||
/* 0x064 */ u8 m064[0x068 - 0x064];
|
||||
/* 0x064 */ f32 m064;
|
||||
/* 0x068 */ int m068;
|
||||
/* 0x06C */ cSAngle mAngleY;
|
||||
/* 0x06E */ u8 m06E[0x080 - 0x06E];
|
||||
/* 0x06E */ u8 m06E[0x070 - 0x06E];
|
||||
/* 0x070 */ cXyz m070;
|
||||
/* 0x07C */ u32 m07C;
|
||||
/* 0x080 */ u32 m080;
|
||||
/* 0x084 */ cXyz m084;
|
||||
/* 0x090 */ cXyz m090;
|
||||
/* 0x09C */ f32 m09C;
|
||||
/* 0x0A0 */ f32 m0A0;
|
||||
// /* 0x0A4 */ @class$4017d_camera_cpp m0A4[2];
|
||||
/* 0x0A4 */ u8 m0A4[0x40];
|
||||
/* 0x0A0 */ cSAngle m0A0;
|
||||
/* 0x0A2 */ u8 m0A2[0x0A4 - 0x0A2];
|
||||
struct {
|
||||
struct {
|
||||
/* 0x00 */ cXyz m00;
|
||||
/* 0x0C */ int m0C;
|
||||
/* 0x10 */ int m10;
|
||||
/* 0x14 */ int m14;
|
||||
/* 0x18 */ int m18;
|
||||
/* 0x1C */ int m1C;
|
||||
} field_0x00;
|
||||
}
|
||||
/* 0x0A4 */ m0A4[2];
|
||||
/* 0x0E4 */ int mStageMapToolCameraIdx;
|
||||
/* 0x0E8 */ int m0E8;
|
||||
/* 0x0EC */ u8 m0EC[0x108 - 0x0EC];
|
||||
/* 0x0EC */ cXyz mExtendedPos;
|
||||
/* 0x0F8 */ u8 m0F8[0x100 - 0x0F8];
|
||||
/* 0x100 */ u8 m100;
|
||||
/* 0x101 */ u8 m101;
|
||||
/* 0x102 */ u8 m102;
|
||||
/* 0x103 */ u8 m103[0x108 - 0x103];
|
||||
/* 0x108 */ int m108;
|
||||
/* 0x10C */ u8 m10C[0x110 - 0x10C];
|
||||
/* 0x10C */ int m10C;
|
||||
/* 0x110 */ u8 m110;
|
||||
/* 0x111 */ u8 m111[0x114 - 0x111];
|
||||
/* 0x114 */ int m114;
|
||||
@@ -114,9 +196,9 @@ public:
|
||||
/* 0x124 */ int mPadId;
|
||||
/* 0x128 */ fopAc_ac_c* mpPlayerActor;
|
||||
/* 0x12C */ fopAc_ac_c* mpLockonTarget;
|
||||
/* 0x130 */ int m130;
|
||||
/* 0x134 */ u8 m134[0x138 - 0x134];
|
||||
/* 0x138 */ int m138;
|
||||
/* 0x130 */ fpc_ProcID mLockOnActorId;
|
||||
/* 0x134 */ fopAc_ac_c* mpLockonActor;
|
||||
/* 0x138 */ int mForceLockTimer;
|
||||
/* 0x13C */ int mCurMode;
|
||||
/* 0x140 */ int mNextMode;
|
||||
/* 0x144 */ int m144;
|
||||
@@ -136,47 +218,59 @@ public:
|
||||
/* 0x178 */ f32 mStickCPosXDelta;
|
||||
/* 0x17C */ f32 mStickCPosYDelta;
|
||||
/* 0x180 */ f32 mStickCValueDelta;
|
||||
/* 0x184 */ u8 m184[0x190 - 0x184];
|
||||
/* 0x184 */ int m184;
|
||||
/* 0x188 */ u32 m188;
|
||||
/* 0x18C */ u32 m18C;
|
||||
/* 0x190 */ f32 mTriggerLeftLast;
|
||||
/* 0x194 */ f32 mTriggerLeftDelta;
|
||||
/* 0x198 */ u8 m198;
|
||||
/* 0x199 */ u8 m199;
|
||||
/* 0x198 */ u8 mHoldLockL;
|
||||
/* 0x199 */ u8 mTrigLockL;
|
||||
/* 0x19A */ u8 m19A;
|
||||
/* 0x19B */ u8 m19B;
|
||||
/* 0x19C */ f32 mTriggerRightLast;
|
||||
/* 0x1A0 */ f32 mTriggerRightDelta;
|
||||
/* 0x1A4 */ u8 m1A4;
|
||||
/* 0x1A5 */ u8 m1A5;
|
||||
/* 0x1A4 */ u8 mHoldLockR;
|
||||
/* 0x1A5 */ u8 mTrigLockR;
|
||||
/* 0x1A6 */ u8 m1A6;
|
||||
/* 0x1A7 */ u8 m1A7;
|
||||
/* 0x1A8 */ u8 m1A8;
|
||||
/* 0x1A9 */ u8 m1A9;
|
||||
/* 0x1AA */ u8 m1AA;
|
||||
/* 0x1AB */ u8 m1AB;
|
||||
/* 0x1AC */ u8 m1AC;
|
||||
/* 0x1AD */ u8 m1AD;
|
||||
/* 0x1A8 */ u8 mHoldX;
|
||||
/* 0x1A9 */ u8 mTrigX;
|
||||
/* 0x1AA */ u8 mHoldY;
|
||||
/* 0x1AB */ u8 mTrigY;
|
||||
/* 0x1AC */ u8 mHoldZ;
|
||||
/* 0x1AD */ u8 mTrigZ;
|
||||
/* 0x1AE */ u8 m1AE;
|
||||
/* 0x1AF */ u8 m1AF[0x1B0 - 0x1AF];
|
||||
/* 0x1AF */ u8 m1AF;
|
||||
/* 0x1B0 */ dCamForcusLine mForcusLine;
|
||||
/* 0x220 */ u8 m220[0x228 - 0x220];
|
||||
/* 0x228 */ cXyz mMonitorPos;
|
||||
/* 0x234 */ f32 m234;
|
||||
/* 0x238 */ f32 m238;
|
||||
/* 0x23C */ f32 m23C;
|
||||
/* 0x240 */ int m240;
|
||||
/* 0x244 */ f32 m244;
|
||||
/* 0x248 */ u8 m248[0x254 - 0x248];
|
||||
/* 0x220 */ dCamera_DMC_system mDMCSystem;
|
||||
/* 0x226 */ u8 m226[0x228 - 0x226];
|
||||
/* 0x228 */ dCamera_monitoring_things mMonitoringThings;
|
||||
/* 0x248 */ int m248[3];
|
||||
/* 0x254 */ int m254;
|
||||
/* 0x258 */ u8 m258[0x25C - 0x258];
|
||||
/* 0x258 */ int m258;
|
||||
/* 0x25C */ BG mBG;
|
||||
/* 0x30C */ u8 m30C[0x31D - 0x30C];
|
||||
/* 0x30C */ int m30C;
|
||||
/* 0x310 */ f32 m310;
|
||||
/* 0x314 */ int m314;
|
||||
/* 0x318 */ f32 m318;
|
||||
/* 0x31C */ u8 m31C;
|
||||
/* 0x31D */ u8 m31D;
|
||||
/* 0x31E */ u8 m31E[0x350 - 0x31E];
|
||||
/* 0x31E */ u8 m31E[0x320 - 0x31E];
|
||||
/* 0x320 */ cXyz m320;
|
||||
/* 0x32C */ cXyz m32C;
|
||||
/* 0x338 */ cSAngle m338;
|
||||
/* 0x33A */ cSAngle m33A;
|
||||
/* 0x33C */ fopAc_ac_c* m33C;
|
||||
/* 0x340 */ u8 m340[0x350 - 0x340];
|
||||
/* 0x350 */ int m350;
|
||||
/* 0x354 */ u8 m354[0x358 - 0x354];
|
||||
/* 0x354 */ f32 m354;
|
||||
/* 0x358 */ int mRoomNo;
|
||||
/* 0x35C */ int mRoomMapToolCameraIdx;
|
||||
/* 0x360 */ u8 m360[0x394 - 0x360];
|
||||
/* 0x360 */ u8 m360;
|
||||
/* 0x361 */ u8 m361[0x364 - 0x361];
|
||||
/* 0x364 */ u32 m364;
|
||||
/* 0x368 */ f32 m368;
|
||||
/* 0x36C */ u8 m36C[0x394 - 0x36C];
|
||||
/* 0x394 */ f32 mEvFovy;
|
||||
/* 0x398 */ f32 mEvBank;
|
||||
/* 0x39C */ fopAc_ac_c* mpEvRelActor;
|
||||
@@ -185,18 +279,8 @@ public:
|
||||
/* 0x3A8 */ u8 m3A8;
|
||||
/* 0x3A9 */ u8 m3A9[0x3AC - 0x3A9];
|
||||
/* 0x3AC */ cXyz mEvBasePos;
|
||||
/* 0x3B8 */ u8 m3B8[0x3FC - 0x3B8];
|
||||
/* 0x3FC */ int mStaffIdx;
|
||||
/* 0x400 */ int m400;
|
||||
/* 0x404 */ int m404;
|
||||
/* 0x408 */ u8 m408;
|
||||
/* 0x409 */ u8 m409[0x40C - 0x409];
|
||||
/* 0x40C */ int m40C;
|
||||
/* 0x410 */ int m410;
|
||||
/* 0x414 */ u8 m414[0x424 - 0x414];
|
||||
/* 0x424 */ dCamera__EventParam mEventParams[8];
|
||||
/* 0x4C4 */ dStage_Event_dt_c* m4C4;
|
||||
/* 0x4C8 */ d2DBSplinePath mSpline2DPath;
|
||||
/* 0x3B8 */ u8 m3B8[0x3F8 - 0x3B8];
|
||||
/* 0x3F8 */ dCamera_event_data mEventData;
|
||||
/* 0x50C */ u32 mEventFlags;
|
||||
/* 0x510 */ int mCurStyle;
|
||||
/* 0x514 */ int m514;
|
||||
@@ -204,21 +288,27 @@ public:
|
||||
/* 0x51C */ int mNextType;
|
||||
/* 0x520 */ int mMapToolType;
|
||||
/* 0x524 */ int m524;
|
||||
/* 0x528 */ int m528;
|
||||
/* 0x528 */ fopAc_ac_c* m528;
|
||||
/* 0x52C */ u8 m52C[0x530 - 0x52C];
|
||||
/* 0x530 */ int m530;
|
||||
/* 0x534 */ s16 m534;
|
||||
/* 0x536 */ s16 m536;
|
||||
/* 0x538 */ u8 m538[0x550 - 0x538];
|
||||
/* 0x538 */ f32 m538;
|
||||
/* 0x53C */ f32 m53C;
|
||||
/* 0x540 */ f32 m540;
|
||||
/* 0x544 */ u8 m544[0x550 - 0x544];
|
||||
/* 0x550 */ int m550;
|
||||
/* 0x554 */ int m554;
|
||||
/* 0x558 */ u8 m558[0x568 - 0x558];
|
||||
/* 0x568 */ cXyz mCenterShake;
|
||||
/* 0x574 */ cXyz mEyeShake;
|
||||
/* 0x580 */ f32 mFovYShake;
|
||||
/* 0x584 */ u8 m584[0x590 - 0x584];
|
||||
/* 0x584 */ u8 m584[0x588 - 0x584];
|
||||
/* 0x588 */ int m588;
|
||||
/* 0x58C */ int m58C;
|
||||
/* 0x590 */ int mBlureTimer;
|
||||
/* 0x594 */ u8 m594[0x59C - 0x594];
|
||||
/* 0x594 */ csXyz m594;
|
||||
/* 0x59A */ s16 m59A;
|
||||
/* 0x59C */ int mBlurePositionType;
|
||||
/* 0x5A0 */ cXyz mBlurePosition;
|
||||
/* 0x5AC */ cXyz mBlureScale;
|
||||
@@ -227,26 +317,38 @@ public:
|
||||
/* 0x5C0 */ stage_camera__entry mCurRoomCamEntry;
|
||||
/* 0x5D4 */ stage_arrow__entry mCurRoomArrowEntry;
|
||||
/* 0x5E8 */ int mCurArrowIdx;
|
||||
/* 0x5EC */ f32 m5EC;
|
||||
/* 0x5F0 */ f32 m5F0;
|
||||
/* 0x5F4 */ u8 m5F4[0x5F8 - 0x5F4];
|
||||
/* 0x5F8 */ f32 m5F8;
|
||||
/* 0x5FC */ int m5FC;
|
||||
/* 0x600 */ u8 m600[0x604 - 0x600];
|
||||
/* 0x604 */ f32 m604;
|
||||
/* 0x608 */ u8 m608[0x60C - 0x608];
|
||||
/* 0x5EC */ f32 mWindowWidth;
|
||||
/* 0x5F0 */ f32 mWindowHeight;
|
||||
/* 0x5F4 */ f32 m5F4;
|
||||
/* 0x5F8 */ f32 mTrimHeight;
|
||||
/* 0x5FC */ int mTrimSize;
|
||||
/* 0x600 */ int mTrimTypeForce;
|
||||
/* 0x604 */ f32 mWindowAspectRatio;
|
||||
/* 0x608 */ f32 m608;
|
||||
/* 0x60C */ dCamSetup_c mCamSetup;
|
||||
/* 0x750 */ dCamParam_c mCamParam;
|
||||
/* 0x75C */ int mCamTypeField;
|
||||
/* 0x760 */ int mCamTypeEvent;
|
||||
/* 0x764 */ int mCamTypeWater;
|
||||
/* 0x768 */ int mCamTypeSubject;
|
||||
/* 0x768 */ int m768;
|
||||
/* 0x76C */ int mCamTypeBoat;
|
||||
/* 0x770 */ int mCamTypeBoatBattle;
|
||||
/* 0x774 */ int m774;
|
||||
/* 0x774 */ int mCamTypeSubject;
|
||||
/* 0x778 */ int mCamTypeKeep;
|
||||
/* 0x77C */ int mCamTypeRestrict;
|
||||
/* 0x780 */ u8 field_780[0x800 - 0x780];
|
||||
/* 0x780 */ u8 m780;
|
||||
/* 0x781 */ u8 m781;
|
||||
/* 0x782 */ u8 m782;
|
||||
/* 0x783 */ u8 m783;
|
||||
/* 0x784 */ u8 m784;
|
||||
/* 0x785 */ u8 m785;
|
||||
/* 0x786 */ u8 m786;
|
||||
/* 0x787 */ u8 m787;
|
||||
/* 0x788 */ u8 m788;
|
||||
/* 0x789 */ u8 m789;
|
||||
/* 0x78A */ u8 m78A;
|
||||
/* 0x78B */ u8 m78B;
|
||||
/* 0x78C */ u8 m78C[0x800 - 0x78C];;
|
||||
|
||||
public:
|
||||
dCamera_c(camera_class*);
|
||||
@@ -255,93 +357,99 @@ public:
|
||||
void Start();
|
||||
void Stop();
|
||||
void Stay();
|
||||
void ChangeModeOK(s32);
|
||||
bool ChangeModeOK(s32);
|
||||
void initPad();
|
||||
void updatePad();
|
||||
void initMonitor();
|
||||
void updateMonitor();
|
||||
void calcPeepAngle();
|
||||
cSAngle calcPeepAngle();
|
||||
void Att();
|
||||
void checkForceLockTarget();
|
||||
void Run();
|
||||
void NotRun();
|
||||
void SetTrimSize(s32);
|
||||
void SetTrimTypeForce(s32);
|
||||
void SetWindow(f32 window_width, f32 window_height) {
|
||||
mWindowWidth = window_width;
|
||||
mWindowHeight = window_height;
|
||||
mWindowAspectRatio = window_width / window_height;
|
||||
}
|
||||
bool checkForceLockTarget();
|
||||
bool Run();
|
||||
bool NotRun();
|
||||
bool SetTrimSize(s32);
|
||||
bool SetTrimTypeForce(s32);
|
||||
void CalcTrimSize();
|
||||
void Draw();
|
||||
void nextMode(s32);
|
||||
void onModeChange(s32, s32);
|
||||
void nextType(s32);
|
||||
void onTypeChange(s32, s32);
|
||||
bool Draw();
|
||||
int nextMode(s32);
|
||||
bool onModeChange(s32, s32);
|
||||
int nextType(s32);
|
||||
bool onTypeChange(s32, s32);
|
||||
void SetTypeForce(char*, fopAc_ac_c*);
|
||||
void SetTypeForce(s32, fopAc_ac_c*);
|
||||
void onStyleChange(s32, s32);
|
||||
void GetCameraTypeFromMapToolID(s32, s32);
|
||||
void GetCameraTypeFromCameraName(const char*);
|
||||
bool SetTypeForce(s32, fopAc_ac_c*);
|
||||
bool onStyleChange(s32, s32);
|
||||
int GetCameraTypeFromMapToolID(s32, s32);
|
||||
int GetCameraTypeFromCameraName(const char*);
|
||||
void pushPos();
|
||||
void directionOf(fopAc_ac_c*);
|
||||
void positionOf(fopAc_ac_c*);
|
||||
void attentionPos(fopAc_ac_c*);
|
||||
void relationalPos(fopAc_ac_c*, cXyz*);
|
||||
void relationalPos(fopAc_ac_c*, cXyz*, cSAngle);
|
||||
void relationalPos(fopAc_ac_c*, fopAc_ac_c*, cXyz*, f32);
|
||||
cSAngle directionOf(fopAc_ac_c*);
|
||||
cXyz positionOf(fopAc_ac_c*);
|
||||
cXyz attentionPos(fopAc_ac_c*);
|
||||
cXyz relationalPos(fopAc_ac_c*, cXyz*);
|
||||
cXyz relationalPos(fopAc_ac_c*, cXyz*, cSAngle);
|
||||
cXyz relationalPos(fopAc_ac_c*, fopAc_ac_c*, cXyz*, f32);
|
||||
void setDMCAngle();
|
||||
void getDMCAngle(cSAngle);
|
||||
void pointInSight(cXyz*);
|
||||
void radiusActorInSight(fopAc_ac_c*, fopAc_ac_c*);
|
||||
void radiusActorInSight(fopAc_ac_c*, fopAc_ac_c*, cXyz*, cXyz*, f32, s16);
|
||||
void groundHeight(cXyz*);
|
||||
void lineBGCheck(cXyz*, cXyz*, dBgS_LinChk*, u32);
|
||||
void lineBGCheck(cXyz*, cXyz*, cXyz*, u32);
|
||||
void lineBGCheck(cXyz*, cXyz*, u32);
|
||||
void lineBGCheckBack(cXyz*, cXyz*, u32);
|
||||
void lineBGCheckBoth(cXyz*, cXyz*, dBgS_LinChk*, u32);
|
||||
void lineCollisionCheckBush(cXyz*, cXyz*);
|
||||
void compWallMargin(cXyz*, f32);
|
||||
void defaultTriming();
|
||||
cSAngle getDMCAngle(cSAngle);
|
||||
bool pointInSight(cXyz*);
|
||||
f32 radiusActorInSight(fopAc_ac_c*, fopAc_ac_c*);
|
||||
f32 radiusActorInSight(fopAc_ac_c*, fopAc_ac_c*, cXyz*, cXyz*, f32, s16);
|
||||
f32 groundHeight(cXyz*);
|
||||
bool lineBGCheck(cXyz*, cXyz*, dBgS_LinChk*, u32);
|
||||
bool lineBGCheck(cXyz*, cXyz*, cXyz*, u32);
|
||||
bool lineBGCheck(cXyz*, cXyz*, u32);
|
||||
bool lineBGCheckBack(cXyz*, cXyz*, u32);
|
||||
bool lineBGCheckBoth(cXyz*, cXyz*, dBgS_LinChk*, u32);
|
||||
BOOL lineCollisionCheckBush(cXyz*, cXyz*);
|
||||
cXyz compWallMargin(cXyz*, f32);
|
||||
int defaultTriming();
|
||||
void setView(f32, f32, f32, f32);
|
||||
void forwardCheckAngle();
|
||||
cSAngle forwardCheckAngle();
|
||||
void bumpCheck(u32);
|
||||
void getWaterSurfaceHeight(cXyz*);
|
||||
f32 getWaterSurfaceHeight(cXyz*);
|
||||
void checkSpecialArea();
|
||||
void checkGroundInfo();
|
||||
void followCamera2(s32);
|
||||
void followCamera(s32);
|
||||
void eyePos(fopAc_ac_c*);
|
||||
void heightOf(fopAc_ac_c*);
|
||||
void lockonCamera(s32);
|
||||
void getMsgCmdSpeaker();
|
||||
void getMsgCmdCut();
|
||||
void talktoCamera(s32);
|
||||
bool followCamera2(s32);
|
||||
bool followCamera(s32);
|
||||
cXyz eyePos(fopAc_ac_c*);
|
||||
f32 heightOf(fopAc_ac_c*);
|
||||
bool lockonCamera(s32);
|
||||
fopAc_ac_c* getMsgCmdSpeaker();
|
||||
int getMsgCmdCut();
|
||||
bool talktoCamera(s32);
|
||||
void CalcSubjectAngle(s16*, s16*);
|
||||
void subjectCamera(s32);
|
||||
void towerCamera(s32);
|
||||
void crawlCamera(s32);
|
||||
void hookshotCamera(s32);
|
||||
void tornadoCamera(s32);
|
||||
void rideCamera(s32);
|
||||
void hungCamera(s32);
|
||||
void vomitCamera(s32);
|
||||
void shieldCamera(s32);
|
||||
void manualCamera(s32);
|
||||
void nonOwnerCamera(s32);
|
||||
void fixedFrameCamera(s32);
|
||||
void fixedPositionCamera(s32);
|
||||
void eventCamera(s32);
|
||||
void demoCamera(s32);
|
||||
void letCamera(s32);
|
||||
void Set(cXyz, cXyz);
|
||||
void Set(cXyz, cXyz, f32, s16);
|
||||
void Set(cXyz, cXyz, s16, f32);
|
||||
void Reset(cXyz, cXyz, f32, s16);
|
||||
void Reset(cXyz, cXyz);
|
||||
void Reset();
|
||||
bool subjectCamera(s32);
|
||||
bool towerCamera(s32);
|
||||
bool crawlCamera(s32);
|
||||
bool hookshotCamera(s32);
|
||||
bool tornadoCamera(s32);
|
||||
bool rideCamera(s32);
|
||||
bool hungCamera(s32);
|
||||
bool vomitCamera(s32);
|
||||
bool shieldCamera(s32);
|
||||
bool manualCamera(s32);
|
||||
bool nonOwnerCamera(s32);
|
||||
bool fixedFrameCamera(s32);
|
||||
bool fixedPositionCamera(s32);
|
||||
bool eventCamera(s32);
|
||||
bool demoCamera(s32);
|
||||
bool letCamera(s32);
|
||||
bool Set(cXyz, cXyz);
|
||||
bool Set(cXyz, cXyz, f32, s16);
|
||||
bool Set(cXyz, cXyz, s16, f32);
|
||||
bool Reset(cXyz, cXyz, f32, s16);
|
||||
bool Reset(cXyz, cXyz);
|
||||
bool Reset();
|
||||
void ResetView();
|
||||
void Chtyp(s32);
|
||||
void U2();
|
||||
bool Chtyp(s32);
|
||||
s16 U2();
|
||||
//void U2(s16 i_val) { mAngleY = cSAngle(i_val); }
|
||||
void shakeCamera();
|
||||
void StartShake(s32, u8*, s32, cXyz);
|
||||
void StopShake();
|
||||
bool StopShake();
|
||||
void ResetBlure(int);
|
||||
void SetBlureAlpha(f32);
|
||||
void SetBlureScale(f32, f32, f32);
|
||||
@@ -349,16 +457,17 @@ public:
|
||||
void SetBlurePosition(f32, f32, f32);
|
||||
void SetBlurePositionType(int);
|
||||
void SetBlureTimer(s32);
|
||||
void SubjectLockOn(fopAc_ac_c*);
|
||||
void SubjectLockOff();
|
||||
void GetForceLockOnActor();
|
||||
void ForceLockOn(fpc_ProcID);
|
||||
void ForceLockOff(fpc_ProcID);
|
||||
void SetExtendedPosition(cXyz*);
|
||||
void ScopeViewMsgModeOff();
|
||||
bool SubjectLockOn(fopAc_ac_c*);
|
||||
bool SubjectLockOff();
|
||||
fopAc_ac_c* GetForceLockOnActor();
|
||||
bool ForceLockOn(fpc_ProcID);
|
||||
bool ForceLockOff(fpc_ProcID);
|
||||
bool SetExtendedPosition(cXyz*);
|
||||
bool ScopeViewMsgModeOff();
|
||||
|
||||
void Bank() {}
|
||||
void Up() {}
|
||||
f32 Fovy() { return mFovY + mFovYShake; }
|
||||
cSAngle Bank() {}
|
||||
cXyz Up() {}
|
||||
cXyz Center() { return mCenter + mCenterShake; }
|
||||
|
||||
void StartEventCamera(int, int, ...);
|
||||
@@ -401,22 +510,26 @@ public:
|
||||
void bSplineEvCamera();
|
||||
void twoActor0EvCamera();
|
||||
|
||||
void Pause() { if (g_dComIfG_gameInfo.play.mDemo->getObject()->getActiveCamera()) ResetView(); }
|
||||
void Active() { if (m004 && !m005) Run(); else NotRun(); }
|
||||
void CStickUse() { clrFlag(0x800000); }
|
||||
void CStickUseless() { setFlag(0x800000); }
|
||||
cXyz Eye() { return mEye + mEyeShake; }
|
||||
void StickUse() { clrFlag(0x1000000); }
|
||||
void StickUseless() { setFlag(0x1000000); }
|
||||
void setFlag(u32 flag) { mEventFlags |= flag; }
|
||||
bool chkFlag(u32 flag) { return mEventFlags & flag; }
|
||||
bool chkFlag(u32 flag) { return (mEventFlags & flag) ? true : false; }
|
||||
void clrFlag(u32 flag) { mEventFlags &= ~flag; }
|
||||
|
||||
static engine_fn engine_tbl[];
|
||||
static const int type_num;
|
||||
static dCamera__Type types[63];
|
||||
static const int mvBGType_num;
|
||||
static char* mvBGTypes[34];
|
||||
};
|
||||
|
||||
STATIC_ASSERT(sizeof(dCamera_c) == 0x800);
|
||||
|
||||
class dBgS_CamSphChk {
|
||||
~dBgS_CamSphChk();
|
||||
};
|
||||
|
||||
s16 dCam_getAngleY(camera_class*);
|
||||
s16 dCam_getAngleX(camera_class*);
|
||||
s16 dCam_getControledAngleY(camera_class*);
|
||||
|
||||
+4
-3
@@ -44,18 +44,19 @@ public:
|
||||
return mMass_Mng.Chk(p_xyz, p_actor, p_hitInf);
|
||||
}
|
||||
void SetMass(cCcD_Obj* i_obj, u8 i_priority) { mMass_Mng.Set(i_obj, i_priority); }
|
||||
|
||||
void PrepareMass() { mMass_Mng.Prepare(); }
|
||||
void SetMassAttr(f32 radius, f32 height, u8 param_2, u8 param_3) {
|
||||
mMass_Mng.SetAttr(radius, height, param_2, param_3);
|
||||
}
|
||||
|
||||
void ChkActor(fopAc_ac_c*) {}
|
||||
void GetMassCamTopPos(Vec*) {}
|
||||
void GetMassResultCam() {}
|
||||
void GetMassCamTopPos(Vec* o_pos) { mMass_Mng.GetCamTopPos(o_pos); }
|
||||
u32 GetMassResultCam() { return mMass_Mng.GetResultCam(); }
|
||||
void OffMassAllTimer() {}
|
||||
void OnMassAllTimer() {}
|
||||
void SetMassAreaChk(cCcD_Obj*, u8, void (*)(fopAc_ac_c*, cXyz*, u32)) {}
|
||||
void SetMassCam(cM3dGCps&) {}
|
||||
void SetMassCam(cM3dGCps& i_cps) { mMass_Mng.SetCam(i_cps); }
|
||||
|
||||
// /* 0x0000 */ cCcS mCCcS;
|
||||
/* 0x2854 */ dCcMassS_Mng mMass_Mng;
|
||||
|
||||
+143
-21
@@ -180,14 +180,17 @@ public:
|
||||
~dComIfG_camera_info_class() {}
|
||||
|
||||
/* 0x00 */ camera_class* mpCamera;
|
||||
/* 0x04 */ u8 mDlstWindowIdx;
|
||||
/* 0x05 */ u8 mCamIdx;
|
||||
/* 0x06 */ s8 field_0x06;
|
||||
/* 0x04 */ s8 mDlstWindowIdx;
|
||||
/* 0x05 */ s8 mCamP1Id;
|
||||
/* 0x06 */ s8 mCamP2Id;
|
||||
/* 0x07 */ u8 field_0x07;
|
||||
/* 0x08 */ u32 mCameraAttentionStatus;
|
||||
/* 0x0C */ f32 mCameraZoomScale;
|
||||
/* 0x10 */ f32 mCameraZoomForcus;
|
||||
/* 0x14 */ u8 field_0x14[0x34 - 0x14];
|
||||
/* 0x14 */ cXyz mCameraPos;
|
||||
/* 0x20 */ cXyz mCameraTarget;
|
||||
/* 0x2C */ f32 mCameraFovy;
|
||||
/* 0x30 */ s16 mCameraBank;
|
||||
};
|
||||
STATIC_ASSERT(sizeof(dComIfG_camera_info_class) == 0x34);
|
||||
|
||||
@@ -200,6 +203,13 @@ struct ItemTableList {
|
||||
u8 mItemTables[0x1E][0x10];
|
||||
};
|
||||
|
||||
class dComIfG_MesgCamInfo_c {
|
||||
public:
|
||||
/* 0x00 */ int mID;
|
||||
/* 0x04 */ int mBasicID;
|
||||
/* 0x08 */ fopAc_ac_c* mActor[10];
|
||||
};
|
||||
|
||||
class dComIfG_play_c {
|
||||
public:
|
||||
#if VERSION == VERSION_JPN
|
||||
@@ -240,6 +250,44 @@ public:
|
||||
BOOL checkCameraAttentionStatus(int idx, u32 flag) {
|
||||
return mCameraInfo[idx].mCameraAttentionStatus & flag;
|
||||
}
|
||||
u32 getCameraAttentionStatus(int i) { return mCameraInfo[i].mCameraAttentionStatus; }
|
||||
void setCameraAttentionStatus(int i, u32 flag) { mCameraInfo[i].mCameraAttentionStatus = flag; }
|
||||
void onCameraAttentionStatus(int i, u32 flag) { mCameraInfo[i].mCameraAttentionStatus |= flag; }
|
||||
void offCameraAttentionStatus(int i, u32 flag) {
|
||||
mCameraInfo[i].mCameraAttentionStatus &= ~flag;
|
||||
}
|
||||
|
||||
void setCamera(int i, camera_class* cam) { mCameraInfo[i].mpCamera = cam; }
|
||||
void setCameraInfo(int idx, camera_class* camera_p, int dlst_window_idx, int player1_camera_id, int player2_camera_id) {
|
||||
mCameraInfo[idx].mpCamera = camera_p;
|
||||
mCameraInfo[idx].mDlstWindowIdx = dlst_window_idx;
|
||||
mCameraInfo[idx].mCamP1Id = player1_camera_id;
|
||||
mCameraInfo[idx].mCamP2Id = player2_camera_id;
|
||||
setCameraAttentionStatus(0, 0);
|
||||
}
|
||||
|
||||
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; }
|
||||
|
||||
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 setMesgCamInfoBasicID(int id) { mMesgCamInfo.mBasicID = id; }
|
||||
dComIfG_MesgCamInfo_c* getMesgCamInfo() { return &mMesgCamInfo; }
|
||||
void setMesgCamInfoID(int param_0) { mMesgCamInfo.mID = param_0; }
|
||||
|
||||
~dComIfG_play_c() {}
|
||||
|
||||
@@ -293,10 +341,13 @@ public:
|
||||
void setGameoverStatus(u8 stts) { mGameoverStatus = stts; }
|
||||
|
||||
fopAc_ac_c* getPlayerPtr(int idx) { return (fopAc_ac_c*)mpPlayerPtr[idx]; }
|
||||
fopAc_ac_c* getPlayer(int idx) { return (fopAc_ac_c*)mpPlayer[idx]; }
|
||||
fopAc_ac_c* getPlayer(int idx) { return (fopAc_ac_c*)mpPlayer[idx * 2]; }
|
||||
void setPlayer(int idx, fopAc_ac_c* player) { mpPlayer[idx] = (daPy_py_c*)player; }
|
||||
void setPlayerPtr(int idx, fopAc_ac_c* playerPtr) { mpPlayerPtr[idx] = playerPtr; }
|
||||
s8 getPlayerCameraID(int idx) { return mCurCamera[idx]; }
|
||||
int getCameraPlayer1ID(int i) { return mCameraInfo[i].mCamP1Id; }
|
||||
int getCameraPlayer2ID(int i) { return mCameraInfo[i].mCamP2Id; }
|
||||
int getCameraWinID(int i) { return mCameraInfo[i].mDlstWindowIdx; }
|
||||
void setPlayerInfo(int idx, fopAc_ac_c* player, int cam) {
|
||||
mpPlayer[idx] = (daPy_py_c*)player;
|
||||
mCurCamera[idx] = cam;
|
||||
@@ -456,16 +507,6 @@ public:
|
||||
u8 getScopeMesgStatus() { return mbCamOverrideFarPlane; }
|
||||
void setScopeMesgStatus(u8 status) { mbCamOverrideFarPlane = status; }
|
||||
|
||||
void setCameraInfo(int idx, camera_class* camera_p, int dlst_window_idx, int cam_idx, int p5) {
|
||||
mCameraInfo[idx].mpCamera = camera_p;
|
||||
mCameraInfo[idx].mDlstWindowIdx = dlst_window_idx;
|
||||
mCameraInfo[idx].mCamIdx = cam_idx;
|
||||
mCameraInfo[idx].field_0x06 = p5;
|
||||
setCameraAttentionStatus(0, 0);
|
||||
}
|
||||
void setCameraAttentionStatus(int idx, u32 stts) {
|
||||
mCameraInfo[idx].mCameraAttentionStatus = stts;
|
||||
}
|
||||
void setCurrentGrafPort(J2DOrthoGraph* i_graf) { mCurrentGrafPort = i_graf; }
|
||||
void setCurrentWindow(dDlst_window_c* i_window) { mCurrentWindow = i_window; }
|
||||
void setCurrentView(view_class* i_view) { mCurrentView = i_view; }
|
||||
@@ -751,9 +792,7 @@ public:
|
||||
/* 0x497A */ u8 field_0x497a;
|
||||
/* 0x497B */ u8 field_0x497B[0x497C - 0x497B];
|
||||
/* 0x497C */ JKRExpHeap* mpExpHeap2D;
|
||||
/* 0x4980 */ int mMesgCameraTagInfo;
|
||||
/* 0x4984 */ int field_0x4984;
|
||||
/* 0x4988 */ int field_0x4988[10];
|
||||
/* 0x4980 */ dComIfG_MesgCamInfo_c mMesgCamInfo;
|
||||
/* 0x49B0 */ u8 mPlayerInfoBuffer[sizeof(dSv_player_status_c_c)];
|
||||
/* 0x4A20 */ u8 mPlayerInfoBufferStageNo;
|
||||
/* 0x4A24 */ daAgb_c* mpAgb;
|
||||
@@ -2207,6 +2246,22 @@ inline daPy_lk_c* daPy_getPlayerLinkActorClass() {
|
||||
return (daPy_lk_c*)dComIfGp_getLinkPlayer();
|
||||
}
|
||||
|
||||
inline void dComIfGp_setWindowNum(int num) {
|
||||
g_dComIfG_gameInfo.play.setWindowNum(num);
|
||||
}
|
||||
|
||||
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);
|
||||
}
|
||||
@@ -2215,6 +2270,50 @@ inline u32 dComIfGp_checkCameraAttentionStatus(int idx, u32 flag) {
|
||||
return g_dComIfG_gameInfo.play.checkCameraAttentionStatus(idx, flag);
|
||||
}
|
||||
|
||||
inline void dComIfGp_onCameraAttentionStatus(int i, u32 flag) {
|
||||
g_dComIfG_gameInfo.play.onCameraAttentionStatus(i, flag);
|
||||
}
|
||||
|
||||
inline void dComIfGp_offCameraAttentionStatus(int i, u32 flag) {
|
||||
g_dComIfG_gameInfo.play.offCameraAttentionStatus(i, flag);
|
||||
}
|
||||
|
||||
inline void dComIfGp_setCamera(int i, camera_class* cam) {
|
||||
g_dComIfG_gameInfo.play.setCamera(i, cam);
|
||||
}
|
||||
|
||||
inline void dComIfGp_setCameraInfo(int idx, camera_class* camera, int dlst, int cam, int p5) {
|
||||
g_dComIfG_gameInfo.play.setCameraInfo(idx, camera, dlst, cam, p5);
|
||||
}
|
||||
|
||||
inline void dComIfGp_setCameraZoomScale(int i_no, f32 i_scale) {
|
||||
g_dComIfG_gameInfo.play.setCameraZoomScale(i_no, i_scale);
|
||||
}
|
||||
|
||||
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);
|
||||
}
|
||||
|
||||
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 int dComIfGp_getItemRupeeCount() {
|
||||
return g_dComIfG_gameInfo.play.getItemRupeeCount();
|
||||
}
|
||||
@@ -2525,9 +2624,6 @@ inline void dComIfGp_plusMiniGameRupee(s16 count) {
|
||||
g_dComIfG_gameInfo.play.plusMiniGameRupee(count);
|
||||
}
|
||||
|
||||
inline void dComIfGp_setCameraInfo(int idx, camera_class* camera, int dlst, int cam, int p5) {
|
||||
g_dComIfG_gameInfo.play.setCameraInfo(idx, camera, dlst, cam, p5);
|
||||
}
|
||||
inline s32 dComIfGp_getWindowNum() { return g_dComIfG_gameInfo.play.getWindowNum(); }
|
||||
inline void dComIfGp_setWindowNum(u8 num) { g_dComIfG_gameInfo.play.setWindowNum(num); }
|
||||
inline dDlst_window_c * dComIfGp_getWindow(int idx) { return g_dComIfG_gameInfo.play.getWindow(idx); }
|
||||
@@ -2626,6 +2722,19 @@ inline u8 dComIfGp_getMesgStatus() {
|
||||
return g_dComIfG_gameInfo.play.getMesgStatus();
|
||||
}
|
||||
|
||||
|
||||
inline void dComIfGp_setMesgCameraTagInfo(int id) {
|
||||
g_dComIfG_gameInfo.play.setMesgCamInfoID(id);
|
||||
}
|
||||
|
||||
inline void dComIfGp_setMesgCameraAttrInfo(int param_1) {
|
||||
g_dComIfG_gameInfo.play.setMesgCamInfoBasicID(param_1);
|
||||
}
|
||||
|
||||
inline dComIfG_MesgCamInfo_c* dComIfGp_getMesgCameraInfo() {
|
||||
return g_dComIfG_gameInfo.play.getMesgCamInfo();
|
||||
}
|
||||
|
||||
inline u8 dComIfGp_checkMesgBgm() {
|
||||
return g_dComIfG_gameInfo.play.checkMesgBgm();
|
||||
}
|
||||
@@ -3027,6 +3136,10 @@ inline u8 dComIfGp_evmng_getEventEndSound(s16 eventIdx) {
|
||||
return g_dComIfG_gameInfo.play.getEvtManager().getEventEndSound(eventIdx);
|
||||
}
|
||||
|
||||
inline int dComIfGp_evmng_cameraPlay() {
|
||||
return dComIfGp_getPEvtManager()->cameraPlay();
|
||||
}
|
||||
|
||||
/**
|
||||
* === DEMO ===
|
||||
*/
|
||||
@@ -3063,6 +3176,9 @@ inline dDemo_actor_c* dComIfGp_demo_getActor(u8 id) {
|
||||
return g_dComIfG_gameInfo.play.getDemo()->getObject()->getActor(id);
|
||||
}
|
||||
|
||||
stage_camera_class* dComIfGp_getRoomCamera(int i_roomNo);
|
||||
stage_arrow_class* dComIfGp_getRoomArrow(int i_roomNo);
|
||||
|
||||
/**
|
||||
* === DRAWLIST ===
|
||||
*/
|
||||
@@ -3626,6 +3742,10 @@ inline void dComIfGp_att_chkEnemySound() {
|
||||
* === MAP ===
|
||||
*/
|
||||
|
||||
inline void dComIfGp_map_draw(f32 x, f32 z, int roomNo, f32 y) {
|
||||
dMap_c::draw(x, z, roomNo, y);
|
||||
}
|
||||
|
||||
inline void dComIfGp_map_mapBufferSendAGB(int param_0) {
|
||||
dMap_c::mapBufferSendAGB(param_0);
|
||||
}
|
||||
@@ -3710,4 +3830,6 @@ BOOL dComIfG_resetToOpening(scene_class* i_scene);
|
||||
|
||||
int dComIfG_changeOpeningScene(scene_class* i_scene, s16 i_procName);
|
||||
|
||||
|
||||
|
||||
#endif /* D_COM_D_COM_INF_GAME_H */
|
||||
|
||||
+5
-5
@@ -181,11 +181,11 @@ public:
|
||||
bool checkEnable(u8 mask) { return mFlags & mask; }
|
||||
void onEnable(u8 flag) { mFlags |= flag; }
|
||||
|
||||
void getFovy() {}
|
||||
void getRoll() {}
|
||||
void getTarget() {}
|
||||
void getTrans() {}
|
||||
void getUp() {}
|
||||
f32 getFovy() { return mFovy; }
|
||||
f32 getRoll() { return mRoll; }
|
||||
cXyz& getTarget() { return mTargetPosition; }
|
||||
cXyz& getTrans() { return mViewPosition; }
|
||||
cXyz& getUp() { return mUpVector; }
|
||||
|
||||
private:
|
||||
/* 0x04 */ u8 mFlags;
|
||||
|
||||
@@ -210,6 +210,13 @@ public:
|
||||
void update(cXyz&, GXColor&, u16, u16, u16, u16, f32, f32, f32, f32);
|
||||
virtual void draw();
|
||||
|
||||
f32 getRndFX(f32 param_0) { return mRnd.getFX(param_0); }
|
||||
f32 getRndValue(f32 param_0, f32 param_1) { return mRnd.getValue(param_0, param_1); }
|
||||
|
||||
void initRnd(int r0, int r1, int r2) {
|
||||
mRnd.init(r0, r1, r2);
|
||||
}
|
||||
|
||||
public:
|
||||
/* 0x04 */ cM_rnd_c mRnd;
|
||||
/* 0x10 */ cXyz mPos;
|
||||
@@ -238,6 +245,7 @@ public:
|
||||
void setScissor(f32, f32, f32, f32);
|
||||
|
||||
view_port_class* getViewPort() { return &mViewport; }
|
||||
scissor_class* getScissor() { return &mViewport.mScissor; }
|
||||
int getCameraID() { return mCameraID; }
|
||||
void setCameraID(int id) { mCameraID = id; }
|
||||
void setMode(int mode) { mMode = mode; }
|
||||
|
||||
@@ -67,7 +67,8 @@ public:
|
||||
|
||||
int setStartDemo(int eventInfoIdx) { return mException.setStartDemo(eventInfoIdx); }
|
||||
void cancelStartDemo() { /* TODO */ }
|
||||
void setCameraPlay(u32 v) { mCameraPlay = v; }
|
||||
void setCameraPlay(int v) { mCameraPlay = v; }
|
||||
int cameraPlay() { return mCameraPlay; }
|
||||
|
||||
/* 0x000 */ dEvDtBase_c mList;
|
||||
/* 0x020 */ u32 mCameraPlay;
|
||||
|
||||
@@ -27,7 +27,10 @@ public:
|
||||
/* 0x24 */ f32 mCurveWeight[3];
|
||||
/* 0x30 */ s32 mCurveKey[3];
|
||||
/* 0x3C */ void* mUser;
|
||||
/* 0x40 */ void* vtbl; // XXX
|
||||
/* 0x40 */ //void* vtbl; // XXX
|
||||
|
||||
d2DBSplinePath() { Init(0, 0); }
|
||||
virtual ~d2DBSplinePath(){};
|
||||
};
|
||||
|
||||
#endif /* D_SPLINE_PATH_H */
|
||||
|
||||
+33
-31
@@ -59,13 +59,13 @@ public:
|
||||
};
|
||||
|
||||
struct stage_stag_info_class {
|
||||
/* 0x00 */ f32 field_0x0;
|
||||
/* 0x04 */ f32 field_0x4;
|
||||
/* 0x08 */ u8 mDefaultCameraType;
|
||||
/* 0x09 */ u8 field_0x09;
|
||||
/* 0x0A */ u16 field_0x0a;
|
||||
/* 0x0C */ u32 field_0x0c;
|
||||
/* 0x10 */ u32 field_0x10;
|
||||
/* 0x00 */ f32 mNearPlane;
|
||||
/* 0x04 */ f32 mFarPlane;
|
||||
/* 0x08 */ u8 mCameraMapToolID;
|
||||
/* 0x09 */ u8 mProp;
|
||||
/* 0x0A */ u16 mParticleSceneNo;
|
||||
/* 0x0C */ u32 mStageTypeAndSchbit;
|
||||
/* 0x10 */ u32 mSchbitEnableAndFarPlane; // High 16 bits are the schbit enable, low 16 bits are the far plane
|
||||
/* 0x14 */ u32 field_0x14;
|
||||
/* 0x18 */ u32 field_0x18;
|
||||
/* 0x1C */ u32 field_0x1c;
|
||||
@@ -156,31 +156,33 @@ public:
|
||||
};
|
||||
|
||||
struct stage_camera2_data_class {
|
||||
/* 0x00 */ int field_0x0;
|
||||
/* 0x04 */ f32 field_0x4;
|
||||
/* 0x08 */ f32 field_0x8;
|
||||
/* 0x0C */ f32 field_0xc;
|
||||
/* 0x10 */ u8 field_0x10;
|
||||
/* 0x11 */ u8 field_0x11;
|
||||
/* 0x12 */ u8 field_0x12;
|
||||
/* 0x13 */ u8 field_0x13;
|
||||
/* 0x14 */ u16 field_0x14;
|
||||
/* 0x16 */ u16 field_0x16;
|
||||
/* 0x00 */ int m00;
|
||||
/* 0x04 */ f32 m04;
|
||||
/* 0x08 */ f32 m08;
|
||||
/* 0x0C */ f32 m0C;
|
||||
/* 0x10 */ u8 mArrowIdx;
|
||||
/* 0x11 */ u8 m11;
|
||||
/* 0x12 */ u8 m12;
|
||||
/* 0x13 */ u8 m13;
|
||||
}; // Size: 0x18
|
||||
|
||||
struct stage_camera_class {
|
||||
/* 0x0 */ int num;
|
||||
/* 0x4 */ stage_camera2_data_class* m_entries;
|
||||
/* 0x4 */ stage_camera2_data_class* mEntries;
|
||||
};
|
||||
|
||||
struct stage_arrow_data_class {
|
||||
/* 0x00 */ cXyz mPosition;
|
||||
/* 0x0C */ csXyz mAngle;
|
||||
struct {
|
||||
/* 0x00 */ cXyz mPosition;
|
||||
/* 0x0C */ csXyz mAngle;
|
||||
/* 0x12 */ s16 m12;
|
||||
}
|
||||
/* 0x00 */ m00;
|
||||
}; // Size: 0x14
|
||||
|
||||
struct stage_arrow_class {
|
||||
/* 0x00 */ int num;
|
||||
/* 0x04 */ stage_arrow_data_class* m_entries;
|
||||
/* 0x04 */ stage_arrow_data_class* mEntries;
|
||||
};
|
||||
|
||||
class stage_actor_data_class {
|
||||
@@ -1009,43 +1011,43 @@ const char* dStage_getName2(s16 i_procName, s8 i_subtype);
|
||||
|
||||
|
||||
inline u8 dStage_stagInfo_DefaultCameraType(stage_stag_info_class* p_info) {
|
||||
return p_info->mDefaultCameraType;
|
||||
return p_info->mCameraMapToolID;
|
||||
}
|
||||
|
||||
inline s32 dStage_stagInfo_ChkKeyDisp(stage_stag_info_class* i_stagInfo) {
|
||||
return i_stagInfo->field_0x09 & 1;
|
||||
return i_stagInfo->mProp & 1;
|
||||
}
|
||||
|
||||
inline s32 dStage_stagInfo_GetSaveTbl(stage_stag_info_class* i_stagInfo) {
|
||||
return (i_stagInfo->field_0x09 >> 1) & 0x7F;
|
||||
return (i_stagInfo->mProp >> 1) & 0x7F;
|
||||
}
|
||||
|
||||
inline u32 dStage_stagInfo_GetSTType(stage_stag_info_class* i_stagInfo) {
|
||||
return (i_stagInfo->field_0x0c >> 16) & 7;
|
||||
return (i_stagInfo->mStageTypeAndSchbit >> 16) & 7;
|
||||
}
|
||||
|
||||
inline u8 dStage_stagInfo_GetUpButton(stage_stag_info_class* i_stagInfo) {
|
||||
return i_stagInfo->field_0x0a & 3;
|
||||
return i_stagInfo->mParticleSceneNo & 3;
|
||||
}
|
||||
|
||||
inline u8 dStage_stagInfo_GetParticleNo(stage_stag_info_class* i_stagInfo) {
|
||||
return (i_stagInfo->field_0x0a >> 0x3) & 0xFF;
|
||||
return (i_stagInfo->mParticleSceneNo >> 0x3) & 0xFF;
|
||||
}
|
||||
|
||||
inline s8 dStage_stagInfo_GetTimeH(stage_stag_info_class* p_info) {
|
||||
return (p_info->field_0x0c >> 8) & 0xFF;
|
||||
return (p_info->mStageTypeAndSchbit >> 8) & 0xFF;
|
||||
}
|
||||
|
||||
inline u16 dStage_stagInfo_GetCullPoint(stage_stag_info_class* p_info) {
|
||||
return p_info->field_0x10 & 0xFFFF;
|
||||
return p_info->mSchbitEnableAndFarPlane & 0xFFFF;
|
||||
}
|
||||
|
||||
inline u8 dStage_stagInfo_getStartSch(stage_stag_info_class* p_info) {
|
||||
return (p_info->field_0x10 >> 0x10) & 0xFF;
|
||||
return (p_info->mSchbitEnableAndFarPlane >> 0x10) & 0xFF;
|
||||
}
|
||||
|
||||
inline u8 dStage_stagInfo_GetSchSec(stage_stag_info_class* p_info) {
|
||||
return p_info->field_0x0c & 0xFF;
|
||||
return p_info->mStageTypeAndSchbit & 0xFF;
|
||||
}
|
||||
|
||||
// TODO:
|
||||
|
||||
@@ -24,7 +24,7 @@ public:
|
||||
/* 0x09 */ u8 field_0x09;
|
||||
/* 0x0A */ u8 field_0x0a;
|
||||
/* 0x0B */ u8 field_0x0b;
|
||||
/* 0x0C */ f32 field_0x0c;
|
||||
/* 0x0C */ f32 mAspectRatio;
|
||||
/* 0x10 */ u8 field_0x10;
|
||||
/* 0x11 */ u8 field_0x11;
|
||||
/* 0x12 */ u8 field_0x12;
|
||||
@@ -77,5 +77,6 @@ inline bool fapGmHIO_isMenu() { return !!(g_HIO.mDisplayFlag & 0x02); }
|
||||
inline bool fapGmHIO_getMeter() { return g_HIO.mDisplayMeter; }
|
||||
inline s16 fapGmHIO_getFbWidth() { return g_HIO.mFbWidth; }
|
||||
inline s16 fapGmHIO_getEfbHeight() { return g_HIO.mEfbHeight; }
|
||||
inline f32 fapGmHIO_getAspectRatio() { return g_HIO.mAspectRatio; }
|
||||
|
||||
#endif /* F_AP_GAME_H */
|
||||
|
||||
@@ -21,8 +21,7 @@ public:
|
||||
|
||||
class camera_class : public camera_process_class {
|
||||
public:
|
||||
/* 0x23C */ int field_0x23c;
|
||||
/* 0x240 */ int field_0x244;
|
||||
/* 0x23C */ request_of_phase_process_class phase_request;
|
||||
/* 0x244 */ dCamera_c mCamera;
|
||||
};
|
||||
|
||||
|
||||
@@ -5,42 +5,96 @@
|
||||
#include "SSystem/SComponent/c_sxyz.h"
|
||||
#include "f_op/f_op_camera.h"
|
||||
|
||||
/* void fopCamM_SetNear(camera_class* cam, f32 near) {
|
||||
cam->mNear = near;
|
||||
|
||||
inline void fopCamM_SetAngleX(camera_class* i_camera, s16 angleX) {
|
||||
i_camera->mAngle.x = angleX;
|
||||
}
|
||||
|
||||
void fopCamM_SetFar(camera_class* cam, f32 far) {
|
||||
cam->mFar = far;
|
||||
inline void fopCamM_SetAngleY(camera_class* i_camera, s16 angleY) {
|
||||
i_camera->mAngle.y = angleY;
|
||||
}
|
||||
|
||||
void fopCamM_SetFovy(camera_class* cam, f32 fovy) {
|
||||
cam->mFovy = fovy;
|
||||
inline void fopCamM_SetAngleZ(camera_class* i_camera, s16 angleZ) {
|
||||
i_camera->mAngle.z = angleZ;
|
||||
}
|
||||
|
||||
void fopCamM_SetAspect(camera_class* cam, f32 aspect) {
|
||||
cam->mAspect = aspect;
|
||||
inline void fopCamM_SetNear(camera_class* i_this, f32 near) {
|
||||
i_this->mNear = near;
|
||||
}
|
||||
|
||||
void fopCamM_SetEye(camera_class* cam, f32 x, f32 y, f32 z) {
|
||||
cam->field_0xd8.mEye.set(x, y, z);
|
||||
inline void fopCamM_SetFar(camera_class* i_this, f32 far) {
|
||||
i_this->mFar = far;
|
||||
}
|
||||
|
||||
void fopCamM_SetCenter(camera_class* cam, f32 x, f32 y, f32 z) {
|
||||
cam->field_0xd8.mCenter.set(x, y, z);
|
||||
inline void fopCamM_SetFovy(camera_class* i_this, f32 fovy) {
|
||||
i_this->mFovy = fovy;
|
||||
}
|
||||
|
||||
void fopCamM_SetBank(camera_class* cam, s16 bank) {
|
||||
cam->mBank = bank;
|
||||
} */
|
||||
inline void fopCamM_SetAspect(camera_class* i_this, f32 aspect) {
|
||||
i_this->mAspect = aspect;
|
||||
}
|
||||
|
||||
inline void fopCamM_SetEye(camera_class* i_this, f32 x, f32 y, f32 z) {
|
||||
i_this->mLookat.mEye.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);
|
||||
}
|
||||
|
||||
inline void fopCamM_SetUp(camera_class* i_this, f32 x, f32 y, f32 z) {
|
||||
i_this->mLookat.mUp.set(x, y, z);
|
||||
}
|
||||
|
||||
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;
|
||||
}
|
||||
|
||||
inline s16 fopCamM_GetAngleY(camera_class* i_camera) {
|
||||
return i_camera->mAngle.y;
|
||||
}
|
||||
|
||||
inline s16 fopCamM_GetAngleZ(camera_class* i_camera) {
|
||||
return i_camera->mAngle.z;
|
||||
}
|
||||
|
||||
inline f32 fopCamM_GetFovy(camera_class* i_camera) {
|
||||
return i_camera->mFovy;
|
||||
}
|
||||
|
||||
inline cXyz* fopCamM_GetEye_p(camera_class* i_camera) {
|
||||
return &i_camera->mLookat.mEye;
|
||||
}
|
||||
|
||||
inline cXyz* fopCamM_GetCenter_p(camera_class* i_camera) {
|
||||
return &i_camera->mLookat.mCenter;
|
||||
}
|
||||
|
||||
inline cXyz* fopCamM_GetUp_p(camera_class* i_camera) {
|
||||
return &i_camera->mLookat.mUp;
|
||||
}
|
||||
|
||||
|
||||
inline s16 fopCamM_GetBank(camera_class* i_camera) {
|
||||
return i_camera->mBank;
|
||||
}
|
||||
|
||||
fpc_ProcID fopCamM_Create(int i_cameraIdx, s16 pProcName, void* i_append);
|
||||
void fopCamM_Management(void);
|
||||
u32 fopCamM_GetParam(camera_class* pCamera);
|
||||
|
||||
@@ -167,6 +167,18 @@ inline void mDoAud_linkVoiceStart(u32 param_0, Vec* i_sePos, u8 param_3, s8 para
|
||||
mDoAud_zelAudio_c::getInterface()->linkVoiceStart(param_0, i_sePos, param_3, param_4);
|
||||
}
|
||||
|
||||
inline void mDoAud_getCameraMapInfo(u32 param_0) {
|
||||
mDoAud_zelAudio_c::getInterface()->getCameraMapInfo(param_0);
|
||||
}
|
||||
|
||||
inline void mDoAud_setCameraGroupInfo(u8 param_0) {
|
||||
mDoAud_zelAudio_c::getInterface()->setCameraGroupInfo(param_0);
|
||||
}
|
||||
|
||||
inline void mDoAud_getCameraInfo(Vec* param_0, MtxP param_1, u32 param_2) {
|
||||
mDoAud_zelAudio_c::getInterface()->getCameraInfo(param_0, param_1, param_2);
|
||||
}
|
||||
|
||||
inline void mDoAud_setLinkGroupInfo(u8 param_0) {
|
||||
mDoAud_zelAudio_c::getInterface()->setLinkGroupInfo(param_0);
|
||||
}
|
||||
|
||||
@@ -40,6 +40,7 @@ public:
|
||||
static u8 getBlureRate() { return mBlureRate; }
|
||||
static MtxP getBlureMtx() { return mBlureMtx; }
|
||||
static void offAutoForcus() { mAutoForcus = false; }
|
||||
static void onAutoForcus() { mAutoForcus = true; }
|
||||
static BOOL isAutoForcus() { return mAutoForcus; }
|
||||
static void setTickRate(u32 rate) { JFWDisplay::getManager()->setTickRate(rate); }
|
||||
static void waitBlanking(int wait) { JFWDisplay::getManager()->waitBlanking(wait); }
|
||||
|
||||
@@ -143,6 +143,10 @@ inline void cMtx_inverseTranspose(const Mtx a, Mtx b) {
|
||||
mDoMtx_inverseTranspose(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() {
|
||||
|
||||
+2588
-225
File diff suppressed because it is too large
Load Diff
@@ -171,11 +171,11 @@ void dComIfG_play_c::itemInit() {
|
||||
field_0x497a = 0;
|
||||
mNowVibration = dComIfGs_getOptVibration();
|
||||
daArrow_c::setKeepType(daArrow_c::TYPE_NORMAL);
|
||||
mMesgCameraTagInfo = 0;
|
||||
field_0x4984 = 0;
|
||||
mMesgCamInfo.mID = 0;
|
||||
mMesgCamInfo.mBasicID = 0;
|
||||
|
||||
for (int i = 0; i < ARRAY_SIZE(field_0x4988); i++) {
|
||||
field_0x4988[i] = 0;
|
||||
for (int i = 0; i < ARRAY_SIZE(mMesgCamInfo.mActor); i++) {
|
||||
mMesgCamInfo.mActor[i] = 0;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -566,7 +566,7 @@ void dKyr_sun_move() {
|
||||
cLib_addCalc(&pSunPkt->mSunAlpha, 1.0f, 0.5f, 0.1f, 0.01f);
|
||||
|
||||
if (pCamera != NULL) {
|
||||
borderY = pCamera->mCamera.m5F8;
|
||||
borderY = pCamera->mCamera.mTrimHeight;
|
||||
}
|
||||
|
||||
cXyz projected;
|
||||
|
||||
@@ -51,7 +51,7 @@ void dOvlpFd2_dlst_c::draw() {
|
||||
GXEnd();
|
||||
|
||||
Mtx44 proj;
|
||||
C_MTXPerspective(proj, 60.0f, g_HIO.field_0x0c * 1.33333333f, 100.0f, 100000.0f);
|
||||
C_MTXPerspective(proj, 60.0f, fapGmHIO_getAspectRatio() * 1.33333333f, 100.0f, 100000.0f);
|
||||
GXSetProjection(proj, GX_PERSPECTIVE);
|
||||
|
||||
GXInitTexObj(mDoGph_gInf_c::getFrameBufferTexObj(), mDoGph_gInf_c::getFrameBufferTex(), 320, 240, GX_TF_RGBA8, GX_CLAMP, GX_CLAMP, GX_FALSE);
|
||||
|
||||
+2
-2
@@ -152,7 +152,7 @@ cPhs_State dScnName_c::create() {
|
||||
field_0x2a0 = 160000.0f;
|
||||
field_0x2a4 = 60.0f;
|
||||
f32 aspect = dComIfGp_getWindow(0)->getViewPort()->mWidth / dComIfGp_getWindow(0)->getViewPort()->mHeight;
|
||||
field_0x2a8 = aspect * g_HIO.field_0x0c;
|
||||
field_0x2a8 = aspect * fapGmHIO_getAspectRatio();
|
||||
field_0x2ac.x = 9377.0f;
|
||||
field_0x2ac.y = 0.0;
|
||||
field_0x2ac.z = 7644.0;
|
||||
@@ -960,7 +960,7 @@ void dDlst_FLSEL_CLOTH_c::draw() {
|
||||
Mtx44 mtx;
|
||||
view_port_class* viewport = dComIfGp_getCurrentViewport();
|
||||
f32 aspect = viewport->mWidth / viewport->mHeight;
|
||||
C_MTXPerspective(mtx, 30.0f, aspect * g_HIO.field_0x0c, 1.0f, 100000.0f);
|
||||
C_MTXPerspective(mtx, 30.0f, aspect * fapGmHIO_getAspectRatio(), 1.0f, 100000.0f);
|
||||
GXSetProjection(mtx, GX_PERSPECTIVE);
|
||||
cloth_c->draw(0.0f, (GXColor){0xe3, 0xff, 0xb3, 0xff}, (GXColor){0x00, 0x00, 0x00, 0x00}, 0);
|
||||
dComIfGp_getCurrentGrafPort()->setPort();
|
||||
|
||||
+5
-5
@@ -1315,10 +1315,10 @@ int dStage_cameraCreate(stage_camera2_data_class* i_cameraData, int i_cameraIdx,
|
||||
i_cameraData = static_cast<stage_camera2_data_class*>(cMl::memalignB(-4, 0x18));
|
||||
|
||||
if (i_cameraData != NULL) {
|
||||
i_cameraData->field_0x4 = 0.0f;
|
||||
i_cameraData->field_0x8 = 0.0f;
|
||||
i_cameraData->field_0x4 = 0.0f;
|
||||
i_cameraData->field_0x0 = param_2;
|
||||
i_cameraData->m04 = 0.0f;
|
||||
i_cameraData->m08 = 0.0f;
|
||||
i_cameraData->m04 = 0.0f;
|
||||
i_cameraData->m00 = param_2;
|
||||
fopCamM_Create(i_cameraIdx, PROC_CAMERA, i_cameraData);
|
||||
}
|
||||
|
||||
@@ -1499,7 +1499,7 @@ int dStage_playerInit(dStage_dt_c* i_stage, void* i_data, int num, void* i_file)
|
||||
int dStage_cameraInit(dStage_dt_c* i_stage, void* i_data, int i_num, void*) {
|
||||
stage_camera_class* camera = (stage_camera_class*)((char*)i_data + 4);
|
||||
i_stage->setCamera(camera);
|
||||
dStage_cameraCreate(camera->m_entries, 0, 0);
|
||||
dStage_cameraCreate(camera->mEntries, 0, 0);
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
||||
@@ -29,7 +29,7 @@ fapGm_HIO_c::fapGm_HIO_c() {
|
||||
|
||||
field_0x09 = 1;
|
||||
field_0x0a = 1;
|
||||
field_0x0c = 0.96f;
|
||||
mAspectRatio = 0.96f;
|
||||
field_0x10 = 0;
|
||||
field_0x11 = 0;
|
||||
field_0x12 = 8;
|
||||
|
||||
@@ -6,7 +6,6 @@
|
||||
#include "f_op/f_op_camera_mng.h"
|
||||
#include "f_pc/f_pc_layer.h"
|
||||
#include "f_pc/f_pc_stdcreate_req.h"
|
||||
#include "f_pc/f_pc_manager.h"
|
||||
|
||||
static fpc_ProcID l_fopCamM_id[4];
|
||||
|
||||
|
||||
Reference in New Issue
Block a user