mirror of
https://github.com/zeldaret/tp
synced 2026-08-16 13:17:11 -04:00
d_debug_camera mostly done (#2695)
* d_debug_camera mostly done * update some alink demo stuff * some misc debug stuff
This commit is contained in:
@@ -3470,7 +3470,7 @@ public:
|
||||
}
|
||||
|
||||
s32 checkPlayerDemoMode() const { return mDemo.getDemoType(); }
|
||||
BOOL checkSpecialDemoMode() const { return mDemo.getDemoType() == 5; }
|
||||
BOOL checkSpecialDemoMode() const { return mDemo.getDemoType() == daPy_demo_c::DEMO_TYPE_SPECIAL_e; }
|
||||
static bool checkMidnaChargeAttack() { return dComIfGs_isEventBit(0x501); }
|
||||
u16 getMidnaMsgNum() const { return mMidnaMsgNum; }
|
||||
u32 getStartEvent() { return fopAcM_GetParam(this) >> 0x18; }
|
||||
@@ -4286,7 +4286,7 @@ public:
|
||||
/* 0x03178 */ int field_0x3178;
|
||||
/* 0x0317C */ int field_0x317c;
|
||||
/* 0x03180 */ int field_0x3180;
|
||||
/* 0x03184 */ int field_0x3184;
|
||||
/* 0x03184 */ int mAlinkStaffId;
|
||||
/* 0x03188 */ int field_0x3188;
|
||||
/* 0x0318C */ int field_0x318c;
|
||||
/* 0x03190 */ int field_0x3190;
|
||||
|
||||
@@ -243,15 +243,23 @@ public:
|
||||
DEMO_NEW_ANM0_e = 0x200,
|
||||
};
|
||||
|
||||
enum {
|
||||
DEMO_TYPE_TOOL_e = 1,
|
||||
DEMO_TYPE_SYSTEM_e,
|
||||
DEMO_TYPE_ORIGINAL_e,
|
||||
DEMO_TYPE_START_e,
|
||||
DEMO_TYPE_SPECIAL_e,
|
||||
};
|
||||
|
||||
void setDemoType(u16 pType) { mDemoType = pType; }
|
||||
int getDemoType() const { return mDemoType; }
|
||||
void setDemoMode(u32 mode) { mDemoMode = mode; }
|
||||
u32 getDemoMode() const { return mDemoMode; }
|
||||
int getParam1() const { return mParam1; }
|
||||
s16 getParam2() const { return mParam2; }
|
||||
void setOriginalDemoType() { setDemoType(3); }
|
||||
void setSpecialDemoType() { setDemoType(5); }
|
||||
void setSystemDemoType() { setDemoType(2); }
|
||||
void setOriginalDemoType() { setDemoType(DEMO_TYPE_ORIGINAL_e); }
|
||||
void setSpecialDemoType() { setDemoType(DEMO_TYPE_SPECIAL_e); }
|
||||
void setSystemDemoType() { setDemoType(DEMO_TYPE_SYSTEM_e); }
|
||||
void setStick(f32 stick) { mStick = stick; }
|
||||
void setMoveAngle(s16 angle) { mDemoMoveAngle = angle; }
|
||||
s16 getMoveAngle() const { return mDemoMoveAngle; }
|
||||
@@ -261,13 +269,13 @@ public:
|
||||
void setParam1(int value) { mParam1 = value; }
|
||||
void setParam2(int value) { mParam2 = value; }
|
||||
void setPos0(const cXyz* pos) { mDemoPos0 = *pos; }
|
||||
void setToolDemoType() { setDemoType(1); }
|
||||
void setToolDemoType() { setDemoType(DEMO_TYPE_TOOL_e); }
|
||||
s16 getTimer() const { return mTimer; }
|
||||
void decTimer() { mTimer--; }
|
||||
void setTimer(s16 i_timer) { mTimer = i_timer; }
|
||||
cXyz* getPos0() { return &mDemoPos0; }
|
||||
void resetDemoType() { setDemoType(0); }
|
||||
void setStartDemoType() { setDemoType(4); }
|
||||
void setStartDemoType() { setDemoType(DEMO_TYPE_START_e); }
|
||||
|
||||
private:
|
||||
/* 0x00 */ u16 mDemoType;
|
||||
|
||||
@@ -1085,6 +1085,20 @@ public:
|
||||
mWindowAspect = param_0 / param_1;
|
||||
}
|
||||
|
||||
f32 R() {
|
||||
if (chkFlag(0x10)) {
|
||||
return mUpOverride.field_0x24.R();
|
||||
} else {
|
||||
return mDirection.R();
|
||||
}
|
||||
}
|
||||
|
||||
cXyz iCenter() { return mViewCache.mCenter; }
|
||||
cXyz iEye() { return mViewCache.mEye; }
|
||||
s16 iU() { return mViewCache.mDirection.U().Inv(); }
|
||||
s16 iV() { return mViewCache.mDirection.V(); }
|
||||
f32 iR() { return mViewCache.mDirection.R(); }
|
||||
|
||||
s16 U2() {
|
||||
if (chkFlag(0x10)) {
|
||||
return mViewCache.mDirection.U();
|
||||
|
||||
@@ -0,0 +1,186 @@
|
||||
#ifndef D_DEBUG_CAMERA_H
|
||||
#define D_DEBUG_CAMERA_H
|
||||
|
||||
#include "d/d_camera.h"
|
||||
#include "JSystem/JHostIO/JORMContext.h"
|
||||
#include "JSystem/JHostIO/JORFile.h"
|
||||
|
||||
enum dDbgCam_KeyAction {
|
||||
/* | */ dDbgCam_KeyAction_FIXEDFRM,
|
||||
/* ] */ dDbgCam_KeyAction_UNITRANS,
|
||||
/* > */ dDbgCam_KeyAction_BSPLINE,
|
||||
/* - */ dDbgCam_KeyAction_NOACTION,
|
||||
};
|
||||
|
||||
class dDbgCamera_c;
|
||||
|
||||
class dDbgCamKey_c {
|
||||
public:
|
||||
dDbgCamKey_c() {}
|
||||
~dDbgCamKey_c();
|
||||
|
||||
/* 0x00 */ cXyz mCenter;
|
||||
/* 0x0C */ cXyz mEye;
|
||||
/* 0x18 */ f32 mFovy;
|
||||
/* 0x1C */ f32 mBank;
|
||||
struct {
|
||||
/* 0x20 */ fpc_ProcID id;
|
||||
/* 0x24 */ char name[8];
|
||||
} mActorInfo;
|
||||
/* 0x2C */ int mAction;
|
||||
/* 0x30 */ int mTimer;
|
||||
};
|
||||
|
||||
class dDbgCamSetup_c : public JORReflexible {
|
||||
public:
|
||||
dDbgCamSetup_c();
|
||||
~dDbgCamSetup_c() {}
|
||||
|
||||
void Init(dDbgCamera_c*);
|
||||
void Finish();
|
||||
f32 Translate(f32);
|
||||
s16 Rotate(f32);
|
||||
f32 FlatMove(f32);
|
||||
f32 Turbo(f32);
|
||||
|
||||
void genMessage(JORMContext*);
|
||||
void listenPropertyEvent(const JORPropertyEvent*);
|
||||
|
||||
f32 FovyTick() { return mFovyTick; }
|
||||
f32 RotAccel() { return mRotAccel; }
|
||||
f32 TransAccel() { return mTransAccel; }
|
||||
int CenterMarker() { return mCenterMarker; }
|
||||
f32 CenterBall() { return mCenterBall; }
|
||||
f32 CenterCloss() { return mCenterCross; }
|
||||
|
||||
bool CheckFlag(u16 i_flag) { return (i_flag & mFlag) ? true : false; }
|
||||
|
||||
/* 0x04 */ s32 mActorSrchType;
|
||||
/* 0x08 */ f32 mActorSrchRange;
|
||||
/* 0x0C */ fpc_ProcID mActorID;
|
||||
/* 0x10 */ dDbgCamera_c* mpDbgCam;
|
||||
/* 0x14 */ f32 mMoveSpeed;
|
||||
/* 0x18 */ f32 mMoveTurbo;
|
||||
/* 0x1C */ f32 mMoveParallelShift;
|
||||
/* 0x20 */ f32 mRotateSpeed;
|
||||
/* 0x24 */ f32 mFovyTick;
|
||||
/* 0x28 */ f32 mTransAccel;
|
||||
/* 0x2C */ f32 mRotAccel;
|
||||
/* 0x30 */ f32 mMoveMax;
|
||||
/* 0x34 */ f32 mRotateMax;
|
||||
/* 0x38 */ f32 mUnkMax;
|
||||
/* 0x3C */ f32 mCenterCross;
|
||||
/* 0x40 */ f32 mCenterBall;
|
||||
/* 0x44 */ s32 mCenterMarker;
|
||||
/* 0x48 */ u16 mFlag;
|
||||
/* 0x4C */ cXyz mGazePoint;
|
||||
/* 0x58 */ cXyz mPerspective;
|
||||
/* 0x64 */ f32 mAngle;
|
||||
/* 0x68 */ cXyz field_0x68;
|
||||
/* 0x74 */ cXyz field_0x74;
|
||||
/* 0x80 */ s8 m_childNo;
|
||||
/* 0x84 */ s32 mPosX;
|
||||
/* 0x88 */ s32 mPosY;
|
||||
};
|
||||
|
||||
class dDbgCamera_c {
|
||||
public:
|
||||
dDbgCamera_c() {}
|
||||
~dDbgCamera_c() {}
|
||||
|
||||
void InitlChk();
|
||||
int SetlChk(dBgS_LinChk);
|
||||
|
||||
int moveTool();
|
||||
int cmdTool();
|
||||
int makeZevData();
|
||||
void printZevData();
|
||||
void WriteZevData();
|
||||
void monitor();
|
||||
bool showCenterMarker();
|
||||
bool showCameraPos();
|
||||
bool showIdlCameraPos();
|
||||
void Init(dCamera_c*);
|
||||
void Finish();
|
||||
void Reset(dCamera_c*);
|
||||
int Run();
|
||||
int DrawShape();
|
||||
int Report(int, int, JUtility::TColor, const char*, ...);
|
||||
void OpenFile();
|
||||
void PrintFile(char*, ...);
|
||||
void CloseFile();
|
||||
|
||||
char* ActionName(s32 i_action) {
|
||||
static char* name[] = {
|
||||
"FIXEDFRM",
|
||||
"UNITRANS",
|
||||
"BSPLINE",
|
||||
"NOACTION",
|
||||
};
|
||||
|
||||
return name[i_action];
|
||||
}
|
||||
|
||||
cXyz Center() { return mRunKey.mCenter; }
|
||||
void Fovy(f32 fovy) { mRunKey.mFovy = fovy; };
|
||||
void Eye(const cXyz& eye) { mRunKey.mEye = eye; };
|
||||
void Center(const cXyz& center) { mRunKey.mCenter = center; };
|
||||
f32 Fovy() { return mRunKey.mFovy; }
|
||||
s16 Bank() { return cSAngle(mRunKey.mBank).Val(); }
|
||||
cXyz Up() { return mUp; }
|
||||
cXyz Eye() { return mRunKey.mEye; }
|
||||
bool Playing() { return mIsPlaying; }
|
||||
|
||||
dDbgCamKey_c PlaneKey() {
|
||||
dDbgCamKey_c rt;
|
||||
rt.mCenter = mpCamera->Center();
|
||||
rt.mEye = mpCamera->Eye();
|
||||
rt.mFovy = mpCamera->Fovy();
|
||||
rt.mBank = mpCamera->Bank().Degree();
|
||||
rt.mActorInfo.id = fpcM_ERROR_PROCESS_ID_e;
|
||||
strcpy(rt.mActorInfo.name, "WORLD");
|
||||
rt.mAction = dDbgCam_KeyAction_NOACTION;
|
||||
rt.mTimer = 20;
|
||||
return rt;
|
||||
}
|
||||
|
||||
char ActionSymbol(s32 i_action) { return "|]>-..."[i_action]; }
|
||||
|
||||
/* 0x000 */ dCamera_c* mpCamera;
|
||||
/* 0x004 */ dDbgCamKey_c mRunKey;
|
||||
/* 0x038 */ cXyz mUp;
|
||||
/* 0x044 */ cSGlobe field_0x44;
|
||||
/* 0x04C */ int mPadNo;
|
||||
/* 0x050 */ int field_0x50;
|
||||
/* 0x054 */ u32 field_0x54;
|
||||
/* 0x058 */ int field_0x58;
|
||||
/* 0x05C */ int mCmdMode;
|
||||
/* 0x060 */ char mActionKey[32];
|
||||
/* 0x080 */ u8 field_0x80;
|
||||
/* 0x084 */ dDbgCamKey_c mKeys[32];
|
||||
class {
|
||||
public:
|
||||
/* 0x000 */ int field_0x0;
|
||||
/* 0x004 */ int field_0x4;
|
||||
/* 0x008 */ u8 field_0x8[0x010 - 0x008];
|
||||
/* 0x010 */ cXyz field_0x10[32];
|
||||
/* 0x190 */ cXyz field_0x190[32];
|
||||
} /* 0x704 */ field_0x704;
|
||||
/* 0xA14 */ u8 field_0xA14[0xB14 - 0xA14];
|
||||
/* 0xB14 */ int field_0xb14;
|
||||
/* 0xB18 */ bool mIsPlaying;
|
||||
/* 0xB1C */ dBgS_LinChk mLchk[2];
|
||||
/* 0xBFC */ int mLchkNum;
|
||||
/* 0xC00 */ int field_0xc00;
|
||||
/* 0xC04 */ int field_0xc04;
|
||||
/* 0xC08 */ int field_0xc08;
|
||||
/* 0xC0C */ int field_0xc0c;
|
||||
/* 0xC10 */ f32 field_0xc10;
|
||||
/* 0xC14 */ f32 field_0xc14;
|
||||
/* 0xC18 */ int field_0xc18;
|
||||
/* 0xC1C */ int field_0xc1c;
|
||||
/* 0xC20 */ dDbgCamSetup_c mCamSetup;
|
||||
/* 0xCAC */ JORFile mFile;
|
||||
};
|
||||
|
||||
#endif
|
||||
@@ -53,6 +53,20 @@ public:
|
||||
/* 0x34 */ u8 field_0x34[12];
|
||||
}; // Size: 0x40
|
||||
|
||||
#if DEBUG
|
||||
class dEvDtData_DBG_c : public dEvDtData_c {
|
||||
public:
|
||||
void Init() {
|
||||
mName[0] = '\0';
|
||||
mIndex = 0;
|
||||
mType = 5;
|
||||
mDataIndex = 0;
|
||||
mNumber = 0;
|
||||
mNext = -1;
|
||||
}
|
||||
};
|
||||
#endif
|
||||
|
||||
class dEvDtCut_c {
|
||||
public:
|
||||
int startCheck();
|
||||
@@ -64,7 +78,6 @@ public:
|
||||
int getStartFlag(int idx) { return mFlags[idx]; }
|
||||
u32 getTagId() { return mTagID; }
|
||||
|
||||
private:
|
||||
/* 0x00 */ char mName[32];
|
||||
/* 0x20 */ u32 mTagID;
|
||||
/* 0x24 */ u32 mIndex;
|
||||
@@ -75,6 +88,27 @@ private:
|
||||
/* 0x40 */ u8 field_0x40[0x10];
|
||||
}; // Size: 0x50
|
||||
|
||||
#if DEBUG
|
||||
class dEvDtCut_DBG_c : public dEvDtCut_c {
|
||||
public:
|
||||
void Init() {
|
||||
int i;
|
||||
|
||||
mName[0] = '\0';
|
||||
mTagID = 0;
|
||||
mIndex = 0;
|
||||
|
||||
for (i = 0; i < 3; i++) {
|
||||
mFlags[i] = -1;
|
||||
}
|
||||
|
||||
mFlagId = 0;
|
||||
mDataTop = -1;
|
||||
mNext = -1;
|
||||
}
|
||||
};
|
||||
#endif
|
||||
|
||||
class dEvDtStaff_c {
|
||||
public:
|
||||
enum StaffType {
|
||||
@@ -152,7 +186,7 @@ public:
|
||||
/* 0x28 */ u32 mFlagID;
|
||||
/* 0x2C */ int mType;
|
||||
/* 0x30 */ int mStartCut;
|
||||
/* 0x34 */ u8 field_0x34[2];
|
||||
/* 0x34 */ s16 field_0x34;
|
||||
/* 0x36 */ s16 mWaitTimer;
|
||||
/* 0x38 */ int mCurrentCut;
|
||||
/* 0x3C */ s32 field_0x3c;
|
||||
@@ -163,6 +197,21 @@ public:
|
||||
|
||||
STATIC_ASSERT(sizeof(dEvDtStaff_c) == 0x50);
|
||||
|
||||
#if DEBUG
|
||||
class dEvDtStaff_DBG_c : public dEvDtStaff_c {
|
||||
public:
|
||||
void Init() {
|
||||
mName[0] = '\0';
|
||||
mTagID = 0;
|
||||
mIndex = 0;
|
||||
mFlagID = 0;
|
||||
mType = 13;
|
||||
mStartCut = 0;
|
||||
field_0x34 = 0;
|
||||
}
|
||||
};
|
||||
#endif
|
||||
|
||||
class dEvDtEvent_c {
|
||||
public:
|
||||
int finishCheck();
|
||||
@@ -179,15 +228,48 @@ public:
|
||||
/* 0x28 */ int mPriority;
|
||||
/* 0x2C */ int mStaff[20];
|
||||
/* 0x7C */ int mNStaff;
|
||||
/* 0x80 */ u8 field_0x80[4];
|
||||
/* 0x80 */ int field_0x80;
|
||||
/* 0x84 */ int field_0x84;
|
||||
/* 0x88 */ int mFlags[3];
|
||||
/* 0x94 */ bool mPlaySound;
|
||||
/* 0x95 */ u8 field_0x95[0xF];
|
||||
/* 0x96 */ s16 field_0x96;
|
||||
/* 0x98 */ f32 field_0x98;
|
||||
/* 0x9C */ f32 field_0x9c;
|
||||
/* 0xA0 */ f32 field_0xa0;
|
||||
/* 0xA4 */ int mEventState;
|
||||
/* 0xA8 */ u8 field_0xa8[8];
|
||||
/* 0xA8 */ int field_0xa8;
|
||||
/* 0xAC */ u8 field_0xac[4];
|
||||
}; // Size: 0xB0
|
||||
|
||||
#if DEBUG
|
||||
class dEvDtEvent_DBG_c : public dEvDtEvent_c {
|
||||
public:
|
||||
void Init() {
|
||||
int i;
|
||||
|
||||
mName[0] = '\0';
|
||||
mIndex = 0;
|
||||
mStaff[0] = 0;
|
||||
mNStaff = 0;
|
||||
|
||||
for (i = 0; i < 3; i++) {
|
||||
mFlags[i] = -1;
|
||||
}
|
||||
|
||||
field_0x80 = field_0x84 = 0;
|
||||
mPlaySound = false;
|
||||
field_0x24 = 1;
|
||||
mPriority = 0;
|
||||
mEventState = 0;
|
||||
field_0xa8 = 0;
|
||||
field_0x96 = 0;
|
||||
field_0x98 = 0.0f;
|
||||
field_0x9c = 0.0f;
|
||||
field_0xa0 = 0.0f;
|
||||
}
|
||||
}; // Size: 0xB0
|
||||
#endif
|
||||
|
||||
class dEvDtFlag_c {
|
||||
public:
|
||||
dEvDtFlag_c() {}
|
||||
|
||||
@@ -73,6 +73,14 @@ public:
|
||||
u8 getPalLanguage();
|
||||
#endif
|
||||
|
||||
#if DEBUG
|
||||
static void onOpeningCut() {
|
||||
mOpeningCut = true;
|
||||
}
|
||||
|
||||
static u8 mOpeningCut;
|
||||
#endif
|
||||
|
||||
public:
|
||||
/* 0x1C4 */ request_of_phase_process_class field_0x1c4;
|
||||
/* 0x1CC */ mDoDvdThd_toMainRam_c* sceneCommand;
|
||||
|
||||
@@ -55,7 +55,7 @@ public:
|
||||
/* 0x0006 */ u8 mPresetData[10000];
|
||||
/* 0x2716 */ u8 field_0x2716;
|
||||
/* 0x2717 */ u8 field_0x2717;
|
||||
/* 0x2718 */ char mFilename[100];
|
||||
/* 0x2718 */ u8 filename_buf[100];
|
||||
};
|
||||
|
||||
class dScnPly_c : public scene_class {
|
||||
|
||||
@@ -1170,6 +1170,14 @@ public:
|
||||
static u8 mNoChangeRoom;
|
||||
static s8 mRoomReadId;
|
||||
|
||||
#if DEBUG
|
||||
static void onNoArcBank() {
|
||||
mNoArcBank = true;
|
||||
}
|
||||
|
||||
static u8 mNoArcBank;
|
||||
#endif
|
||||
|
||||
private:
|
||||
/* 0x0 */ u8 field_0x0[4];
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user