diff options
Diffstat (limited to 'include')
| -rw-r--r-- | include/d/actor/d_a_npc.h | 10 | ||||
| -rw-r--r-- | include/d/actor/d_a_npc_moi.h | 225 |
2 files changed, 171 insertions, 64 deletions
diff --git a/include/d/actor/d_a_npc.h b/include/d/actor/d_a_npc.h index 67adba2cc8..faa906644a 100644 --- a/include/d/actor/d_a_npc.h +++ b/include/d/actor/d_a_npc.h @@ -418,13 +418,14 @@ public: bool chkReverse() { return mDirection == 1; } - int getNumPnts() { - dPath* path = mPathInfo; - return path->m_num; - } + int getNumPnts() { return mPathInfo->m_num; } + + void setIdx(int i_idx) { mIdx = i_idx; } const u16 getIdx() { return mIdx; } + dPath* getPathInfo() { return mPathInfo; } + void onReverse() { mDirection = 1; field_0x1E = 1; @@ -1154,6 +1155,7 @@ STATIC_ASSERT(sizeof(daNpcF_c) == 0xB48); BOOL daNpcF_chkEvtBit(u32 i_idx); void daNpcF_onEvtBit(u32 i_idx); BOOL daNpcF_chkTmpBit(u32 i_idx); +void daNpcF_onTmpBit(u32 i_idx); void daNpcF_offTmpBit(u32 i_idx); u8 daNpcF_getDistTableIdx(int param_0, int param_1); void daNpcF_clearMessageTmpBit(); diff --git a/include/d/actor/d_a_npc_moi.h b/include/d/actor/d_a_npc_moi.h index e0ed85d64a..b0633692ce 100644 --- a/include/d/actor/d_a_npc_moi.h +++ b/include/d/actor/d_a_npc_moi.h @@ -11,94 +11,199 @@ * @details * */ -class daNpc_Moi_c : public fopAc_ac_c { + +struct daNpc_Moi_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 */ u8 field_0x54[24]; + /* 0x6C */ f32 field_0x6c; + /* 0x70 */ u8 field_0x70[40]; + /* 0x98 */ s16 field_0x98; + /* 0x9A */ s16 field_0x9a; + /* 0x9C */ s16 field_0x9c; + /* 0x9E */ s16 field_0x9e; + /* 0xA0 */ s16 field_0xa0; + /* 0xA2 */ s16 field_0xa2; + /* 0xA4 */ f32 field_0xa4; + /* 0xA8 */ u8 field_0xa8[12]; + /* 0xB4 */ f32 field_0xb4; + /* 0xB8 */ f32 field_0xb8; +}; + +class daNpc_Moi_Param_c { +public: + /* 80A7AE84 */ virtual ~daNpc_Moi_Param_c() {}; + + static daNpc_Moi_HIOParam const m; +}; + +class daNpc_Moi_HIO_c +#ifdef DEBUG + : public mDoHIO_entry_c +#endif +{ +public: + void genMessage(JORMContext*); +}; + +class daNpc_Moi_c : public daNpcT_c { public: + typedef int (daNpc_Moi_c::*cutFunc)(int); + typedef int (daNpc_Moi_c::*actionFunc)(void*); + + enum Type { + TYPE_0, + TYPE_1, + TYPE_2, + TYPE_3, + TYPE_4, + TYPE_5, + TYPE_6, + }; + /* 80A73F4C */ ~daNpc_Moi_c(); - /* 80A74150 */ void create(); - /* 80A74474 */ void CreateHeap(); - /* 80A749F8 */ void Delete(); - /* 80A74A2C */ void Execute(); - /* 80A74A4C */ void Draw(); - /* 80A74B80 */ void createHeapCallBack(fopAc_ac_c*); - /* 80A74BA0 */ void ctrlJointCallBack(J3DJoint*, int); - /* 80A74BF8 */ void getType(); - /* 80A74C6C */ void isDelete(); + /* 80A74150 */ int create(); + /* 80A74474 */ int CreateHeap(); + /* 80A749F8 */ int Delete(); + /* 80A74A2C */ int Execute(); + /* 80A74A4C */ int Draw(); + /* 80A74B80 */ static int createHeapCallBack(fopAc_ac_c*); + /* 80A74BA0 */ static int ctrlJointCallBack(J3DJoint*, int); + /* 80A74BF8 */ u8 getType(); + /* 80A74C6C */ BOOL isDelete(); /* 80A74D8C */ void reset(); - /* 80A7513C */ void chkMoiN(); + /* 80A7513C */ BOOL chkMoiN(); /* 80A75160 */ void afterJntAnm(int); /* 80A751E4 */ void setParam(); - /* 80A75460 */ void checkChangeEvt(); + /* 80A75460 */ BOOL checkChangeEvt(); /* 80A75514 */ void setAfterTalkMotion(); /* 80A755C8 */ void srchActors(); - /* 80A75664 */ void evtTalk(); - /* 80A75704 */ void evtCutProc(); + /* 80A75664 */ BOOL evtTalk(); + /* 80A75704 */ BOOL evtCutProc(); /* 80A757CC */ void action(); /* 80A759F4 */ void beforeMove(); /* 80A75AB8 */ void setAttnPos(); /* 80A75E68 */ void setCollision(); - /* 80A760E0 */ bool drawDbgInfo(); + /* 80A760E0 */ int drawDbgInfo(); /* 80A760E8 */ void drawOtherMdl(); - /* 80A762A8 */ void afterSetMotionAnm(int, int, f32, int); + /* 80A762A8 */ bool afterSetMotionAnm(int, int, f32, int); /* 80A762CC */ void changeAnm(int*, int*); /* 80A7633C */ void changeBck(int*, int*); /* 80A76384 */ void changeBtp(int*, int*); /* 80A7643C */ void changeBtk(int*, int*); - /* 80A764B0 */ void selectAction(); - /* 80A765CC */ void chkAction(int (daNpc_Moi_c::*)(void*)); - /* 80A765F8 */ void setAction(int (daNpc_Moi_c::*)(void*)); - /* 80A766A0 */ void chkPlayerGetWoodShield(); + /* 80A764B0 */ int selectAction(); + /* 80A765CC */ BOOL chkAction(int (daNpc_Moi_c::*)(void*)); + /* 80A765F8 */ int setAction(int (daNpc_Moi_c::*)(void*)); + /* 80A766A0 */ BOOL chkPlayerGetWoodShield(); /* 80A766DC */ void setSSlash(int); - /* 80A76888 */ void chkPullOutSw(); + /* 80A76888 */ BOOL chkPullOutSw(); /* 80A768FC */ void pullOutSw(); - /* 80A76954 */ void chkSetInSw(); + /* 80A76954 */ BOOL chkSetInSw(); /* 80A769C8 */ void setInSw(); /* 80A76A20 */ void setSwAT(); /* 80A76AFC */ void torch(); - /* 80A76C7C */ void injuryCheck(); - /* 80A76E10 */ void injuryTurn(cXyz); - /* 80A76F3C */ void injuryWalk(); - /* 80A770FC */ void poise(); - /* 80A77740 */ void cutDeliveredSw(int); - /* 80A77BA0 */ void cutAppearanceMoi(int); - /* 80A7838C */ void cutConversationWithUri(int); - /* 80A785FC */ void cutFindWolf(int); - /* 80A789D8 */ void wait(void*); - /* 80A78E0C */ void walk(void*); - /* 80A78FF4 */ void walkOnEggshell(void*); - /* 80A794C0 */ void rest(void*); - /* 80A79608 */ void talk(void*); - /* 80A7AC88 */ daNpc_Moi_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**); - /* 80A7AE0C */ void getEyeballMaterialNo(); - /* 80A7AE3C */ s32 getHeadJointNo(); - /* 80A7AE44 */ s32 getNeckJointNo(); - /* 80A7AE4C */ bool getBackboneJointNo(); - /* 80A7AE54 */ void checkChangeJoint(int); - /* 80A7AE64 */ void checkRemoveJoint(int); - /* 80A7AE74 */ s32 getFootLJointNo(); - /* 80A7AE7C */ s32 getFootRJointNo(); - - static void* mCutNameList[5]; - static u8 mCutList[60]; + /* 80A76C7C */ int injuryCheck(); + /* 80A76E10 */ int injuryTurn(cXyz); + /* 80A76F3C */ int injuryWalk(); + /* 80A770FC */ int poise(); + /* 80A77740 */ int cutDeliveredSw(int); + /* 80A77BA0 */ int cutAppearanceMoi(int); + /* 80A7838C */ int cutConversationWithUri(int); + /* 80A785FC */ int cutFindWolf(int); + /* 80A789D8 */ int wait(void*); + /* 80A78E0C */ int walk(void*); + /* 80A78FF4 */ int walkOnEggshell(void*); + /* 80A794C0 */ int rest(void*); + /* 80A79608 */ int talk(void*); + /* 80A7AC88 */ daNpc_Moi_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) {} + /* 80A7AE0C */ s32 getEyeballMaterialNo() { return chkMoiN() ? 4 : 2; } + /* 80A7AE3C */ s32 getHeadJointNo() { return 4; } + /* 80A7AE44 */ s32 getNeckJointNo() { return 3; } + /* 80A7AE4C */ s32 getBackboneJointNo() { return 1; } + /* 80A7AE54 */ BOOL checkChangeJoint(int param_0) { return param_0 == 4; } + /* 80A7AE64 */ BOOL checkRemoveJoint(int param_0) { return param_0 == 8; } + /* 80A7AE74 */ s32 getFootLJointNo() { return 22; } + /* 80A7AE7C */ s32 getFootRJointNo() { return 25; } + int getFlowNodeNo() { + u16 nodeNo = home.angle.x; + if (nodeNo == 0xffff) { + return -1; + } + return nodeNo; + } + u8 getBitSW() { return (fopAcM_GetParam(this) & 0xff0000) >> 16; } bool chkSFight() { return field_0x166b == 1; } + u8 getPathID() { return (fopAcM_GetParam(this) & 0xff00) >> 8; } + + static const char* mCutNameList[5]; + static cutFunc mCutList[5]; private: - /* 0x0568 */ u8 field_0x568[0x166B - 0x568]; + /* 0x0E40 */ daNpc_Moi_HIO_c* field_0xe40; + /* 0x0E44 */ J3DModel* mpModel[6]; + /* 0x0E5C */ dCcD_Cyl mCyl[4]; + /* 0x134C */ dCcD_Cyl mCyl2; + /* 0x1488 */ dCcD_Sph mSph; + /* 0x15C0 */ fpc_ProcID field_0x15c0; + /* 0x15C4 */ u8 mType; + /* 0x15C8 */ daNpcT_ActorMngr_c mActorMngr[4]; + /* 0x15E8 */ daNpcT_Path_c mPath; + /* 0x1610 */ actionFunc field_0x1610; + /* 0x161C */ actionFunc field_0x161c; + /* 0x1628 */ cXyz field_0x1628; + /* 0x1634 */ csXyz field_0x1634[3]; + /* 0x1648 */ int field_0x1648; + /* 0x164C */ int field_0x164c; + /* 0x1650 */ int field_0x1650; + /* 0x1654 */ int field_0x1654; + /* 0x1658 */ int field_0x1658; + /* 0x165C */ int field_0x165c; + /* 0x1660 */ int field_0x1660; + /* 0x1664 */ s16 field_0x1664; + /* 0x1666 */ u8 field_0x1666; + /* 0x1667 */ u8 field_0x1667; + /* 0x1668 */ u8 field_0x1668; + /* 0x1669 */ u8 field_0x1669; + /* 0x166A */ u8 field_0x166a; /* 0x166B */ u8 field_0x166b; - /* 0x166C */ u8 field_0x166c[0x1674 - 0x166C]; + /* 0x166C */ u8 field_0x166c; + /* 0x166D */ u8 field_0x166d; + /* 0x166E */ u8 field_0x166e; + /* 0x166F */ u8 field_0x166f; + /* 0x1670 */ int field_0x1670; }; STATIC_ASSERT(sizeof(daNpc_Moi_c) == 0x1674); -class daNpc_Moi_Param_c { -public: - /* 80A7AE84 */ ~daNpc_Moi_Param_c(); - - static u8 const m[188]; -}; - - #endif /* D_A_NPC_MOI_H */ |
