mirror of https://github.com/zeldaret/tp.git
D a npc gra matching debug (#2788)
* match all d_a_npc_gra functions in debug * update all offsets to match release * rename parameters * add ct hack for d_a_npc_gra * add suggestions * fix type * use sound enums * fix sinit and one regswap * fix wrong variable usage
This commit is contained in:
parent
ba7cdd4fe9
commit
5c298bc401
|
|
@ -1861,7 +1861,7 @@ config.libs = [
|
|||
ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_npc_fairy"),
|
||||
ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_npc_fguard"),
|
||||
ActorRel(NonMatching, "d_a_npc_gnd"),
|
||||
ActorRel(NonMatching, "d_a_npc_gra"),
|
||||
ActorRel(NonMatching, "d_a_npc_gra", extra_cflags=[DANPCF_C_HACK]),
|
||||
ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_npc_grc", extra_cflags=[DANPCF_C_HACK]),
|
||||
ActorRel(NonMatching, "d_a_npc_grd"),
|
||||
ActorRel(NonMatching, "d_a_npc_grm"),
|
||||
|
|
|
|||
|
|
@ -139,6 +139,7 @@ public:
|
|||
}
|
||||
void getGlobalTranslation(JGeometry::TVec3<f32>* out) const { out->set(mGlobalTrs); }
|
||||
void setGlobalDynamicsScale(const JGeometry::TVec3<f32>& i_scale) { mGlobalScl.set(i_scale); }
|
||||
void getGlobalDynamicsScale(JGeometry::TVec3<f32>* i_scale) const { i_scale->set(mGlobalScl); }
|
||||
void setGlobalAlpha(u8 alpha) { mGlobalPrmClr.a = alpha; }
|
||||
u8 getGlobalAlpha() const { return mGlobalPrmClr.a; }
|
||||
void getGlobalPrmColor(GXColor& color) { color = mGlobalPrmClr; }
|
||||
|
|
|
|||
|
|
@ -284,7 +284,8 @@ public:
|
|||
}
|
||||
|
||||
void lookActor(fopAc_ac_c* param_1, f32 param_2, u8 isDirect) {
|
||||
if (setMode(LOOK_ACTOR, mActrMngr.getActorP() != param_1) && fopAcM_IsActor(param_1)) {
|
||||
bool isDifferentActor = mActrMngr.getActorP() != param_1;
|
||||
if (setMode(LOOK_ACTOR, isDifferentActor) && fopAcM_IsActor(param_1)) {
|
||||
mActrMngr.entry(param_1);
|
||||
field_0x14c = param_2;
|
||||
}
|
||||
|
|
@ -1353,6 +1354,9 @@ public:
|
|||
dPath* getPathInfo() { return mPathInfo; }
|
||||
void setRange(f32 i_range) { mRange = i_range; }
|
||||
u16 getNumPnts() { return mPathInfo->m_num; }
|
||||
#if DEBUG
|
||||
void drawDbgInfoXyz();
|
||||
#endif
|
||||
}; // Size: 0x630
|
||||
|
||||
class daNpcF_Lookat_c {
|
||||
|
|
|
|||
|
|
@ -3,6 +3,36 @@
|
|||
|
||||
#include "d/actor/d_a_npc.h"
|
||||
|
||||
|
||||
class daNpc_grA_HIOParam {
|
||||
public:
|
||||
/* 0x00 */ daNpcF_HIOParam mNpcFParams;
|
||||
/* 0x6C */ s16 mBowTimer;
|
||||
/* 0x70 */ f32 mRotationalSpeed;
|
||||
/* 0x74 */ f32 mWalkingSpeed;
|
||||
/* 0x78 */ f32 mWalkingAnimationSpeed;
|
||||
/* 0x7C */ s16 mWalkingRotationSpeed;
|
||||
/* 0x7A */ s16 mWalkingRotationDivisions;
|
||||
/* 0x80 */ f32 mParticleSize;
|
||||
};
|
||||
|
||||
class daNpc_grA_Param_c {
|
||||
public:
|
||||
/* 809C9D2C */ virtual ~daNpc_grA_Param_c(){};
|
||||
|
||||
static daNpc_grA_HIOParam const m;
|
||||
};
|
||||
|
||||
class daNpc_grA_HIO_c : public mDoHIO_entry_c {
|
||||
public:
|
||||
daNpc_grA_HIO_c();
|
||||
#if DEBUG
|
||||
void listenPropertyEvent(const JORPropertyEvent*);
|
||||
void genMessage(JORMContext*);
|
||||
#endif
|
||||
daNpc_grA_HIOParam mHioParams;
|
||||
};
|
||||
|
||||
/**
|
||||
* @ingroup actors-npcs
|
||||
* @class daNpc_grA_c
|
||||
|
|
@ -11,108 +41,161 @@
|
|||
* @details
|
||||
*
|
||||
*/
|
||||
class daNpc_grA_c : public fopAc_ac_c {
|
||||
class daNpc_grA_c : public daNpcF_c {
|
||||
public:
|
||||
class daNpc_GrA_prtclMngr_c {
|
||||
public:
|
||||
/* 809BEB24 */ ~daNpc_GrA_prtclMngr_c();
|
||||
/* 809BEB60 */ daNpc_GrA_prtclMngr_c();
|
||||
/* 0x00 */ u8 field_0x0;
|
||||
/* 0x04 */ cXyz mPos;
|
||||
/* 0x10 */ csXyz mAngle;
|
||||
/* 0x18 */ cXyz mScale;
|
||||
/* 0x24 */ dPaPo_c mManager;
|
||||
};
|
||||
|
||||
/* 809BE94C */ daNpc_grA_c();
|
||||
/* 809BEB64 */ ~daNpc_grA_c();
|
||||
/* 809BEDA4 */ void create();
|
||||
/* 809BF0A8 */ void CreateHeap();
|
||||
/* 809BF418 */ void Delete();
|
||||
/* 809BF44C */ void Execute();
|
||||
/* 809BF490 */ void Draw();
|
||||
/* 809BF504 */ void ctrlJoint(J3DJoint*, J3DModel*);
|
||||
/* 809BF738 */ void createHeapCallBack(fopAc_ac_c*);
|
||||
/* 809BF758 */ void ctrlJointCallBack(J3DJoint*, int);
|
||||
/* 809BF7A4 */ void setTagJump();
|
||||
/* 809BF8A0 */ void setTagJump2();
|
||||
/* 809BF99C */ void setHomeJump();
|
||||
/* 809BFAF4 */ void checkTagGraSub(fopAc_ac_c*);
|
||||
/* 809BFBC0 */ void checkTagGraSub2(fopAc_ac_c*);
|
||||
/* 809BFDCC */ void checkTagGraSubCrashed(fopAc_ac_c*);
|
||||
/* 809BEDA4 */ BOOL create();
|
||||
/* 809BF0A8 */ BOOL CreateHeap();
|
||||
/* 809BF418 */ BOOL Delete();
|
||||
/* 809BF44C */ BOOL Execute();
|
||||
/* 809BF490 */ BOOL Draw();
|
||||
/* 809BF504 */ BOOL ctrlJoint(J3DJoint*, J3DModel*);
|
||||
/* 809BF738 */ static BOOL createHeapCallBack(fopAc_ac_c*);
|
||||
/* 809BF758 */ static BOOL ctrlJointCallBack(J3DJoint*, int);
|
||||
/* 809BF7A4 */ BOOL setTagJump();
|
||||
/* 809BF8A0 */ BOOL setTagJump2();
|
||||
/* 809BF99C */ BOOL setHomeJump();
|
||||
/* 809BFAF4 */ bool checkTagGraSub(fopAc_ac_c*);
|
||||
/* 809BFBC0 */ bool checkTagGraSub2(fopAc_ac_c*);
|
||||
/* 809BFDCC */ bool checkTagGraSubCrashed(fopAc_ac_c*);
|
||||
/* 809BFDFC */ void setParam();
|
||||
/* 809C0038 */ void main();
|
||||
/* 809C0298 */ bool ctrlBtk();
|
||||
/* 809C0038 */ BOOL main();
|
||||
/* 809C0298 */ BOOL ctrlBtk();
|
||||
/* 809C02A0 */ void setAttnPos();
|
||||
/* 809C0948 */ void setExpressionAnm(int, bool);
|
||||
/* 809C0CE4 */ void setExpressionBtp(int);
|
||||
/* 809C0948 */ bool setExpressionAnm(int, bool);
|
||||
/* 809C0CE4 */ bool setExpressionBtp(int);
|
||||
/* 809C0E18 */ void setExpression(int, f32);
|
||||
/* 809C0E44 */ bool setMotionAnm(int, f32);
|
||||
/* 809C0E44 */ void setMotionAnm(int, f32);
|
||||
/* 809C1018 */ void setMotion(int, f32, int);
|
||||
/* 809C105C */ bool drawDbgInfo();
|
||||
/* 809C105C */ BOOL drawDbgInfo();
|
||||
/* 809C1064 */ void drawOtherMdls();
|
||||
/* 809C1154 */ void getMode();
|
||||
/* 809C1154 */ u8 getMode();
|
||||
/* 809C1160 */ u8 getMode1();
|
||||
/* 809C116C */ void getTypeFromParam();
|
||||
/* 809C1238 */ void getSwBit();
|
||||
/* 809C1244 */ void isDelete();
|
||||
/* 809C116C */ u8 getTypeFromParam();
|
||||
/* 809C1238 */ u8 getSwBit();
|
||||
/* 809C1244 */ BOOL isDelete();
|
||||
/* 809C13D8 */ void reset();
|
||||
/* 809C1990 */ void playExpression();
|
||||
/* 809C2080 */ void playMotion();
|
||||
/* 809C28BC */ void chkAction(int (daNpc_grA_c::*)(void*));
|
||||
/* 809C28E8 */ void setAction(int (daNpc_grA_c::*)(void*));
|
||||
/* 809C2990 */ void selectAction();
|
||||
/* 809C2C3C */ void doEvent();
|
||||
/* 809C28BC */ BOOL chkAction(int (daNpc_grA_c::*)(void*));
|
||||
/* 809C28E8 */ BOOL setAction(int (daNpc_grA_c::*)(void*));
|
||||
/* 809C2990 */ BOOL selectAction();
|
||||
/* 809C2C3C */ BOOL doEvent();
|
||||
/* 809C3070 */ void setLookMode(int);
|
||||
/* 809C3094 */ void lookat();
|
||||
/* 809C3424 */ void chkFindPlayer();
|
||||
/* 809C3424 */ BOOL chkFindPlayer();
|
||||
/* 809C35D0 */ void setExpressionTalkAfter();
|
||||
/* 809C36AC */ void setPrtcl();
|
||||
/* 809C36AC */ BOOL setPrtcl();
|
||||
/* 809C389C */ void setRollPrtcl(cXyz const&, f32);
|
||||
/* 809C3A54 */ void setOtherObjMtx();
|
||||
/* 809C3B28 */ void ECut_talkSpa(int);
|
||||
/* 809C3D78 */ void ECut_grDSRoll(int);
|
||||
/* 809C45B0 */ void ECut_grDSGate(int);
|
||||
/* 809C47EC */ void ECut_teachElevator(int);
|
||||
/* 809C4BE4 */ void ECut_kickOut(int);
|
||||
/* 809C4EB4 */ void ECut_noneLook(int);
|
||||
/* 809C5088 */ void ECut_rescueRock(int);
|
||||
/* 809C5430 */ void ECut_carrySpaWater(int);
|
||||
/* 809C5D44 */ void ECut_carrySpaWaterFailure(int);
|
||||
/* 809C5F90 */ void ECut_rollRockCrash(int);
|
||||
/* 809C6608 */ void ECut_talkSpaWater(int);
|
||||
/* 809C681C */ void wait(void*);
|
||||
/* 809C69B8 */ void waitTW(void*);
|
||||
/* 809C6AAC */ void waitCheer(void*);
|
||||
/* 809C6D48 */ void waitGate(void*);
|
||||
/* 809C73FC */ void waitKickOut(void*);
|
||||
/* 809C770C */ void moveRock(void*);
|
||||
/* 809C77E0 */ void spaWarm(void*);
|
||||
/* 809C7ACC */ void waitSpaWater(void*);
|
||||
/* 809C7F24 */ void waitSpaBuyer(void*);
|
||||
/* 809C8138 */ void waitSpaBuyerTW(void*);
|
||||
/* 809C82A8 */ void beforeCrashWait(void*);
|
||||
/* 809C8514 */ void crashRoll(void*);
|
||||
/* 809C8694 */ void crashRollWait(void*);
|
||||
/* 809C884C */ void crashedWait(void*);
|
||||
/* 809C8A2C */ void waitBuyer(void*);
|
||||
/* 809C8BD4 */ void talk(void*);
|
||||
/* 809C9044 */ void test(void*);
|
||||
/* 809C3B28 */ BOOL ECut_talkSpa(int);
|
||||
/* 809C3D78 */ BOOL ECut_grDSRoll(int);
|
||||
/* 809C45B0 */ BOOL ECut_grDSGate(int);
|
||||
/* 809C47EC */ BOOL ECut_teachElevator(int);
|
||||
/* 809C4BE4 */ BOOL ECut_kickOut(int);
|
||||
/* 809C4EB4 */ BOOL ECut_noneLook(int);
|
||||
/* 809C5088 */ BOOL ECut_rescueRock(int);
|
||||
/* 809C5430 */ BOOL ECut_carrySpaWater(int);
|
||||
/* 809C5D44 */ BOOL ECut_carrySpaWaterFailure(int);
|
||||
/* 809C5F90 */ BOOL ECut_rollRockCrash(int);
|
||||
/* 809C6608 */ BOOL ECut_talkSpaWater(int);
|
||||
/* 809C681C */ BOOL wait(void*);
|
||||
/* 809C69B8 */ BOOL waitTW(void*);
|
||||
/* 809C6AAC */ BOOL waitCheer(void*);
|
||||
/* 809C6D48 */ BOOL waitGate(void*);
|
||||
/* 809C73FC */ BOOL waitKickOut(void*);
|
||||
/* 809C770C */ BOOL moveRock(void*);
|
||||
/* 809C77E0 */ BOOL spaWarm(void*);
|
||||
/* 809C7ACC */ BOOL waitSpaWater(void*);
|
||||
/* 809C7F24 */ BOOL waitSpaBuyer(void*);
|
||||
/* 809C8138 */ BOOL waitSpaBuyerTW(void*);
|
||||
/* 809C82A8 */ BOOL beforeCrashWait(void*);
|
||||
/* 809C8514 */ BOOL crashRoll(void*);
|
||||
/* 809C8694 */ BOOL crashRollWait(void*);
|
||||
/* 809C884C */ BOOL crashedWait(void*);
|
||||
/* 809C8A2C */ BOOL waitBuyer(void*);
|
||||
/* 809C8BD4 */ BOOL talk(void*);
|
||||
/* 809C9044 */ BOOL test(void*);
|
||||
/* 809C9D28 */ void adjustShapeAngle();
|
||||
|
||||
int getType() { return mType; }
|
||||
|
||||
s16 getGraNo() { return 0; }
|
||||
void addCarryNum() { field_0x1692++; }
|
||||
u8 getPathNoFromParam() { return home.angle.z; }
|
||||
void setGateWalk() { field_0x14D0 = 1; }
|
||||
static char* mEvtCutNameList[12];
|
||||
static u8 mEvtCutList[144];
|
||||
typedef BOOL (daNpc_grA_c::*cut_type)(int);
|
||||
static cut_type mEvtCutList[];
|
||||
|
||||
private:
|
||||
/* 0x0568 */ u8 field_0x568[0x1474 - 0x568];
|
||||
typedef BOOL (daNpc_grA_c::*daNpc_grA_c_Action)(void*);
|
||||
|
||||
/* 0x0B48 */ Z2Creature mCreature;
|
||||
/* 0x0BD8 */ J3DModel* mpModel;
|
||||
/* 0x0BDC */ int field_0xBDC;
|
||||
/* 0x0BE0 */ daNpcF_Lookat_c mNpcfLookAt;
|
||||
/* 0x0C7C */ daNpcF_ActorMngr_c mNpcfActorManager[3];
|
||||
/* 0x0C94 */ daNpc_grA_HIO_c* mpHio;
|
||||
/* 0x0C98 */ dCcD_Cyl field_0xC98;
|
||||
/* 0x0DD4 */ daNpcF_Path_c field_0xDD4;
|
||||
/* 0x1404 */ daNpc_grA_c_Action mAction2;
|
||||
/* 0x1410 */ daNpc_grA_c_Action mAction;
|
||||
/* 0x141C */ request_of_phase_process_class mPhase[8];
|
||||
/* 0x145C */ int field_0x145C;
|
||||
/* 0x14B0 */ int field_0x1460;
|
||||
/* 0x1464 */ int field_0x1464;
|
||||
/* 0x1468 */ int field_0x1468;
|
||||
/* 0x146C */ int field_0x146C;
|
||||
/* 0x1470 */ s16 mLookMode;
|
||||
/* 0x1472 */ u16 field_0x1472;
|
||||
/* 0x1474 */ u8 mType;
|
||||
/* 0x1475 */ u8 field_0x1475[0x1698 - 0x1475];
|
||||
/* 0x1478 */ int field_0x1478;
|
||||
/* 0x147C */ const char* mName;
|
||||
/* 0x1480 */ fpc_ProcID field_0x1480;
|
||||
/* 0x1484 */ s16 field_0x1484;
|
||||
/* 0x1486 */ u8 field_0x1486;
|
||||
/* 0x1487 */ u8 field_0x1487;
|
||||
/* 0x1488 */ u8 field_0x1488;
|
||||
/* 0x1489 */ u8 field_0x1489;
|
||||
/* 0x148C */ cXyz field_0x148C;
|
||||
/* 0x1498 */ csXyz field_0x1498;
|
||||
/* 0x149E */ u8 field_0x149E;
|
||||
/* 0x14A0 */ cXyz field_0x14A0;
|
||||
/* 0x14AC */ csXyz field_0x14AC;
|
||||
/* 0x14B4 */ f32 field_0x14B4;
|
||||
/* 0x14B8 */ f32 field_0x14B8;
|
||||
/* 0x14BC */ cXyz field_0x14BC;
|
||||
/* 0x14C8 */ csXyz field_0x14C8;
|
||||
/* 0x14CE */ u8 mMode;
|
||||
/* 0x14CF */ u8 mSwBit;
|
||||
/* 0x14D0 */ u8 field_0x14D0;
|
||||
/* 0x14D1 */ u8 field_0x14D1;
|
||||
/* 0x14D4 */ f32 field_0x14D4;
|
||||
/* 0x14D8 */ int field_0x14D8;
|
||||
/* 0x14DC */ Mtx field_0x14DC;
|
||||
/* 0x150C */ u8 field_0x150C;
|
||||
/* 0x1510 */ int mParticleID[3];
|
||||
/* 0x151C */ int field_0x151C;
|
||||
/* 0x1520 */ daNpc_GrA_prtclMngr_c mParticleManager[4];
|
||||
/* 0x1690 */ u8 field_0x1690;
|
||||
/* 0x1691 */ u8 field_0x1691;
|
||||
/* 0x1692 */ u8 field_0x1692;
|
||||
/* 0x1692 */ u8 field_0x1693;
|
||||
/* 0x1692 */ s16 field_0x1694;
|
||||
|
||||
};
|
||||
|
||||
STATIC_ASSERT(sizeof(daNpc_grA_c) == 0x1698);
|
||||
|
||||
class daNpc_grA_Param_c {
|
||||
public:
|
||||
/* 809C9D2C */ ~daNpc_grA_Param_c();
|
||||
|
||||
static u8 const m[132];
|
||||
};
|
||||
|
||||
#endif /* D_A_NPC_GRA_H */
|
||||
|
|
|
|||
|
|
@ -49,7 +49,9 @@ public:
|
|||
|
||||
int getSw() { return fopAcM_GetParamBit(this, 0, 8); }
|
||||
int getSw2() { return fopAcM_GetParamBit(this, 8, 8); }
|
||||
|
||||
bool getTempStat() { return mTempStat; }
|
||||
void startTimer() { mStartTimer = true; }
|
||||
|
||||
static dCcD_SrcGObjInf const mCcDObjInfo;
|
||||
static dCcD_SrcCyl mCcDCyl;
|
||||
|
||||
|
|
|
|||
|
|
@ -21,6 +21,10 @@ public:
|
|||
return home.pos;
|
||||
}
|
||||
|
||||
csXyz getGraAngle() {
|
||||
return home.angle;
|
||||
}
|
||||
|
||||
f32 getGraExtent() {
|
||||
return scale.x * 100.0f;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -137,7 +137,14 @@ public:
|
|||
void onFlag2(u16 flag) { mFlag2 |= flag; }
|
||||
void offFlag2(u16 flag) { mFlag2 &= ~flag; }
|
||||
|
||||
BOOL chkTalkXY() { return mTalkXyType == 1 || mTalkXyType == 2; }
|
||||
BOOL chkTalkXY()
|
||||
{
|
||||
#if PLATFORM_WII || PLATFORM_SHIELD
|
||||
return mTalkXyType == 1 || mTalkXyType == 2 || mTalkXyType == 3 || mTalkXyType == 4;
|
||||
#else
|
||||
return mTalkXyType == 1 || mTalkXyType == 2;
|
||||
#endif
|
||||
}
|
||||
|
||||
BOOL isOrderOK() { return mEventStatus == 0 || mEventStatus == 2; }
|
||||
|
||||
|
|
|
|||
|
|
@ -165,6 +165,12 @@ void daNpcF_Path_c::initialize() {
|
|||
field_0x10 = 0.0f;
|
||||
}
|
||||
|
||||
#if DEBUG
|
||||
void daNpcF_Path_c::drawDbgInfoXyz() {
|
||||
// UNFINISHED
|
||||
}
|
||||
#endif
|
||||
|
||||
/* 8015095C-80150A24 14B29C 00C8+00 0/0 0/0 12/12 .text setPathInfo__13daNpcF_Path_cFUcScUc */
|
||||
int daNpcF_Path_c::setPathInfo(u8 i_pathNo, s8 i_roomNo, u8 i_isReversed) {
|
||||
mPathInfo = NULL;
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue