d_a_npc_uri almost matching (#2400)

* d_a_npc_uri almost matching

* Fix various issues

* Fix
This commit is contained in:
hev7 2025-04-19 12:35:06 +01:00 committed by GitHub
parent c5f9d8dd9f
commit f63b2db2f9
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
5 changed files with 1846 additions and 1983 deletions

View File

@ -409,7 +409,7 @@ public:
bool chkReverse() { return mDirection == 1; }
u16 getNumPnts() {
int getNumPnts() {
dPath* path = mpRoomPath;
return path->m_num;
}

View File

@ -11,80 +11,179 @@
* @details
*
*/
class daNpc_Uri_c : public fopAc_ac_c {
class daNpc_Uri_c : public daNpcT_c {
public:
typedef int (daNpc_Uri_c::*cutFunc)(int);
typedef int (daNpc_Uri_c::*actionFunc)(void*);
enum Type {
TYPE_0,
TYPE_1,
TYPE_2,
TYPE_3,
TYPE_4,
TYPE_5,
TYPE_6,
};
/* 80B267AC */ ~daNpc_Uri_c();
/* 80B268F8 */ void create();
/* 80B26BE4 */ void CreateHeap();
/* 80B2708C */ void Delete();
/* 80B270C0 */ void Execute();
/* 80B270E0 */ void Draw();
/* 80B27174 */ void createHeapCallBack(fopAc_ac_c*);
/* 80B27194 */ void ctrlJointCallBack(J3DJoint*, int);
/* 80B271EC */ void getType();
/* 80B27260 */ void isDelete();
/* 80B268F8 */ int create();
/* 80B26BE4 */ int CreateHeap();
/* 80B2708C */ int Delete();
/* 80B270C0 */ int Execute();
/* 80B270E0 */ int Draw();
/* 80B27174 */ static int createHeapCallBack(fopAc_ac_c*);
/* 80B27194 */ static int ctrlJointCallBack(J3DJoint*, int);
/* 80B271EC */ u8 getType();
/* 80B27260 */ int isDelete();
/* 80B272F0 */ void reset();
/* 80B27750 */ void afterJntAnm(int);
/* 80B27820 */ void setParam();
/* 80B27994 */ void checkChangeEvt();
/* 80B27994 */ BOOL checkChangeEvt();
/* 80B27B3C */ void setAfterTalkMotion();
/* 80B27BF0 */ void srchActors();
/* 80B27C8C */ void evtTalk();
/* 80B27D2C */ void evtCutProc();
/* 80B27C8C */ BOOL evtTalk();
/* 80B27D2C */ BOOL evtCutProc();
/* 80B27DF4 */ void action();
/* 80B27F14 */ void beforeMove();
/* 80B27FD8 */ void setAttnPos();
/* 80B28318 */ void setCollision();
/* 80B284D4 */ bool drawDbgInfo();
/* 80B284D4 */ int drawDbgInfo();
/* 80B284DC */ void drawOtherMdl();
/* 80B285B4 */ void afterSetMotionAnm(int, int, f32, int);
/* 80B285B4 */ bool afterSetMotionAnm(int, int, f32, int);
/* 80B285EC */ void changeBck(int*, int*);
/* 80B28618 */ void changeBtp(int*, int*);
/* 80B28644 */ void selectAction();
/* 80B28794 */ void chkAction(int (daNpc_Uri_c::*)(void*));
/* 80B287C0 */ void setAction(int (daNpc_Uri_c::*)(void*));
/* 80B28868 */ void chkPlayerCarryBasket();
/* 80B288DC */ void chkPlayerGetWoodShield();
/* 80B28910 */ void getTutorialCond(cXyz);
/* 80B28FB8 */ void cutConversation(int);
/* 80B29198 */ void cutStartCarryTutorial(int);
/* 80B293C0 */ void cutEndCarryTutorial(int);
/* 80B296B8 */ void cutConversationWithMoi(int);
/* 80B2985C */ void cutFindWolf(int);
/* 80B29BA4 */ void cutMeetingAgain(int);
/* 80B29EA0 */ void krun(void*);
/* 80B2A1B4 */ void wait(void*);
/* 80B2AB60 */ void walk(void*);
/* 80B2B24C */ void sitWait(void*);
/* 80B2B7C0 */ void talk(void*);
/* 80B2CC64 */ daNpc_Uri_c(daNpcT_faceMotionAnmData_c const*, daNpcT_motionAnmData_c const*,
daNpcT_MotionSeqMngr_c::sequenceStepData_c const*, int,
daNpcT_MotionSeqMngr_c::sequenceStepData_c const*, int,
daNpcT_evtData_c const*, char**);
/* 80B2CD44 */ s32 getEyeballMaterialNo();
/* 80B2CD4C */ s32 getHeadJointNo();
/* 80B2CD54 */ s32 getNeckJointNo();
/* 80B2CD5C */ bool getBackboneJointNo();
/* 80B2CD64 */ void checkChangeJoint(int);
/* 80B2CD74 */ void checkRemoveJoint(int);
/* 80B2CD84 */ s32 getFootLJointNo();
/* 80B2CD8C */ s32 getFootRJointNo();
/* 80B28644 */ int selectAction();
/* 80B28794 */ int chkAction(int (daNpc_Uri_c::*)(void*));
/* 80B287C0 */ int setAction(int (daNpc_Uri_c::*)(void*));
/* 80B28868 */ BOOL chkPlayerCarryBasket();
/* 80B288DC */ BOOL chkPlayerGetWoodShield();
/* 80B28910 */ int getTutorialCond(cXyz);
/* 80B28FB8 */ int cutConversation(int);
/* 80B29198 */ int cutStartCarryTutorial(int);
/* 80B293C0 */ int cutEndCarryTutorial(int);
/* 80B296B8 */ int cutConversationWithMoi(int);
/* 80B2985C */ int cutFindWolf(int);
/* 80B29BA4 */ int cutMeetingAgain(int);
/* 80B29EA0 */ int krun(void*);
/* 80B2A1B4 */ int wait(void*);
/* 80B2AB60 */ int walk(void*);
/* 80B2B24C */ int sitWait(void*);
/* 80B2B7C0 */ int talk(void*);
/* 80B2CC64 */ daNpc_Uri_c(daNpcT_faceMotionAnmData_c const* param_1,
daNpcT_motionAnmData_c const* param_2,
daNpcT_MotionSeqMngr_c::sequenceStepData_c const* param_3,
int param_4,
daNpcT_MotionSeqMngr_c::sequenceStepData_c const* param_5,
int param_6, daNpcT_evtData_c const* param_7, char** param_8)
: daNpcT_c(param_1, param_2, param_3, param_4, param_5, param_6, param_7, param_8) {}
/* 80B2CD44 */ s32 getEyeballMaterialNo() { return 2; }
/* 80B2CD4C */ s32 getHeadJointNo() { return 4; }
/* 80B2CD54 */ s32 getNeckJointNo() { return 3; }
/* 80B2CD5C */ s32 getBackboneJointNo() { return 1; }
/* 80B2CD64 */ BOOL checkChangeJoint(int param_0) { return param_0 == 4; }
/* 80B2CD74 */ BOOL checkRemoveJoint(int param_0) { return param_0 == 8; }
/* 80B2CD84 */ s32 getFootLJointNo() { return 25; }
/* 80B2CD8C */ s32 getFootRJointNo() { return 28; }
static void* mCutNameList[7];
static u8 mCutList[84];
int getFlowNodeNo() {
u16 nodeNo = home.angle.x;
if (nodeNo == 0xffff) {
return -1;
}
return nodeNo;
}
u8 getBitSW() { return (fopAcM_GetParam(this) & 0xff0000) >> 16; }
u8 getPathID() { return (fopAcM_GetParam(this) & 0xff00) >> 8; }
static const char* mCutNameList[7];
static cutFunc mCutList[7];
private:
/* 0x568 */ u8 field_0x568[0x1018 - 0x568];
/* 0x0E40 */ int field_0xe40;
/* 0x0E44 */ J3DModel* mpModel[1];
/* 0x0E48 */ dCcD_Cyl mCyl;
/* 0x0F84 */ u8 mType;
/* 0x0F88 */ daNpcT_ActorMngr_c mActorMngr[2];
/* 0x0F98 */ daNpcT_Path_c mPath;
/* 0x0FC0 */ actionFunc field_0xfc0[2];
/* 0x0FD8 */ cXyz field_0xfd8;
/* 0x0FE4 */ csXyz field_0xfe4;
/* 0x0FEC */ int field_0xfec;
/* 0x0FF0 */ int field_0xff0;
/* 0x0FF4 */ int field_0xff4;
/* 0x0FF8 */ int field_0xff8;
/* 0x0FFC */ int field_0xffc;
/* 0x1000 */ f32 field_0x1000;
/* 0x1004 */ f32 field_0x1004;
/* 0x1008 */ u8 field_0x1008;
/* 0x1009 */ u8 field_0x1009;
/* 0x100A */ u8 field_0x100a;
/* 0x100B */ u8 field_0x100b;
/* 0x100C */ u8 field_0x100c;
/* 0x100D */ u8 field_0x100d;
/* 0x100E */ u8 field_0x100e;
/* 0x100F */ u8 field_0x100f;
/* 0x1010 */ u8 field_0x1010;
/* 0x1011 */ u8 field_0x1011;
/* 0x1012 */ u8 field_0x1012;
/* 0x1014 */ int field_0x1014;
};
STATIC_ASSERT(sizeof(daNpc_Uri_c) == 0x1018);
class daNpc_Uri_Param_c {
public:
/* 80B2CD94 */ ~daNpc_Uri_Param_c();
static u8 const m[172];
struct daNpc_Uri_HIOParam {
/* 0x00 */ f32 field_0x00;
/* 0x04 */ f32 field_0x04;
/* 0x08 */ f32 field_0x08;
/* 0x0C */ f32 field_0x0c;
/* 0x10 */ f32 field_0x10;
/* 0x14 */ f32 field_0x14;
/* 0x18 */ f32 field_0x18;
/* 0x1C */ f32 field_0x1c;
/* 0x20 */ f32 field_0x20;
/* 0x24 */ f32 field_0x24;
/* 0x28 */ f32 field_0x28;
/* 0x2C */ f32 field_0x2c;
/* 0x30 */ f32 field_0x30;
/* 0x34 */ f32 field_0x34;
/* 0x38 */ f32 field_0x38;
/* 0x3C */ f32 field_0x3c;
/* 0x40 */ f32 field_0x40;
/* 0x44 */ f32 field_0x44;
/* 0x48 */ s16 field_0x48;
/* 0x4A */ s16 field_0x4a;
/* 0x4C */ s16 field_0x4c;
/* 0x4E */ s16 field_0x4e;
/* 0x50 */ f32 field_0x50;
/* 0x54 */ f32 field_0x54;
/* 0x58 */ f32 field_0x58;
/* 0x5C */ f32 field_0x5c;
/* 0x60 */ s16 field_0x60;
/* 0x62 */ s16 field_0x62;
/* 0x64 */ u8 field_0x64[8];
/* 0x6C */ f32 field_0x6c;
/* 0x70 */ u8 field_0x70[28];
/* 0x8C */ s16 field_0x8c;
/* 0x8E */ s16 field_0x8e;
/* 0x90 */ s16 field_0x90;
/* 0x92 */ s16 field_0x92;
/* 0x94 */ s16 field_0x94;
/* 0x96 */ s16 field_0x96;
/* 0x98 */ f32 field_0x98;
/* 0x9C */ f32 field_0x9c;
/* 0xA0 */ f32 field_0xa0;
/* 0xA4 */ f32 field_0xa4;
/* 0xA8 */ f32 field_0xa8;
};
class daNpc_Uri_Param_c {
public:
/* 80B2CD94 */ virtual ~daNpc_Uri_Param_c() {};
static daNpc_Uri_HIOParam const m;
};
#endif /* D_A_NPC_URI_H */

View File

@ -1658,7 +1658,7 @@ inline bool dComIfGs_isCollectCrystal(u8 i_item) {
return g_dComIfG_gameInfo.info.getPlayer().getCollect().isCollectCrystal(i_item);
}
inline bool dComIfGs_isCollectShield(u8 i_item) {
inline BOOL dComIfGs_isCollectShield(u8 i_item) {
return g_dComIfG_gameInfo.info.getPlayer().getCollect().isCollect(2, i_item);
}

View File

@ -267,7 +267,7 @@ void daNpcT_Path_c::reverse() {
/* 80145DD0-80145E38 140710 0068+00 2/2 0/0 8/8 .text setNextIdx__13daNpcT_Path_cFi */
int daNpcT_Path_c::setNextIdx(int param_0) {
u16 numPnts = getNumPnts();
int numPnts = getNumPnts();
if (chkClose() != 0 && numPnts == param_0) {
return daNpcT_incIdx(param_0, mIdx, 1, mDirection);

File diff suppressed because it is too large Load Diff