d_a_npc_pachi_taro and d_a_npc_pachi_maro matching (#2824)

* solid progress

* almost matching

* pachi_taro matching

* pachi_maro matching
This commit is contained in:
Carco_21 2025-11-19 13:07:35 -05:00 committed by GitHub
parent 7eff24706b
commit 9d325bfb29
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
8 changed files with 4619 additions and 4046 deletions

View File

@ -1909,8 +1909,8 @@ config.libs = [
ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_npc_ne"),
ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01", "ShieldD"), "d_a_npc_p2"),
ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_npc_pachi_besu"),
ActorRel(NonMatching, "d_a_npc_pachi_maro"),
ActorRel(NonMatching, "d_a_npc_pachi_taro"),
ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_npc_pachi_maro"),
ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_npc_pachi_taro"),
ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_npc_passer"),
ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_npc_passer2"),
ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_npc_post"),

View File

@ -126,6 +126,13 @@ public:
int getPathID() { return (fopAcM_GetParam(this) & 0xFF00) >> 8; }
int getBitSW() { return (fopAcM_GetParam(this) & 0xFF0000) >> 16; }
void setFMotion_None() { mFMotion = 0; }
void setFMotion_Hit() { mFMotion = 1; }
void setFMotion_Mad() { mFMotion = 2; }
void setFMotion_LookBros() { mFMotion = 3; }
void setFMotion_LookNone() { mFMotion = 4; }
void talkOff() { mTalk = 0; }
void setTagPos(cXyz const& i_pos) { mTagPos = i_pos; }
void setLookPos(cXyz const& i_pos) { mLookPos = i_pos; }
static char* mCutNameList[11];
static cutFunc mCutList[11];
@ -134,9 +141,9 @@ private:
/* 0xE40 */ daNpc_Pachi_Besu_HIO_c* mHIO;
/* 0xE44 */ dCcD_Cyl mCyl;
/* 0xF80 */ u8 mType;
/* 0xF81 */ u8 field_0xf81;
/* 0xF84 */ cXyz field_0xf84;
/* 0xF90 */ cXyz field_0xf90;
/* 0xF81 */ u8 mTalk;
/* 0xF84 */ cXyz mTagPos;
/* 0xF90 */ cXyz mLookPos;
/* 0xF9C */ u16 field_0xf9c;
/* 0xF9E */ u8 mFMotion;
/* 0xFA0 */ daNpcT_ActorMngr_c mActorMngrs[2];

View File

@ -10,100 +10,199 @@
*
* @details
*
*/
class daNpc_Pachi_Maro_c : public fopAc_ac_c {
*/
struct daNpc_Pachi_Maro_HIOParam {
/* 0x00 */ daNpcT_HIOParam common;
/* 0x8C */ s16 field_0x8c;
};
class daNpc_Pachi_Maro_Param_c {
public:
/* 80A9B820 */ virtual ~daNpc_Pachi_Maro_Param_c() {}
static daNpc_Pachi_Maro_HIOParam const m;
};
#if DEBUG
class daNpc_Pachi_Maro_HIO_c : public mDoHIO_entry_c {
public:
daNpc_Pachi_Maro_HIO_c();
void listenPropertyEvent(const JORPropertyEvent*);
void genMessage(JORMContext*);
/* 0x8 */ daNpc_Pachi_Maro_HIOParam m;
};
#define NPC_PACHI_MARO_HIO_CLASS daNpc_Pachi_Maro_HIO_c
#else
#define NPC_PACHI_MARO_HIO_CLASS daNpc_Pachi_Maro_Param_c
#endif
class daNpc_Pachi_Maro_c : public daNpcT_c {
public:
enum Material {
/* 0x0 */ MAT_SC_EYE,
/* 0x1 */ MAT_MARO_EYBALL_M,
/* 0x2 */ MAT_MARO_FACE_M,
/* 0x3 */ MAT_MARO_M,
};
enum Joint {
/* 0x00 */ JNT_CENTER,
/* 0x01 */ JNT_BACKBONE1,
/* 0x02 */ JNT_BACKBONE2,
/* 0x03 */ JNT_NECK,
/* 0x04 */ JNT_HEAD,
/* 0x05 */ JNT_CHIN,
/* 0x06 */ JNT_MOUTH,
/* 0x07 */ JNT_SHOULDERL,
/* 0x08 */ JNT_ARML1,
/* 0x09 */ JNT_ARML2,
/* 0x0A */ JNT_HANDL,
/* 0x0B */ JNT_FINGERL,
/* 0x0C */ JNT_SHOULDERR,
/* 0x0D */ JNT_ARMR1,
/* 0x0E */ JNT_ARMR2,
/* 0x0F */ JNT_HANDR,
/* 0x10 */ JNT_FINGERR,
/* 0x11 */ JNT_WAIST,
/* 0x12 */ JNT_LEGL1,
/* 0x13 */ JNT_LEGL2,
/* 0x14 */ JNT_FOOTL,
/* 0x15 */ JNT_LEGR1,
/* 0x16 */ JNT_FOOTR,
};
typedef int (daNpc_Pachi_Maro_c::*actionFunc)(void*);
typedef int (daNpc_Pachi_Maro_c::*cutFunc)(int);
/* 80A97C8C */ ~daNpc_Pachi_Maro_c();
/* 80A97DC4 */ void create();
/* 80A9809C */ void CreateHeap();
/* 80A984DC */ void Delete();
/* 80A98510 */ void Execute();
/* 80A98530 */ void Draw();
/* 80A985C4 */ void createHeapCallBack(fopAc_ac_c*);
/* 80A985E4 */ void ctrlJointCallBack(J3DJoint*, int);
/* 80A9863C */ void getType();
/* 80A9865C */ void isDelete();
/* 80A97DC4 */ cPhs__Step create();
/* 80A9809C */ int CreateHeap();
/* 80A984DC */ int Delete();
/* 80A98510 */ int Execute();
/* 80A98530 */ int Draw();
/* 80A985C4 */ static int createHeapCallBack(fopAc_ac_c*);
/* 80A985E4 */ static int ctrlJointCallBack(J3DJoint*, int);
/* 80A9863C */ u8 getType();
/* 80A9865C */ BOOL isDelete();
/* 80A9867C */ void reset();
/* 80A987F4 */ void afterJntAnm(int);
/* 80A98870 */ void setParam();
/* 80A9896C */ bool checkChangeEvt();
/* 80A9896C */ BOOL checkChangeEvt();
/* 80A98974 */ void setAfterTalkMotion();
/* 80A98A10 */ void srchActors();
/* 80A98A98 */ void evtTalk();
/* 80A98B9C */ void evtCutProc();
/* 80A98A98 */ BOOL evtTalk();
/* 80A98B9C */ BOOL evtCutProc();
/* 80A98C64 */ void action();
/* 80A98DE8 */ void beforeMove();
/* 80A98E60 */ void afterMoved();
/* 80A98FB4 */ void setAttnPos();
/* 80A9928C */ void setCollision();
/* 80A99394 */ bool drawDbgInfo();
/* 80A9939C */ void getFaceMotionAnm(daNpcT_faceMotionAnmData_c);
/* 80A99428 */ void getMotionAnm(daNpcT_motionAnmData_c);
/* 80A994B4 */ void selectAction();
/* 80A99530 */ void chkAction(int (daNpc_Pachi_Maro_c::*)(void*));
/* 80A9955C */ void setAction(int (daNpc_Pachi_Maro_c::*)(void*));
/* 80A99604 */ void wait(void*);
/* 80A9986C */ void talk(void*);
/* 80A998FC */ void _turn_to_link(s16);
/* 80A999A4 */ void _turn_pos(cXyz const&);
/* 80A99948 */ void _turn_pos(cXyz const&, s16);
/* 80A999E4 */ void cutTutrialBegin(int);
/* 80A99A78 */ bool _cutTutrialBegin_Init(int const&);
/* 80A99A80 */ bool _cutTutrialBegin_Main(int const&);
/* 80A99A88 */ void cutTutrialBegin_Skip(int);
/* 80A99B1C */ bool _cutTutrialBegin_Skip_Init(int const&);
/* 80A99B24 */ bool _cutTutrialBegin_Skip_Main(int const&);
/* 80A99B2C */ void cutTutrialClear(int);
/* 80A99BC0 */ void _cutTutrialClear_Init(int const&);
/* 80A99CB8 */ void _cutTutrialClear_Main(int const&);
/* 80A99D4C */ void cutTalk(int);
/* 80A99DE0 */ bool _cutTalk_Init(int const&);
/* 80A99DE8 */ void _cutTalk_Main(int const&);
/* 80A99E44 */ void cutTalk2(int);
/* 80A99ED8 */ bool _cutTalk2_Init(int const&);
/* 80A99EE0 */ void _cutTalk2_Main(int const&);
/* 80A99F3C */ void cut1stHit_KakasiBody(int);
/* 80A99FD0 */ void _cut1stHit_KakasiBody_Init(int const&);
/* 80A9A05C */ void _cut1stHit_KakasiBody_Main(int const&);
/* 80A9A0F0 */ void cutTutrialSelectGiveUp(int);
/* 80A9A184 */ bool _cutTutrialSelectGiveUp_Init(int const&);
/* 80A9A18C */ void _cutTutrialSelectGiveUp_Main(int const&);
/* 80A9A288 */ void cutTutrialGiveUp(int);
/* 80A9A31C */ bool _cutTutrialGiveUp_Init(int const&);
/* 80A9A324 */ void _cutTutrialGiveUp_Main(int const&);
/* 80A9A360 */ void cutTutrialContinue(int);
/* 80A9A3F4 */ bool _cutTutrialContinue_Init(int const&);
/* 80A9A3FC */ void _cutTutrialContinue_Main(int const&);
/* 80A9A438 */ void cutTutrialCaution(int);
/* 80A9A4CC */ bool _cutTutrialCaution_Init(int const&);
/* 80A9A4D4 */ void _cutTutrialCaution_Main(int const&);
/* 80A9B714 */ daNpc_Pachi_Maro_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**);
/* 80A9B7E0 */ u16 getEyeballMaterialNo();
/* 80A9B7E8 */ s32 getHeadJointNo();
/* 80A9B7F0 */ s32 getNeckJointNo();
/* 80A9B7F8 */ bool getBackboneJointNo();
/* 80A9B800 */ void checkChangeJoint(int);
/* 80A9B810 */ void checkRemoveJoint(int);
/* 80A99394 */ int drawDbgInfo();
/* 80A9939C */ daNpcT_faceMotionAnmData_c getFaceMotionAnm(daNpcT_faceMotionAnmData_c);
/* 80A99428 */ daNpcT_motionAnmData_c getMotionAnm(daNpcT_motionAnmData_c);
/* 80A994B4 */ BOOL selectAction();
/* 80A99530 */ BOOL chkAction(actionFunc);
/* 80A9955C */ BOOL setAction(actionFunc);
/* 80A99604 */ int wait(void*);
/* 80A9986C */ int talk(void*);
int test(void*);
/* 80A998FC */ BOOL _turn_to_link(s16);
/* 80A999A4 */ BOOL _turn_pos(cXyz const&);
/* 80A99948 */ BOOL _turn_pos(cXyz const&, s16);
/* 80A999E4 */ BOOL cutTutrialBegin(int);
/* 80A99A78 */ BOOL _cutTutrialBegin_Init(int const&);
/* 80A99A80 */ BOOL _cutTutrialBegin_Main(int const&);
/* 80A99A88 */ BOOL cutTutrialBegin_Skip(int);
/* 80A99B1C */ BOOL _cutTutrialBegin_Skip_Init(int const&);
/* 80A99B24 */ BOOL _cutTutrialBegin_Skip_Main(int const&);
/* 80A99B2C */ BOOL cutTutrialClear(int);
/* 80A99BC0 */ BOOL _cutTutrialClear_Init(int const&);
/* 80A99CB8 */ BOOL _cutTutrialClear_Main(int const&);
/* 80A99D4C */ BOOL cutTalk(int);
/* 80A99DE0 */ BOOL _cutTalk_Init(int const&);
/* 80A99DE8 */ BOOL _cutTalk_Main(int const&);
/* 80A99E44 */ BOOL cutTalk2(int);
/* 80A99ED8 */ BOOL _cutTalk2_Init(int const&);
/* 80A99EE0 */ BOOL _cutTalk2_Main(int const&);
/* 80A99F3C */ BOOL cut1stHit_KakasiBody(int);
/* 80A99FD0 */ BOOL _cut1stHit_KakasiBody_Init(int const&);
/* 80A9A05C */ BOOL _cut1stHit_KakasiBody_Main(int const&);
/* 80A9A0F0 */ BOOL cutTutrialSelectGiveUp(int);
/* 80A9A184 */ BOOL _cutTutrialSelectGiveUp_Init(int const&);
/* 80A9A18C */ BOOL _cutTutrialSelectGiveUp_Main(int const&);
/* 80A9A288 */ BOOL cutTutrialGiveUp(int);
/* 80A9A31C */ BOOL _cutTutrialGiveUp_Init(int const&);
/* 80A9A324 */ BOOL _cutTutrialGiveUp_Main(int const&);
/* 80A9A360 */ BOOL cutTutrialContinue(int);
/* 80A9A3F4 */ BOOL _cutTutrialContinue_Init(int const&);
/* 80A9A3FC */ BOOL _cutTutrialContinue_Main(int const&);
/* 80A9A438 */ BOOL cutTutrialCaution(int);
/* 80A9A4CC */ BOOL _cutTutrialCaution_Init(int const&);
/* 80A9A4D4 */ BOOL _cutTutrialCaution_Main(int const&);
/* 80A9B714 */ daNpc_Pachi_Maro_c(
daNpcT_faceMotionAnmData_c const* i_faceMotionAnmData,
daNpcT_motionAnmData_c const* i_motionAnmData,
daNpcT_MotionSeqMngr_c::sequenceStepData_c const* i_faceMotionSequenceData,
int i_faceMotionStepNum,
daNpcT_MotionSeqMngr_c::sequenceStepData_c const* i_motionSequenceData,
int i_motionStepNum,
daNpcT_evtData_c const* i_evtData,
char** i_arcNames)
: daNpcT_c(i_faceMotionAnmData, i_motionAnmData, i_faceMotionSequenceData,
i_faceMotionStepNum, i_motionSequenceData, i_motionStepNum, i_evtData,
i_arcNames) {
OS_REPORT("|%06d:%x|daNpc_Pachi_Maro_c -> コンストラクト\n", g_Counter.mCounter0, this);
}
/* 80A9B7E0 */ u16 getEyeballMaterialNo() { return MAT_MARO_EYBALL_M; }
/* 80A9B7E8 */ s32 getHeadJointNo() { return JNT_HEAD; }
/* 80A9B7F0 */ s32 getNeckJointNo() { return JNT_NECK; }
/* 80A9B7F8 */ s32 getBackboneJointNo() { return JNT_BACKBONE1; }
/* 80A9B800 */ BOOL checkChangeJoint(int i_joint) { return i_joint == JNT_HEAD; }
/* 80A9B810 */ BOOL checkRemoveJoint(int i_joint) { return i_joint == JNT_MOUTH; }
u32 getFlowNodeNo() {
u16 nodeNo = home.angle.x;
u32 rv;
if (nodeNo == 0xffff) {
rv = -1;
} else {
rv = nodeNo;
}
return rv;
}
u8 getPathID() { return (fopAcM_GetParam(this) & 0xFF00) >> 8; }
u8 getBitSW() { return (fopAcM_GetParam(this) & 0xFF0000) >> 16; }
u8 getMaxNumItem() { return (fopAcM_GetParam(this) & 0xF000000) >> 24; }
u8 getGroupId() { return (fopAcM_GetParam(this) & 0xF0000000) >> 28; }
void talkOff() { mTalk = 0; }
void setTagPos(cXyz const& i_pos) { mTagPos = i_pos; }
void setLookPos(cXyz const& i_pos) { mLookPos = i_pos; }
void setFMotion_None() { mFMotion = 0; }
void setFMotion_Niramu_to_Besu() { mFMotion = 1; }
void setFMotion_LookNone() { mFMotion = 2; }
static char* mCutNameList[11];
static u8 mCutList[132];
static cutFunc mCutList[11];
private:
/* 0x568 */ u8 field_0x568[0xfcc - 0x568];
/* 0xE40 */ NPC_PACHI_MARO_HIO_CLASS* mpHIO;
/* 0xE44 */ dCcD_Cyl mCyl;
/* 0xF80 */ u8 mType;
/* 0xF82 */ u16 mPrevEvtNo;
/* 0xF84 */ u8 mTalk;
/* 0xF85 */ u8 field_0xf85;
/* 0xF86 */ u8 mFMotion;
/* 0xF88 */ cXyz mTagPos;
/* 0xF94 */ cXyz mLookPos;
/* 0xFA0 */ daNpcT_ActorMngr_c mActorMngrs[2];
/* 0xFB0 */ actionFunc mNextAction;
/* 0xFBC */ actionFunc mAction;
/* 0xFC8 */ u8 field_0xfc8;
};
STATIC_ASSERT(sizeof(daNpc_Pachi_Maro_c) == 0xfcc);
class daNpc_Pachi_Maro_Param_c {
public:
/* 80A9B820 */ ~daNpc_Pachi_Maro_Param_c();
static u8 const m[144];
};
#endif /* D_A_NPC_PACHI_MARO_H */

View File

@ -10,120 +10,225 @@
*
* @details
*
*/
class daNpc_Pachi_Taro_c : public fopAc_ac_c {
*/
struct daNpc_Pachi_Taro_HIOParam {
/* 0x0 */ daNpcT_HIOParam common;
};
class daNpc_Pachi_Taro_Param_c {
public:
/* 80AA1598 */ virtual ~daNpc_Pachi_Taro_Param_c() {}
static daNpc_Pachi_Taro_HIOParam const m;
};
#if DEBUG
class daNpc_Pachi_Taro_HIO_c : public mDoHIO_entry_c {
public:
daNpc_Pachi_Taro_HIO_c();
void listenPropertyEvent(const JORPropertyEvent*);
void genMessage(JORMContext*);
/* 0x8 */ daNpc_Pachi_Taro_HIOParam m;
};
#define NPC_PACHI_TARO_HIO_CLASS daNpc_Pachi_Taro_HIO_c
#else
#define NPC_PACHI_TARO_HIO_CLASS daNpc_Pachi_Taro_Param_c
#endif
class daNpc_Pachi_Taro_c : public daNpcT_c {
public:
enum Material {
/* 0x0 */ MAT_SC_EYE,
/* 0x1 */ MAT_TARO_BODY_M,
/* 0x2 */ MAT_TARO_EYBALL_M,
/* 0x3 */ MAT_TARO_FACE_M,
};
enum Joint {
/* 0x00 */ JNT_CENTER,
/* 0x01 */ JNT_BACKBONE1,
/* 0x02 */ JNT_BACKBONE2,
/* 0x03 */ JNT_NECK,
/* 0x04 */ JNT_HEAD,
/* 0x05 */ JNT_CHINE,
/* 0x06 */ JNT_HEADBAND,
/* 0x07 */ JNT_MOUTH,
/* 0x08 */ JNT_SHOULDERL,
/* 0x09 */ JNT_ARML1,
/* 0x0A */ JNT_ARML2,
/* 0x0B */ JNT_HANDL,
/* 0x0C */ JNT_SHOULDERR,
/* 0x0D */ JNT_ARMR1,
/* 0x0E */ JNT_ARMR2,
/* 0x0F */ JNT_HANDR,
/* 0x10 */ JNT_WAIST,
/* 0x11 */ JNT_LEGL1,
/* 0x12 */ JNT_LEGL2,
/* 0x13 */ JNT_FOOTL,
/* 0x14 */ JNT_LEGR1,
/* 0x15 */ JNT_LEGR2,
/* 0x16 */ JNT_FOOTR,
/* 0x17 */ JNT_SKART1,
/* 0x18 */ JNT_SKART2,
};
typedef int (daNpc_Pachi_Taro_c::*actionFunc)(void*);
typedef int (daNpc_Pachi_Taro_c::*cutFunc)(int);
/* 80A9C28C */ ~daNpc_Pachi_Taro_c();
/* 80A9C3C4 */ void create();
/* 80A9C69C */ void CreateHeap();
/* 80A9CBD8 */ void Delete();
/* 80A9CC0C */ void Execute();
/* 80A9CC2C */ void Draw();
/* 80A9CCC0 */ void createHeapCallBack(fopAc_ac_c*);
/* 80A9CCE0 */ void ctrlJointCallBack(J3DJoint*, int);
/* 80A9CD38 */ bool getType();
/* 80A9CD40 */ void isDelete();
/* 80A9C3C4 */ cPhs__Step create();
/* 80A9C69C */ int CreateHeap();
/* 80A9CBD8 */ int Delete();
/* 80A9CC0C */ int Execute();
/* 80A9CC2C */ int Draw();
/* 80A9CCC0 */ static int createHeapCallBack(fopAc_ac_c*);
/* 80A9CCE0 */ static int ctrlJointCallBack(J3DJoint*, int);
/* 80A9CD38 */ u8 getType();
/* 80A9CD40 */ BOOL isDelete();
/* 80A9CD60 */ void reset();
/* 80A9CF10 */ void afterJntAnm(int);
/* 80A9CF9C */ void setParam();
/* 80A9D098 */ bool checkChangeEvt();
/* 80A9D098 */ BOOL checkChangeEvt();
/* 80A9D0A0 */ void setAfterTalkMotion();
/* 80A9D164 */ void srchActors();
/* 80A9D27C */ void srchDistTag1();
/* 80A9D2A8 */ void _srch_DistTag1_main(void*, void*);
/* 80A9D310 */ void srchDistTag2();
/* 80A9D33C */ void _srch_DistTag2_main(void*, void*);
/* 80A9D3A4 */ void srchEscapeTag1();
/* 80A9D3D0 */ void _srch_EscapeTag1_main(void*, void*);
/* 80A9D438 */ void srchEscapeTag2();
/* 80A9D464 */ void _srch_EscapeTag2_main(void*, void*);
/* 80A9D4CC */ void evtTalk();
/* 80A9D5D0 */ void evtCutProc();
/* 80A9D27C */ fopAc_ac_c* srchDistTag1();
/* 80A9D2A8 */ static void* _srch_DistTag1_main(void*, void*);
/* 80A9D310 */ fopAc_ac_c* srchDistTag2();
/* 80A9D33C */ static void* _srch_DistTag2_main(void*, void*);
/* 80A9D3A4 */ fopAc_ac_c* srchEscapeTag1();
/* 80A9D3D0 */ static void* _srch_EscapeTag1_main(void*, void*);
/* 80A9D438 */ fopAc_ac_c* srchEscapeTag2();
/* 80A9D464 */ static void* _srch_EscapeTag2_main(void*, void*);
/* 80A9D4CC */ BOOL evtTalk();
/* 80A9D5D0 */ BOOL evtCutProc();
/* 80A9D698 */ void action();
/* 80A9D840 */ void beforeMove();
/* 80A9D8B8 */ void setAttnPos();
/* 80A9DB0C */ void setCollision();
/* 80A9DC14 */ bool drawDbgInfo();
/* 80A9DC14 */ int drawDbgInfo();
/* 80A9DC1C */ void drawOtherMdl();
/* 80A9DD24 */ void selectAction();
/* 80A9DDA0 */ void chkAction(int (daNpc_Pachi_Taro_c::*)(void*));
/* 80A9DDCC */ void setAction(int (daNpc_Pachi_Taro_c::*)(void*));
/* 80A9DE74 */ void wait(void*);
/* 80A9DD24 */ BOOL selectAction();
/* 80A9DDA0 */ BOOL chkAction(actionFunc);
/* 80A9DDCC */ BOOL setAction(actionFunc);
/* 80A9DE74 */ int wait(void*);
/* 80A9E154 */ void setMesPat();
/* 80A9E224 */ void _turn_to_link(s16);
/* 80A9E270 */ void _turn_pos(cXyz const&, s16);
/* 80A9E2CC */ void _turn_pos(cXyz const&);
/* 80A9E224 */ BOOL _turn_to_link(s16);
/* 80A9E270 */ BOOL _turn_pos(cXyz const&, s16);
/* 80A9E2CC */ BOOL _turn_pos(cXyz const&);
/* 80A9E30C */ void talk_cancel();
/* 80A9E364 */ void watch_tutrial();
/* 80A9E3E4 */ void chkDistTag();
/* 80A9E458 */ void chkEscapeTag();
/* 80A9E56C */ void chkTarget();
/* 80A9E3E4 */ u16 chkDistTag();
/* 80A9E458 */ u16 chkEscapeTag();
/* 80A9E56C */ u16 chkTarget();
/* 80A9E700 */ void clr_tagHit();
/* 80A9E778 */ void allTagPosSet(cXyz const&);
/* 80A9E80C */ void allLookPosSet(cXyz const&);
/* 80A9E8A0 */ void talk(void*);
/* 80A9E910 */ void evtEndProc();
/* 80A9E9E8 */ void cutTutrialBegin(int);
/* 80A9EAA0 */ void _cutTutrialBegin_Init(int const&);
/* 80A9EB3C */ void _cutTutrialBegin_Main(int const&);
/* 80A9EC5C */ void cutTutrialBegin_Skip(int);
/* 80A9ECF0 */ void _cutTutrialBegin_Skip_Init(int const&);
/* 80A9ED28 */ void _cutTutrialBegin_Skip_Main(int const&);
/* 80A9ED40 */ void cutTutrialClear(int);
/* 80A9EDD4 */ void _cutTutrialClear_Init(int const&);
/* 80A9EEBC */ void _cutTutrialClear_Main(int const&);
/* 80A9EFC0 */ void cutTalk(int);
/* 80A9F0DC */ void _cutTalk_Init(int const&);
/* 80A9F188 */ void _cutTalk_Main(int const&, int const&);
/* 80A9F324 */ void cutTalk2(int);
/* 80A9F440 */ void _cutTalk2_Init(int const&);
/* 80A9F4EC */ void _cutTalk2_Main(int const&, int const&);
/* 80A9F688 */ void cut1stHit_KakasiBody(int);
/* 80A9F71C */ void _cut1stHit_KakasiBody_Init(int const&);
/* 80A9F83C */ void _cut1stHit_KakasiBody_Main(int const&);
/* 80A9F9C4 */ void cutTutrialSelectGiveUp(int);
/* 80A9FA58 */ void _cutTutrialSelectGiveUp_Init(int const&);
/* 80A9FB08 */ void _cutTutrialSelectGiveUp_Main(int const&);
/* 80A9FCEC */ void cutTutrialGiveUp(int);
/* 80A9FD80 */ void _cutTutrialGiveUp_Init(int const&);
/* 80A9FE34 */ void _cutTutrialGiveUp_Main(int const&);
/* 80A9FFAC */ void cutTutrialCaution(int);
/* 80AA0040 */ void _cutTutrialCaution_Init(int const&);
/* 80AA0088 */ void _cutTutrialCaution_Main(int const&);
/* 80AA0108 */ void cutTutrialContinue(int);
/* 80AA019C */ bool _cutTutrialContinue_Init(int const&);
/* 80AA01A4 */ void _cutTutrialContinue_Main(int const&);
/* 80AA148C */ daNpc_Pachi_Taro_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**);
/* 80AA1558 */ u16 getEyeballMaterialNo();
/* 80AA1560 */ s32 getHeadJointNo();
/* 80AA1568 */ s32 getNeckJointNo();
/* 80AA1570 */ bool getBackboneJointNo();
/* 80AA1578 */ void checkChangeJoint(int);
/* 80AA1588 */ void checkRemoveJoint(int);
/* 80A9E8A0 */ int talk(void*);
int test(void*);
/* 80A9E910 */ BOOL evtEndProc();
/* 80A9E9E8 */ int cutTutrialBegin(int);
/* 80A9EAA0 */ int _cutTutrialBegin_Init(int const&);
/* 80A9EB3C */ int _cutTutrialBegin_Main(int const&);
/* 80A9EC5C */ int cutTutrialBegin_Skip(int);
/* 80A9ECF0 */ int _cutTutrialBegin_Skip_Init(int const&);
/* 80A9ED28 */ int _cutTutrialBegin_Skip_Main(int const&);
/* 80A9ED40 */ int cutTutrialClear(int);
/* 80A9EDD4 */ int _cutTutrialClear_Init(int const&);
/* 80A9EEBC */ int _cutTutrialClear_Main(int const&);
/* 80A9EFC0 */ int cutTalk(int);
/* 80A9F0DC */ int _cutTalk_Init(int const&);
/* 80A9F188 */ int _cutTalk_Main(int const&, int const&);
/* 80A9F324 */ int cutTalk2(int);
/* 80A9F440 */ int _cutTalk2_Init(int const&);
/* 80A9F4EC */ int _cutTalk2_Main(int const&, int const&);
/* 80A9F688 */ int cut1stHit_KakasiBody(int);
/* 80A9F71C */ int _cut1stHit_KakasiBody_Init(int const&);
/* 80A9F83C */ int _cut1stHit_KakasiBody_Main(int const&);
/* 80A9F9C4 */ int cutTutrialSelectGiveUp(int);
/* 80A9FA58 */ int _cutTutrialSelectGiveUp_Init(int const&);
/* 80A9FB08 */ int _cutTutrialSelectGiveUp_Main(int const&);
/* 80A9FCEC */ int cutTutrialGiveUp(int);
/* 80A9FD80 */ int _cutTutrialGiveUp_Init(int const&);
/* 80A9FE34 */ int _cutTutrialGiveUp_Main(int const&);
/* 80A9FFAC */ int cutTutrialCaution(int);
/* 80AA0040 */ int _cutTutrialCaution_Init(int const&);
/* 80AA0088 */ int _cutTutrialCaution_Main(int const&);
/* 80AA0108 */ int cutTutrialContinue(int);
/* 80AA019C */ int _cutTutrialContinue_Init(int const&);
/* 80AA01A4 */ int _cutTutrialContinue_Main(int const&);
/* 80AA148C */ daNpc_Pachi_Taro_c(
daNpcT_faceMotionAnmData_c const* i_faceMotionAnmData,
daNpcT_motionAnmData_c const* i_motionAnmData,
daNpcT_MotionSeqMngr_c::sequenceStepData_c const* i_faceMotionSequenceData,
int i_faceMotionStepNum,
daNpcT_MotionSeqMngr_c::sequenceStepData_c const* i_motionSequenceData,
int i_motionStepNum,
daNpcT_evtData_c const* i_evtData,
char** i_arcNames)
: daNpcT_c(i_faceMotionAnmData, i_motionAnmData, i_faceMotionSequenceData,
i_faceMotionStepNum, i_motionSequenceData, i_motionStepNum, i_evtData,
i_arcNames) {
OS_REPORT("|%06d:%x|daNpc_Pachi_Taro_c -> コンストラクト\n", g_Counter.mCounter0, this);
}
/* 80AA1558 */ u16 getEyeballMaterialNo() { return MAT_TARO_EYBALL_M; }
/* 80AA1560 */ s32 getHeadJointNo() { return JNT_HEAD; }
/* 80AA1568 */ s32 getNeckJointNo() { return JNT_NECK; }
/* 80AA1570 */ s32 getBackboneJointNo() { return JNT_BACKBONE1; }
/* 80AA1578 */ BOOL checkChangeJoint(int i_joint) { return i_joint == JNT_HEAD; }
/* 80AA1588 */ BOOL checkRemoveJoint(int i_joint) { return i_joint == JNT_MOUTH; }
u32 getFlowNodeNo() {
u16 nodeNo = home.angle.x;
u32 rv;
if (nodeNo == 0xffff) {
rv = -1;
} else {
rv = nodeNo;
}
return rv;
}
u8 getPathID() { return (fopAcM_GetParam(this) & 0xFF00) >> 8; }
u8 getBitSW() { return (fopAcM_GetParam(this) & 0xFF0000) >> 16; }
u8 getBitSW2() { return (fopAcM_GetParam(this) & 0xFF000000) >> 24; }
void clrMesPat() { mMesPat = -1; }
void setTagPos(cXyz const& i_pos) { mTagPos = i_pos; }
void setLookPos(cXyz const& i_pos) { mLookPos = i_pos; }
static char* mCutNameList[11];
static u8 mCutList[132];
static cutFunc mCutList[11];
private:
/* 0x0568 */ u8 field_0x568[0xfe8 - 0x568];
/* 0x0E40 */ NPC_PACHI_TARO_HIO_CLASS* mpHIO;
/* 0x0E44 */ J3DModel* mpModels[2];
/* 0x0E4C */ dCcD_Cyl mCyl;
/* 0x0F88 */ u8 mType;
/* 0x0F8C */ daNpcT_ActorMngr_c mActorMngrs[6];
/* 0x0FBC */ actionFunc mNextAction;
/* 0x0FC8 */ actionFunc mAction;
/* 0x0FD4 */ int field_0xfd4;
/* 0x0FD8 */ u8 field_0xfd8[0xfda - 0xfd8];
/* 0x0FDA */ s16 field_0xfda;
/* 0x0FDC */ u16 mPrevEvtNo;
/* 0x0FDE */ u8 field_0xfde;
/* 0x0FDF */ u8 field_0xfdf;
/* 0x0FE0 */ u8 field_0xfe0;
/* 0x0FE1 */ u8 mHitMsgIdx;
/* 0x0FE2 */ u8 field_0xfe2;
/* 0x0FE3 */ u8 field_0xfe3;
/* 0x0FE4 */ u8 field_0xfe4[0xfe8 - 0xfe4];
/* 0x0FE8 */ s8 mMesPat;
/* 0x0FEC */ u8 field_0xfec[0x100c - 0xfec];
/* 0x0FEC */ cXyz mTagPos;
/* 0x0FF8 */ cXyz mLookPos;
/* 0x1004 */ u8 field_0x1004;
/* 0x1005 */ u8 field_0x1005;
/* 0x1006 */ u8 field_0x1006;
/* 0x1007 */ u8 field_0x1007;
/* 0x1008 */ u8 field_0x1008;
};
STATIC_ASSERT(sizeof(daNpc_Pachi_Taro_c) == 0x100c);
class daNpc_Pachi_Taro_Param_c {
public:
/* 80AA1598 */ ~daNpc_Pachi_Taro_Param_c();
static u8 const m[140];
};
#endif /* D_A_NPC_PACHI_TARO_H */

View File

@ -20,6 +20,16 @@ public:
return retVal;
}
BOOL isDistChkTag1() { return field_0x6E0 == 0; }
BOOL isDistChkTag2() { return field_0x6E0 == 1; }
BOOL isEscapeChkTag1() { return field_0x6E0 == 2; }
BOOL isEscapeChkTag2() { return field_0x6E0 == 3; }
BOOL is_CoHit() const { return field_0x6E4; }
void clr_CoHit() {
mCyl.ClrCoHit();
field_0x6E4 = 0;
}
/* 0x568 */ dCcD_Cyl mCyl;
/* 0x6A4 */ dCcD_Stts mStts;
/* 0x6E0 */ u32 field_0x6E0;

View File

@ -1054,7 +1054,7 @@ BOOL daNpc_Pachi_Besu_c::wait(void* param_1) {
switch (mMode) {
case MODE_ENTER:
case MODE_INIT:
field_0xf81 = 0;
mTalk = 0;
if (!mStagger.checkStagger()) {
mFaceMotionSeqMngr.setNo(FACE_MOT_NONE, -1.0f, FALSE, 0);
@ -1063,7 +1063,7 @@ BOOL daNpc_Pachi_Besu_c::wait(void* param_1) {
}
// fallthrough
case MODE_RUN:
field_0xf81 = 0;
mTalk = 0;
if (!mStagger.checkStagger()) {
fopAc_ac_c* actor_p = mPlayerActorMngr.getActorP();
@ -1446,8 +1446,8 @@ BOOL daNpc_Pachi_Besu_c::_cutTutrialSelectGiveUp_Main(int const& i_cutId) {
switch (i_cutId) {
case 10:
if (_turn_pos(field_0xf84)) {
mJntAnm.lookPos(&field_0xf90, 1);
if (_turn_pos(mTagPos)) {
mJntAnm.lookPos(&mLookPos, 1);
rv = TRUE;
}
break;
@ -1531,7 +1531,7 @@ BOOL daNpc_Pachi_Besu_c::_cutTutrialContinue_Init(int const& i_cutId) {
BOOL daNpc_Pachi_Besu_c::_cutTutrialContinue_Main(int const& i_cutId) {
switch (i_cutId) {
case 10:
_turn_pos(field_0xf84, 0x1000);
_turn_pos(mTagPos, 0x1000);
break;
}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff