mirror of
https://github.com/zeldaret/tp
synced 2026-07-07 14:13:27 -04:00
d_camera work (#2226)
This commit is contained in:
@@ -63,6 +63,9 @@ 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); }
|
||||
|
||||
@@ -111,16 +114,23 @@ public:
|
||||
void Val(const cXyz&);
|
||||
cXyz Xyz(void) 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 {
|
||||
public:
|
||||
float mRadius;
|
||||
cSAngle mAzimuth; // original: V
|
||||
cSAngle mInclination; // original: U
|
||||
cSAngle mInclination; // original: V
|
||||
cSAngle mAzimuth; // original: U
|
||||
|
||||
cSGlobe() {}
|
||||
|
||||
void R(f32 i_radius) { mRadius = i_radius; }
|
||||
void U(cSAngle const& i_azimuth) { mAzimuth = i_azimuth.Val(); }
|
||||
|
||||
cSGlobe(const cSGlobe&);
|
||||
cSGlobe(float, short, short);
|
||||
cSGlobe(float, const cSAngle&, const cSAngle&);
|
||||
@@ -132,8 +142,8 @@ public:
|
||||
void Val(float, const cSAngle&, const cSAngle&);
|
||||
void Val(const cXyz&);
|
||||
float R(void) const { return mRadius; }
|
||||
const cSAngle& V(void) const { return mAzimuth; }
|
||||
const cSAngle& U(void) const { return mInclination; }
|
||||
const cSAngle& V(void) const { return mInclination; }
|
||||
const cSAngle& U(void) const { return mAzimuth; }
|
||||
cXyz Xyz(void) const;
|
||||
void Polar(cSPolar*) const;
|
||||
cXyz Norm(void) const;
|
||||
|
||||
@@ -9,13 +9,20 @@ class cBgS_LinChk : public cBgS_Chk, public cBgS_PolyInfo {
|
||||
public:
|
||||
/* 0x024 */ cM3dGLin mLin;
|
||||
/* 0x040 */ cXyz field_0x40;
|
||||
/* 0x04C */ u32 field_0x4c;
|
||||
/* 0x04C */ u32 mStts;
|
||||
/* 0x050 */ bool mPreWallChk;
|
||||
/* 0x051 */ bool mPreGroundChk;
|
||||
/* 0x052 */ bool mPreRoofChk;
|
||||
/* 0x053 */ bool mFrontFlag;
|
||||
/* 0x054 */ bool mBackFlag;
|
||||
|
||||
enum Status {
|
||||
STTS_HIT = 0x10,
|
||||
STTS_ROOF_OFF = 0x20000000,
|
||||
STTS_WALL_OFF = 0x40000000,
|
||||
STTS_GROUND_OFF = 0x80000000,
|
||||
};
|
||||
|
||||
public:
|
||||
cBgS_LinChk();
|
||||
void ct();
|
||||
@@ -25,9 +32,9 @@ public:
|
||||
|
||||
virtual ~cBgS_LinChk();
|
||||
|
||||
void ClrHit() { field_0x4c &= ~16; }
|
||||
void SetHit() { field_0x4c |= 16; }
|
||||
u32 ChkHit() const { return field_0x4c & 16; }
|
||||
void ClrHit() { mStts &= ~STTS_HIT; }
|
||||
void SetHit() { mStts |= STTS_HIT; }
|
||||
u32 ChkHit() const { return mStts & STTS_HIT; }
|
||||
void SetCross(const cXyz& pos) { mLin.SetEnd(pos); }
|
||||
cXyz& i_GetCross() { return mLin.GetEnd(); }
|
||||
cXyz* GetCrossP() { return &mLin.GetEndP(); }
|
||||
@@ -40,8 +47,12 @@ public:
|
||||
bool GetPreGroundChk() const { return mPreGroundChk; }
|
||||
bool GetPreRoofChk() const { return mPreRoofChk; }
|
||||
cXyz* GetStartP() { return &mLin.GetStartP(); }
|
||||
void ClrSttsRoofOff() { field_0x4c &= ~0x20000000; }
|
||||
void ClrSttsWallOff() { field_0x4c &= ~0x40000000; }
|
||||
void ClrSttsRoofOff() { mStts &= ~STTS_ROOF_OFF; }
|
||||
void SetSttsRoofOff() { mStts |= STTS_ROOF_OFF; }
|
||||
void ClrSttsWallOff() { mStts &= ~STTS_WALL_OFF; }
|
||||
void SetSttsWallOff() { mStts |= STTS_WALL_OFF; }
|
||||
void ClrSttsGroundOff() { mStts &= ~STTS_GROUND_OFF; }
|
||||
void SetSttsGroundOff() { mStts |= STTS_GROUND_OFF; }
|
||||
};
|
||||
|
||||
#endif /* C_BG_S_LIN_CHK_H */
|
||||
|
||||
@@ -3082,7 +3082,7 @@ public:
|
||||
virtual BOOL checkHorseRideNotReady() const;
|
||||
virtual bool checkArrowChargeEnd() const;
|
||||
virtual f32 getSearchBallScale() const;
|
||||
virtual s16 checkFastShotTime();
|
||||
virtual int checkFastShotTime();
|
||||
virtual bool checkNoEquipItem() const;
|
||||
virtual bool checkKandelaarSwing(int) const;
|
||||
virtual s16 getBoardCutTurnOffsetAngleY() const;
|
||||
@@ -3334,6 +3334,12 @@ public:
|
||||
bool checkHorseGetOffMode() const { return mProcID == PROC_HORSE_GETOFF; }
|
||||
bool checkHorseRideOn() const { return mProcID == PROC_HORSE_RIDE; }
|
||||
bool checkGrabUp() const { return mProcID == PROC_GRAB_UP; }
|
||||
bool checkSpinnerRideWait() const {
|
||||
return mProcID == PROC_SPINNER_WAIT && mProcVar2.field_0x300c == 0;
|
||||
}
|
||||
|
||||
fopAc_ac_c* getCopyRodActor() { return mCopyRodAcKeep.getActor(); }
|
||||
fopAc_ac_c* getHookshotRoofWaitActor() { return mCargoCarryAcKeep.getActor(); }
|
||||
|
||||
BOOL checkRideOn() const { return mRideStatus != 0; }
|
||||
|
||||
|
||||
@@ -29,7 +29,7 @@ public:
|
||||
|
||||
enum daMidna_FLG0 {
|
||||
FLG0_UNK_80000000 = 0x80000000,
|
||||
FLG0_UNK_8000000 = 0x8000000,
|
||||
FLG0_PORTAL_OBJ_CALL = 0x8000000,
|
||||
FLG0_NPC_NEAR = 0x100000,
|
||||
FLG0_NPC_FAR = 0x40000,
|
||||
FLG0_UNK_20000 = 0x20000,
|
||||
@@ -112,6 +112,7 @@ public:
|
||||
bool checkDemoTypeNone() const { return mDemoType == 0; }
|
||||
void changeOriginalDemo() { mDemoType = 3; }
|
||||
void changeDemoMode(u32 mode) { mDemoMode = mode; }
|
||||
BOOL checkPortalObjCall() { return checkStateFlg0(FLG0_PORTAL_OBJ_CALL); }
|
||||
BOOL checkNpcNear() { return checkStateFlg0(FLG0_NPC_NEAR); }
|
||||
BOOL checkNpcFar() { return checkStateFlg0(FLG0_NPC_FAR); }
|
||||
BOOL checkNoDraw() const { return checkStateFlg0(FLG0_NO_DRAW); }
|
||||
@@ -137,7 +138,7 @@ public:
|
||||
}
|
||||
|
||||
void offTagWaitPos() {
|
||||
offStateFlg0((daMidna_FLG0)(FLG0_UNK_80000000 | FLG0_UNK_8000000 | FLG0_UNK_400));
|
||||
offStateFlg0((daMidna_FLG0)(FLG0_UNK_80000000 | FLG0_PORTAL_OBJ_CALL | FLG0_UNK_400));
|
||||
}
|
||||
|
||||
void onTagNoHairLead() {
|
||||
@@ -176,7 +177,7 @@ public:
|
||||
|
||||
|
||||
bool checkPortalObjRide() const {
|
||||
return checkStateFlg0(FLG0_UNK_8000000) && checkStateFlg0(FLG0_UNK_200);
|
||||
return checkStateFlg0(FLG0_PORTAL_OBJ_CALL) && checkStateFlg0(FLG0_UNK_200);
|
||||
}
|
||||
|
||||
inline static BOOL checkMidnaRealBody();
|
||||
@@ -191,6 +192,11 @@ public:
|
||||
|
||||
void resetRatBody() {}
|
||||
|
||||
bool checkFlyWaitAnime() {
|
||||
return field_0x5e4[0].getIdx() == 0x1CB || field_0x5e4[0].getIdx() == 0x1C7
|
||||
|| field_0x5e4[0].getIdx() == 0x1C8 || field_0x5e4[0].getIdx() == 0x1C9;
|
||||
}
|
||||
|
||||
static u8 const m_texDataTable[84];
|
||||
static u8 const m_anmDataTable[636];
|
||||
|
||||
|
||||
@@ -325,6 +325,8 @@ public:
|
||||
FLG3_UNK_80000000 = 0x80000000,
|
||||
FLG3_UNK_40000000 = 0x40000000,
|
||||
FLG3_UNK_20000000 = 0x20000000,
|
||||
FLG3_COPY_ROD_ATN_KEEP = 0x10000000,
|
||||
FLG3_BOOMERANG_ATN_KEEP = 0x8000000,
|
||||
FLG3_UNK_4000000 = 0x4000000,
|
||||
FLG3_UNK_2000000 = 0x2000000,
|
||||
FLG3_UNK_1000000 = 0x1000000,
|
||||
@@ -445,6 +447,7 @@ public:
|
||||
RFLG0_GRAB_UP_END = 0x20,
|
||||
RFLG0_UNK_10 = 0x10,
|
||||
RFLG0_UNK_8 = 0x8,
|
||||
RFLG0_GRAB_THROW = 0x4,
|
||||
RFLG0_UNK_2 = 0x2,
|
||||
RFLG0_UNK_1 = 0x1,
|
||||
};
|
||||
@@ -595,8 +598,8 @@ public:
|
||||
virtual MtxP getBottleMtx();
|
||||
virtual BOOL checkPlayerGuard() const;
|
||||
virtual u32 checkPlayerFly() const { return 0; }
|
||||
virtual BOOL checkFrontRoll() const; // weak
|
||||
virtual BOOL checkWolfDash() const; // weak
|
||||
virtual BOOL checkFrontRoll() const { return FALSE; }
|
||||
virtual BOOL checkWolfDash() const { return FALSE; }
|
||||
virtual BOOL checkAutoJump() const;
|
||||
virtual bool checkSideStep() const;
|
||||
virtual bool checkWolfTriggerJump() const;
|
||||
@@ -640,7 +643,7 @@ public:
|
||||
virtual bool cancelWolfLock(fopAc_ac_c*);
|
||||
virtual s32 getAtnActorID() const { return -1; }
|
||||
virtual s32 getItemID() const;
|
||||
virtual s32 getGrabActorID() const; // weak
|
||||
virtual s32 getGrabActorID() const { return -1; }
|
||||
virtual BOOL exchangeGrabActor(fopAc_ac_c*);
|
||||
virtual BOOL setForceGrab(fopAc_ac_c*, int, int);
|
||||
virtual void setForcePutPos(cXyz const&);
|
||||
@@ -652,7 +655,7 @@ public:
|
||||
virtual void setOutPower(f32, short, int);
|
||||
virtual void setGrabCollisionOffset(f32, f32, cBgS_PolyInfo*);
|
||||
virtual void onMagneGrab(f32, f32);
|
||||
virtual void onFrollCrashFlg(u8, int); // weak
|
||||
virtual void onFrollCrashFlg(u8, int) {}
|
||||
virtual MtxP getModelJointMtx(u16);
|
||||
virtual MtxP getHeadMtx();
|
||||
virtual bool setHookshotCarryOffset(fpc_ProcID, cXyz const*);
|
||||
@@ -684,7 +687,7 @@ public:
|
||||
virtual BOOL checkHorseRideNotReady() const;
|
||||
virtual bool checkArrowChargeEnd() const;
|
||||
virtual f32 getSearchBallScale() const;
|
||||
virtual s16 checkFastShotTime();
|
||||
virtual int checkFastShotTime();
|
||||
virtual bool checkNoEquipItem() const;
|
||||
virtual bool checkFireMaterial() const;
|
||||
virtual bool checkKandelaarSwing(int) const;
|
||||
@@ -788,6 +791,7 @@ public:
|
||||
BOOL checkHorseZelda() const { return checkNoResetFlg2(FLG2_HORSE_ZELDA); }
|
||||
BOOL checkSpecialHorseRide() { return checkNoResetFlg2(daPy_FLG2(FLG2_HORSE_ZELDA | FLG2_UNK_1000000 | FLG2_UNK_800000)); }
|
||||
BOOL checkBoardNoFootAngle() const { return checkResetFlg1(RFLG1_UNK_40); }
|
||||
bool checkGrabThrow() const { return checkResetFlg0(RFLG0_GRAB_THROW); }
|
||||
|
||||
void onBossRoomWait() { onEndResetFlg0(ERFLG0_BOSS_ROOM_WAIT); }
|
||||
void onBeeFollow() { onEndResetFlg0(ERFLG0_BEE_FOLLOW); }
|
||||
@@ -875,6 +879,8 @@ public:
|
||||
BOOL checkWolfGrowl() const { return checkResetFlg0(RFLG0_WOLF_GROWL); }
|
||||
BOOL checkWolfThreat() const { return checkWolfGrowl(); }
|
||||
BOOL checkWolfBark() const { return checkResetFlg0(RFLG0_WOLF_BARK); }
|
||||
u32 checkBoomerangAtnKeep() const { return checkNoResetFlg3(FLG3_BOOMERANG_ATN_KEEP); }
|
||||
u32 checkCopyRodAtnKeep() const { return checkNoResetFlg3(FLG3_COPY_ROD_ATN_KEEP); }
|
||||
|
||||
void onPlayerNoDraw() { onNoResetFlg0(FLG0_PLAYER_NO_DRAW); }
|
||||
void offPlayerNoDraw() { offNoResetFlg0(FLG0_PLAYER_NO_DRAW); }
|
||||
|
||||
@@ -216,6 +216,8 @@ public:
|
||||
void clrFlag(u32 flag) { mFlags &= ~flag; }
|
||||
int GetActionCount() { return mActionCount; }
|
||||
int GetLockonCount() { return mLockonCount; }
|
||||
void LockSoundOn() { clrFlag(0x400000); }
|
||||
void LockSoundOff() { setFlag(0x400000); }
|
||||
bool Lockon() { return LockonTruth() || chkFlag(0x20000000); } // only matches with -O2?
|
||||
int ZHintRequest(fopAc_ac_c* param_1, int param_2) {
|
||||
return mZHintTarget.request(param_1, param_2);
|
||||
|
||||
@@ -17,12 +17,13 @@ public:
|
||||
|
||||
void OnWaterGrp() { mGrp |= WATER_GRP; }
|
||||
void OnSpl() { mGrp |= WATER_GRP; }
|
||||
void OffWaterGrp() { mGrp &= ~WATER_GRP; }
|
||||
void OnNormalGrp() { mGrp |= NORMAL_GRP; }
|
||||
void OffNormalGrp() { mGrp &= ~NORMAL_GRP; }
|
||||
void OffFullGrp() { mGrp &= ~FULL_GRP; }
|
||||
void OnAll() { mGrp |= FULL_GRP; }
|
||||
u32 MaskNormalGrp() const {return mGrp & 1; }
|
||||
u32 MaskWaterGrp() const {return mGrp & 2; }
|
||||
u32 MaskNormalGrp() const {return mGrp & NORMAL_GRP; }
|
||||
u32 MaskWaterGrp() const {return mGrp & WATER_GRP; }
|
||||
private:
|
||||
/* 0x4 */ u32 mGrp;
|
||||
};
|
||||
|
||||
@@ -15,7 +15,15 @@ public:
|
||||
/* 80078A14 */ dBgS_SphChk();
|
||||
/* 80078AC0 */ virtual ~dBgS_SphChk();
|
||||
|
||||
void SetCallback(SphChk_Callback i_callback) { mCallback = i_callback; }
|
||||
|
||||
/* 0x50 */ SphChk_Callback mCallback;
|
||||
};
|
||||
|
||||
class dBgS_CamSphChk : public dBgS_SphChk {
|
||||
public:
|
||||
dBgS_CamSphChk() { SetCam(); }
|
||||
/* 80165E74 */ virtual ~dBgS_CamSphChk() {}
|
||||
};
|
||||
|
||||
#endif /* D_BG_D_BG_S_SPH_CHK_H */
|
||||
|
||||
+13
-2
@@ -31,6 +31,12 @@ public:
|
||||
/* 80088464 */ dCamBGChk_c();
|
||||
|
||||
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; }
|
||||
|
||||
// name is a guess for now
|
||||
struct ChkInfo {
|
||||
@@ -79,7 +85,7 @@ public:
|
||||
/* 80182C74 */ void Arg0(u8);
|
||||
/* 80182C7C */ void Fovy(u8);
|
||||
/* 80182C58 */ void Fovy();
|
||||
/* 80182CB4 */ void CheckFlag(u16);
|
||||
/* 80182CB4 */ bool CheckFlag(u16 flag) { return mCurrentStyle->field_0x6 & flag; }
|
||||
/* 80182CD0 */ void Val(s32, int);
|
||||
|
||||
/* 0x00 */ u8 mMapToolFovy;
|
||||
@@ -108,7 +114,7 @@ public:
|
||||
/* 80182BB8 */ void CheckFlag2(u16);
|
||||
/* 80182BE8 */ void WaitRollSpeed();
|
||||
/* 80182BF0 */ void WaitRollTimer();
|
||||
/* 80182C1C */ void ThrowTimer();
|
||||
/* 80182C1C */ // void ThrowTimer();
|
||||
/* 80182C24 */ void ThrowCushion();
|
||||
/* 80182C2C */ void ThrowVAngle();
|
||||
/* 80182C34 */ void ThrowCtrAdjust();
|
||||
@@ -120,6 +126,11 @@ public:
|
||||
f32 ManualEndVal() { return mManualEndVal; }
|
||||
f32 CinemaScopeTrimHeight() { return mTrimCineScopeHeight; }
|
||||
f32 VistaTrimHeight() { return mTrimVistaHeight; }
|
||||
f32 ForceLockOffTimer() { return mForceLockOffTimer; }
|
||||
f32 ForceLockOffDist() { return mForceLockOffDist; }
|
||||
int ThrowTimer() { return mThrowTimer; }
|
||||
f32 USOValue() { return mFalseValue; }
|
||||
f32 USOAngle() { return mFalseAngle; }
|
||||
|
||||
/* 0x000 */ f32 mDrawNear;
|
||||
/* 0x004 */ f32 mDrawFar;
|
||||
|
||||
+89
-42
@@ -1,6 +1,7 @@
|
||||
#ifndef D_D_CAMERA_H
|
||||
#define D_D_CAMERA_H
|
||||
|
||||
#include "d/d_attention.h"
|
||||
#include "d/d_bg_s_lin_chk.h"
|
||||
#include "d/d_bg_s_gnd_chk.h"
|
||||
#include "d/d_cam_param.h"
|
||||
@@ -9,12 +10,25 @@
|
||||
#include "dolphin/types.h"
|
||||
|
||||
class fopAc_ac_c;
|
||||
dAttention_c& dComIfGp_getAttention();
|
||||
|
||||
struct dCamMapToolData {
|
||||
dCamMapToolData() { Clr(); }
|
||||
|
||||
/* 8015FEB8 */ int Set(s32, s32, fopAc_ac_c*, u16, u8);
|
||||
|
||||
dCamMapToolData& operator=(dCamMapToolData const& other) {
|
||||
__memcpy(&field_0x0, &other.field_0x0, sizeof(stage_camera2_data_class));
|
||||
__memcpy(&field_0x18, &other.field_0x18, sizeof(stage_arrow_data_class));
|
||||
field_0x2c = other.field_0x2c;
|
||||
field_0x30 = other.field_0x30;
|
||||
field_0x34 = other.field_0x34;
|
||||
field_0x38 = other.field_0x38;
|
||||
field_0x3a = other.field_0x3a;
|
||||
field_0x3b = other.field_0x3b;
|
||||
return *this;
|
||||
}
|
||||
|
||||
void Clr() {
|
||||
field_0x2c = 0xFF;
|
||||
field_0x30 = 0xFF;
|
||||
@@ -119,6 +133,29 @@ struct dCamera_type_data {
|
||||
/* 0x18 */ s16 field_0x18[2][11];
|
||||
}; // Size: 0x44
|
||||
|
||||
struct camSphChkdata {
|
||||
camSphChkdata(cXyz* i_center, cXyz* param_1, f32 i_radius) {
|
||||
field_0x0 = i_center;
|
||||
field_0x8 = param_1;
|
||||
field_0xc = *i_center;
|
||||
field_0x4 = i_radius;
|
||||
field_0x1c = false;
|
||||
field_0x18 = i_radius;
|
||||
}
|
||||
|
||||
void Base(cXyz* param_0) {
|
||||
field_0x0 = param_0;
|
||||
field_0xc = *param_0;
|
||||
}
|
||||
|
||||
/* 0x00 */ cXyz* field_0x0;
|
||||
/* 0x04 */ f32 field_0x4;
|
||||
/* 0x08 */ cXyz* field_0x8;
|
||||
/* 0x0C */ cXyz field_0xc;
|
||||
/* 0x18 */ f32 field_0x18;
|
||||
/* 0x1C */ bool field_0x1c;
|
||||
};
|
||||
|
||||
class camera_class;
|
||||
|
||||
class dCamera_c;
|
||||
@@ -143,7 +180,7 @@ public:
|
||||
/* 0x0C */ f32 mPosXDelta;
|
||||
/* 0x10 */ f32 mPosYDelta;
|
||||
/* 0x14 */ f32 mValueDelta;
|
||||
/* 0x18 */ cSAngle field_0x18;
|
||||
/* 0x18 */ cSAngle mAngle;
|
||||
};
|
||||
|
||||
/* 0x00 */ _stick mMainStick;
|
||||
@@ -179,7 +216,7 @@ public:
|
||||
/* 0x38 */ f32 field_0x38;
|
||||
/* 0x3C */ int field_0x3c;
|
||||
/* 0x40 */ int field_0x40;
|
||||
/* 0x44 */ int field_0x44;
|
||||
/* 0x44 */ u8 field_0x44;
|
||||
} /* 0x0C0 */ field_0xc0;
|
||||
class {
|
||||
public:
|
||||
@@ -264,10 +301,10 @@ public:
|
||||
/* 801617B0 */ void updatePad();
|
||||
/* 80161D84 */ void initMonitor();
|
||||
/* 80161E34 */ void updateMonitor();
|
||||
/* 80162088 */ void checkForceLockTarget();
|
||||
/* 80162088 */ bool checkForceLockTarget();
|
||||
/* 801622B0 */ void infoReport();
|
||||
/* 801622B4 */ void Run();
|
||||
/* 80162D38 */ void NotRun();
|
||||
/* 801622B4 */ bool Run();
|
||||
/* 80162D38 */ bool NotRun();
|
||||
/* 80162FB8 */ s16 V();
|
||||
/* 80162FD4 */ s16 U();
|
||||
/* 8016300C */ bool SetTrimSize(s32);
|
||||
@@ -277,13 +314,13 @@ public:
|
||||
/* 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);
|
||||
/* 801635AC */ inline void setRoomMapToolData(dCamMapToolData*, s32, s32);
|
||||
/* 801635E4 */ s32 nextMode(s32);
|
||||
/* 80163C38 */ bool onModeChange(s32, s32);
|
||||
/* 80163D50 */ int ModeFix(s32);
|
||||
/* 80163D5C */ void nextType(s32);
|
||||
/* 8016444C */ void onTypeChange(s32, s32);
|
||||
/* 8016469C */ int onStyleChange(s32, s32);
|
||||
/* 80163D5C */ s32 nextType(s32);
|
||||
/* 8016444C */ bool onTypeChange(s32, s32);
|
||||
/* 8016469C */ bool onStyleChange(s32, s32);
|
||||
/* 801647B0 */ int onRoomChange(s32);
|
||||
/* 80164878 */ fopAc_ac_c* getParamTargetActor(s32);
|
||||
/* 80164944 */ int GetCameraTypeFromMapToolID(s32, s32);
|
||||
@@ -292,27 +329,27 @@ public:
|
||||
/* 80164C64 */ void pushInfo(dCamera_c::dCamInfo_c*, s16);
|
||||
/* 80164CAC */ void popInfo(dCamera_c::dCamInfo_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*);
|
||||
/* 80164E20 */ cXyz relationalPos(fopAc_ac_c*, fopAc_ac_c*, cXyz*, f32);
|
||||
/* 80164D6C */ cXyz relationalPos(fopAc_ac_c*, cXyz*);
|
||||
/* 80165104 */ void setUSOAngle();
|
||||
/* 80165158 */ cSAngle getUSOAngle(cSAngle);
|
||||
/* 8016517C */ void pointInSight(cXyz*);
|
||||
/* 8016517C */ bool 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);
|
||||
/* 80165238 */ f32 radiusActorInSight(fopAc_ac_c*, fopAc_ac_c*, cXyz*, cXyz*, f32, s16, f32);
|
||||
/* 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);
|
||||
/* 80165B60 */ void lineCollisionCheckBush(cXyz*, cXyz*);
|
||||
/* 80165CE0 */ void compWallMargin(cXyz*, cXyz*, f32);
|
||||
/* 80165EF4 */ void defaultTriming();
|
||||
/* 801658C0 */ bool lineBGCheck(cXyz*, cXyz*, dBgS_LinChk*, u32);
|
||||
/* 80165AF0 */ bool lineBGCheck(cXyz*, cXyz*, u32);
|
||||
/* 801659F4 */ bool lineBGCheck(cXyz*, cXyz*, cXyz*, u32);
|
||||
/* 80165B60 */ u32 lineCollisionCheckBush(cXyz*, cXyz*);
|
||||
/* 80165CE0 */ cXyz compWallMargin(cXyz*, cXyz*, f32);
|
||||
/* 80165EF4 */ int defaultTriming();
|
||||
/* 80165FB4 */ void setView(f32, f32, f32, f32);
|
||||
/* 8016608C */ void forwardCheckAngle();
|
||||
/* 8016608C */ cSAngle forwardCheckAngle();
|
||||
/* 80166764 */ void bumpCheck(u32);
|
||||
/* 80167BF8 */ void lineBGCheckBoth(cXyz*, cXyz*, dBgS_LinChk*, u32);
|
||||
/* 80167CD8 */ void jutOutCheck(cXyz*, f32);
|
||||
/* 80167E3C */ void tooNearEscape(cXyz*);
|
||||
/* 80167EF4 */ void getWaterSurfaceHeight(cXyz*);
|
||||
/* 80167EF4 */ f32 getWaterSurfaceHeight(cXyz*);
|
||||
/* 80167FEC */ void checkGroundInfo();
|
||||
/* 80168744 */ bool chaseCamera(s32);
|
||||
/* 8016C384 */ bool lockonCamera(s32);
|
||||
@@ -374,7 +411,7 @@ public:
|
||||
bool Active() { return field_0x24 == 0; }
|
||||
f32 TrimHeight() { return mTrimHeight; }
|
||||
int Type() { return mCurType; }
|
||||
int Mode() { return mNextMode; }
|
||||
int Mode() { return mCurMode; }
|
||||
f32 Fovy() { return mFovY + mShake.field_0x3c; }
|
||||
bool isModeOK() { return field_0x158.field_0x0; }
|
||||
bool push_any_key() { return field_0x224; }
|
||||
@@ -395,6 +432,12 @@ public:
|
||||
mEventData.field_0x24 = i_flag;
|
||||
}
|
||||
|
||||
void Att() {
|
||||
dAttention_c& attn = dComIfGp_getAttention();
|
||||
mpLockonTarget = attn.LockonTruth() ? attn.LockonTarget(0) : NULL;
|
||||
attn.LockSoundOn();
|
||||
}
|
||||
|
||||
static engine_fn engine_tbl[];
|
||||
|
||||
/* 0x000 */ camera_class* field_0x0;
|
||||
@@ -431,7 +474,7 @@ public:
|
||||
class {
|
||||
public:
|
||||
/* 0x00 */ int field_0x0;
|
||||
/* 0x04 */ u16 field_0x4;
|
||||
/* 0x04 */ s16 field_0x4;
|
||||
/* 0x08 */ dCamInfo_c field_0x8;
|
||||
/* 0x28 */ cXyz field_0x28;
|
||||
}
|
||||
@@ -450,21 +493,24 @@ public:
|
||||
}
|
||||
/* 0x158 */ field_0x158;
|
||||
/* 0x160 */ int field_0x160;
|
||||
/* 0x164 */ u8 field_0x164[0x170 - 0x164];
|
||||
/* 0x164 */ int field_0x164;
|
||||
/* 0x168 */ u8 field_0x168;
|
||||
/* 0x169 */ int field_0x16c;
|
||||
/* 0x170 */ int field_0x170;
|
||||
/* 0x174 */ u32 mCurCamTypeTimer;
|
||||
/* 0x178 */ u32 mCameraID;
|
||||
/* 0x17C */ u32 mPadID;
|
||||
/* 0x180 */ fopAc_ac_c* mpPlayerActor;
|
||||
/* 0x184 */ fopAc_ac_c* mpLockonTarget;
|
||||
/* 0x188 */ u8 field_0x188[0x190 - 0x188];
|
||||
/* 0x188 */ u32 field_0x188;
|
||||
/* 0x18C */ u32 field_0x18c;
|
||||
/* 0x190 */ int field_0x190;
|
||||
/* 0x194 */ u8 field_0x194;
|
||||
/* 0x198 */ u32 field_0x198;
|
||||
/* 0x19C */ u32 field_0x19c;
|
||||
/* 0x1A0 */ int mCurMode;
|
||||
/* 0x1A4 */ int mNextMode;
|
||||
/* 0x1A8 */ int field_0x1a8;
|
||||
/* 0x194 */ bool field_0x194;
|
||||
/* 0x198 */ u32 mLockOnActorID;
|
||||
/* 0x19C */ fopAc_ac_c* mpLockOnActor;
|
||||
/* 0x1A0 */ int mForceLockTimer;
|
||||
/* 0x1A4 */ int mCurMode;
|
||||
/* 0x1A8 */ int mNextMode;
|
||||
/* 0x1AC */ int field_0x1ac;
|
||||
/* 0x1B0 */ cSAngle field_0x1b0;
|
||||
/* 0x1B4 */ f32 field_0x1b4;
|
||||
@@ -485,16 +531,16 @@ public:
|
||||
/* 0x215 */ u8 field_0x215;
|
||||
/* 0x216 */ u8 field_0x216;
|
||||
/* 0x217 */ u8 field_0x217;
|
||||
/* 0x218 */ u8 mHoldX;
|
||||
/* 0x219 */ u8 mTrigX;
|
||||
/* 0x21A */ u8 mHoldY;
|
||||
/* 0x21B */ u8 mTrigY;
|
||||
/* 0x218 */ bool mHoldX;
|
||||
/* 0x219 */ bool mTrigX;
|
||||
/* 0x21A */ bool mHoldY;
|
||||
/* 0x21B */ bool mTrigY;
|
||||
/* 0x21C */ bool mHoldZ;
|
||||
/* 0x21D */ u8 mTrigZ;
|
||||
/* 0x21D */ bool mTrigZ;
|
||||
/* 0x21E */ u8 field_0x21e;
|
||||
/* 0x21F */ u8 field_0x21f;
|
||||
/* 0x220 */ u8 mHoldB;
|
||||
/* 0x221 */ u8 mTrigB;
|
||||
/* 0x220 */ bool mHoldB;
|
||||
/* 0x221 */ bool mTrigB;
|
||||
/* 0x222 */ u8 field_0x222;
|
||||
/* 0x223 */ u8 field_0x223;
|
||||
/* 0x224 */ u8 field_0x224;
|
||||
@@ -580,13 +626,14 @@ public:
|
||||
/* 0x920 */ f32 mTrimHeight;
|
||||
/* 0x924 */ int mTrimSize;
|
||||
/* 0x928 */ int mTrimTypeForce;
|
||||
/* 0x92C */ u8 field_0x92c[0x934 - 0x92c];
|
||||
/* 0x92C */ f32 field_0x92c;
|
||||
/* 0x930 */ u8 field_0x930[0x930 - 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;
|
||||
/* 0x948 */ int mThrowTimer;
|
||||
/* 0x94C */ cSAngle field_0x94c;
|
||||
/* 0x950 */ int field_0x950;
|
||||
/* 0x954 */ u8 field_0x954[0x958 - 0x954];
|
||||
|
||||
@@ -73,7 +73,7 @@ public:
|
||||
/* 80085CF0 */ void Clear();
|
||||
/* 80085D98 */ void Set(cCcD_Obj* p_obj, u8 priority);
|
||||
/* 80085E6C */ void SetCam(cM3dGCps const& cps);
|
||||
/* 80085EB0 */ u8 GetResultCam() const;
|
||||
/* 80085EB0 */ u32 GetResultCam() const;
|
||||
/* 80085EB8 */ void GetCamTopPos(Vec* p_out);
|
||||
};
|
||||
|
||||
|
||||
@@ -45,6 +45,8 @@ public:
|
||||
/* 80086754 */ virtual void CalcParticleAngle(dCcD_GObjInf*, cCcD_Stts*, cCcD_Stts*, csXyz*);
|
||||
|
||||
void SetMass(cCcD_Obj* i_obj, u8 i_priority) { mMass_Mng.Set(i_obj, i_priority); }
|
||||
void SetMassCam(cM3dGCps& i_cps) { mMass_Mng.SetCam(i_cps); }
|
||||
u32 GetMassResultCam() { return mMass_Mng.GetResultCam(); }
|
||||
void PrepareMass() { mMass_Mng.Prepare(); }
|
||||
|
||||
static bool m_mtrl_hit_tbl[64];
|
||||
|
||||
@@ -1,10 +1,11 @@
|
||||
#ifndef D_COM_D_COM_INF_ACTOR_H
|
||||
#define D_COM_D_COM_INF_ACTOR_H
|
||||
|
||||
class fopAc_ac_c;
|
||||
|
||||
class dComIfGoat_info_c {
|
||||
public:
|
||||
/* 0x0 */ int field_0x0;
|
||||
/* 0x0 */ fopAc_ac_c* field_0x0;
|
||||
};
|
||||
|
||||
class dComIfAc_info_c {
|
||||
@@ -20,4 +21,8 @@ inline bool dComIfA_PauseCheck() {
|
||||
return g_dComIfAc_gameInfo.mPause;
|
||||
}
|
||||
|
||||
inline fopAc_ac_c* dComIfGoat_GetThrow() {
|
||||
return g_dComIfGoat_gameInfo.field_0x0;
|
||||
}
|
||||
|
||||
#endif /* D_COM_D_COM_INF_ACTOR_H */
|
||||
|
||||
@@ -2622,6 +2622,14 @@ inline int dComIfGp_getStagePlightNumInfo() {
|
||||
return g_dComIfG_gameInfo.play.getStage().getPlightNumInfo();
|
||||
}
|
||||
|
||||
inline s16 dComIfGp_getStageWorldRollAngleX() {
|
||||
return g_dComIfG_gameInfo.play.getStage().getWorldRollAngleX();
|
||||
}
|
||||
|
||||
inline s16 dComIfGp_getStageWorldRollDirAngleY() {
|
||||
return g_dComIfG_gameInfo.play.getStage().getWorldRollDirAngleY();
|
||||
}
|
||||
|
||||
inline u8 dComIfGp_isHeapLockFlag() {
|
||||
return g_dComIfG_gameInfo.play.isHeapLockFlag();
|
||||
}
|
||||
|
||||
@@ -249,6 +249,7 @@ public:
|
||||
s8 getCameraID() { return mCameraID; }
|
||||
void setMode(int mode) { mMode = mode; }
|
||||
view_port_class* getViewPort() { return &mViewport; }
|
||||
scissor_class* getScissor() { return &mViewport.mScissor; }
|
||||
|
||||
private:
|
||||
/* 0x00 */ view_port_class mViewport;
|
||||
|
||||
@@ -603,6 +603,6 @@ void dKy_ParticleColor_get_bg(cXyz* param_0, dKy_tevstr_c* param_1, _GXColor* pa
|
||||
_GXColor dKy_light_influence_col(_GXColor* param_0, f32 param_1);
|
||||
static void dKy_WaterIn_Light_set();
|
||||
void dKy_SordFlush_set(cXyz param_0, int param_1);
|
||||
|
||||
void dKy_camera_water_in_status_set(u8 status);
|
||||
|
||||
#endif /* D_KANKYO_D_KANKYO_H */
|
||||
|
||||
+7
-4
@@ -76,7 +76,7 @@ struct stage_scls_info_class {
|
||||
/* 0x9 */ s8 mRoom;
|
||||
/* 0xA */ u8 field_0xa;
|
||||
/* 0xB */ u8 field_0xb;
|
||||
/* 0xC */ s8 mWipe;
|
||||
/* 0xC */ u8 mWipe;
|
||||
|
||||
char* getStage() { return mStage; }
|
||||
|
||||
@@ -567,6 +567,9 @@ public:
|
||||
|
||||
void setTreasure(stage_tresure_class*);
|
||||
|
||||
s16 getWorldRollAngleX() { return mWorldRollAngleX; }
|
||||
s16 getWorldRollDirAngleY() { return mWorldRollDirAngleY; }
|
||||
|
||||
public:
|
||||
/* 0x08 */ stage_camera_class* mCamera;
|
||||
/* 0x0C */ stage_arrow_class* mArrow;
|
||||
@@ -588,8 +591,8 @@ public:
|
||||
/* 0x4C */ int mVrboxcolNumInfo;
|
||||
/* 0x50 */ u32 mPlightNumInfo;
|
||||
/* 0x54 */ u16 mPlayerNum;
|
||||
/* 0x56 */ u16 field_0x56;
|
||||
/* 0x58 */ u16 field_0x58;
|
||||
/* 0x56 */ s16 mWorldRollAngleX;
|
||||
/* 0x58 */ s16 mWorldRollDirAngleY;
|
||||
/* 0x5A */ u16 field_0x5a;
|
||||
/* 0x5C */ stage_stag_info_class* mStagInfo;
|
||||
/* 0x60 */ stage_scls_info_dummy_class* mSclsInfo;
|
||||
@@ -1109,7 +1112,7 @@ inline u8 dStage_stagInfo_DefaultCameraType(stage_stag_info_class* pstag) {
|
||||
return pstag->mCameraType;
|
||||
}
|
||||
|
||||
inline u32 dStage_sclsInfo_getSceneLayer(stage_scls_info_class* p_info) {
|
||||
inline u8 dStage_sclsInfo_getSceneLayer(stage_scls_info_class* p_info) {
|
||||
return p_info->field_0xb & 0xF;
|
||||
}
|
||||
|
||||
|
||||
@@ -14,4 +14,6 @@ static s32 fopCam_Draw(camera_class* param_1);
|
||||
static int fopCam_Execute(camera_class* pCamera);
|
||||
int fopCam_IsDelete(camera_class* pCamera);
|
||||
|
||||
extern leafdraw_method_class g_fopCam_Method;
|
||||
|
||||
#endif
|
||||
|
||||
@@ -56,4 +56,6 @@ struct view_class : public leafdraw_class {
|
||||
/* 0x1E0 */ Mtx mViewMtxNoTrans;
|
||||
};
|
||||
|
||||
#endif
|
||||
extern leafdraw_method_class g_fopVw_Method;
|
||||
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user