diff options
| author | TakaRikka <38417346+TakaRikka@users.noreply.github.com> | 2025-09-14 00:55:16 -0700 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-09-14 10:55:16 +0300 |
| commit | e0c9d16332f7b46ca42eaccef8318ccbfabd106c (patch) | |
| tree | 36a67a71250fb1b048608680b9b93fc215fb3859 /include/d | |
| parent | f0d0818cef8970c35cb40ecb1d7b3494312dab24 (diff) | |
npc_kkri done (#2655)
Diffstat (limited to 'include/d')
| -rw-r--r-- | include/d/actor/d_a_npc.h | 2 | ||||
| -rw-r--r-- | include/d/actor/d_a_npc_kkri.h | 142 |
2 files changed, 91 insertions, 53 deletions
diff --git a/include/d/actor/d_a_npc.h b/include/d/actor/d_a_npc.h index f83dd3e10b..c4e4b662b5 100644 --- a/include/d/actor/d_a_npc.h +++ b/include/d/actor/d_a_npc.h @@ -746,7 +746,7 @@ public: static dCcD_SrcSph mCcDSph; static fopAc_ac_c* mFindActorPtrs[50]; static s16 mSrchName; - static s32 mFindCount; + static int mFindCount; enum Mode { /* 0 */ MODE_ENTER, diff --git a/include/d/actor/d_a_npc_kkri.h b/include/d/actor/d_a_npc_kkri.h index 6dbf9cbfe1..374cacec02 100644 --- a/include/d/actor/d_a_npc_kkri.h +++ b/include/d/actor/d_a_npc_kkri.h @@ -11,78 +11,116 @@ * @details * */ -class daNpc_Kkri_c : public fopAc_ac_c { +class daNpc_Kkri_c : public daNpcT_c { public: - /* 8054F3AC */ ~daNpc_Kkri_c(); - /* 8054F4F8 */ void create(); - /* 8054F7D0 */ void CreateHeap(); - /* 8054FC10 */ void Delete(); - /* 8054FC44 */ void Execute(); - /* 8054FC64 */ void Draw(); - /* 8054FD00 */ void createHeapCallBack(fopAc_ac_c*); - /* 8054FD20 */ void ctrlJointCallBack(J3DJoint*, int); - /* 8054FD78 */ void srchYm(void*, void*); - /* 8054FE20 */ void getType(); - /* 8054FE58 */ void isDelete(); + typedef int (daNpc_Kkri_c::*ActionFunc)(void*); + + /* 8054F4F8 */ int create(); + /* 8054F7D0 */ int CreateHeap(); + /* 8054FC10 */ int Delete(); + /* 8054FC44 */ int Execute(); + /* 8054FC64 */ int Draw(); + /* 8054FD00 */ static int createHeapCallBack(fopAc_ac_c*); + /* 8054FD20 */ static int ctrlJointCallBack(J3DJoint*, int); + /* 8054FD78 */ static void* srchYm(void*, void*); + /* 8054FE20 */ int getType(); + /* 8054FE58 */ int isDelete(); /* 8054FE8C */ void reset(); - /* 8054FFEC */ void checkChangeEvt(); - /* 805500A0 */ void setParam(); - /* 80550270 */ void setAfterTalkMotion(); /* 8055032C */ void srchActors(); - /* 80550398 */ void evtTalk(); - /* 80550438 */ void evtCutProc(); - /* 80550500 */ void action(); - /* 805505F8 */ void beforeMove(); - /* 805506BC */ void setAttnPos(); - /* 80550ADC */ void setCollision(); - /* 80550CA0 */ bool drawDbgInfo(); - /* 80550CA8 */ void selectAction(); - /* 80550D44 */ void chkAction(int (daNpc_Kkri_c::*)(void*)); - /* 80550D70 */ void setAction(int (daNpc_Kkri_c::*)(void*)); - /* 80550E18 */ void cutConversationAboutSoup(int); - /* 80550F70 */ void cutYmLook(int); - /* 80551084 */ void sleep(); - /* 805512E0 */ void wait(void*); - /* 80551538 */ void sitWait1(void*); - /* 80551A4C */ void fearWait(void*); - /* 80551DA4 */ void talk(void*); - /* 80553304 */ daNpc_Kkri_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**); - /* 805533E4 */ u16 getEyeballMaterialNo(); - /* 805533EC */ s32 getHeadJointNo(); - /* 805533F4 */ s32 getNeckJointNo(); - /* 805533FC */ bool getBackboneJointNo(); - /* 80553404 */ void checkChangeJoint(int); - /* 80553414 */ void checkRemoveJoint(int); + /* 80550CA8 */ int selectAction(); + /* 80550D44 */ BOOL chkAction(ActionFunc); + /* 80550D70 */ BOOL setAction(ActionFunc); + /* 80550E18 */ int cutConversationAboutSoup(int); + /* 80550F70 */ int cutYmLook(int); + /* 80551084 */ int sleep(); + /* 805512E0 */ int wait(void*); + /* 80551538 */ int sitWait1(void*); + /* 80551A4C */ int fearWait(void*); + /* 80551DA4 */ int talk(void*); + + /* 80553304 */ daNpc_Kkri_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_Kkri_c -> コンストラクト\n", g_Counter.mCounter0, this); + } + + /* 8054F3AC */ virtual ~daNpc_Kkri_c(); + /* 80553404 */ virtual BOOL checkChangeJoint(int i_jointNo) { return i_jointNo == 6; } + /* 80553414 */ virtual BOOL checkRemoveJoint(int i_jointNo) { return i_jointNo == 10; } + /* 805533FC */ virtual s32 getBackboneJointNo() { return 1; } + /* 805533F4 */ virtual s32 getNeckJointNo() { return 3; } + /* 805533EC */ virtual s32 getHeadJointNo() { return 4; } + /* 805533E4 */ virtual u16 getEyeballMaterialNo() { return 2; } + /* 805500A0 */ virtual void setParam(); + /* 8054FFEC */ virtual BOOL checkChangeEvt(); + /* 80550398 */ virtual BOOL evtTalk(); + /* 80550438 */ virtual BOOL evtCutProc(); + /* 80550270 */ virtual void setAfterTalkMotion(); + /* 80550500 */ virtual void action(); + /* 805505F8 */ virtual void beforeMove(); + /* 805506BC */ virtual void setAttnPos(); + /* 80550ADC */ virtual void setCollision(); + /* 80550CA0 */ virtual int drawDbgInfo(); + + int getFlowNodeNo() { + u16 prm = home.angle.x; + return prm == 0xFFFF ? -1 : prm; + } + + u8 getPathID() { return (fopAcM_GetParam(this) & 0xFF00) >> 8; } + u8 getBitSW() { return (fopAcM_GetParam(this) & 0xFF0000) >> 16; } + u8 getBitSW2() { return (fopAcM_GetParam(this) & 0xFF000000) >> 24; } MtxP getBd3Mtx() { - return mpMorf->getModel()->getAnmMtx(0x11); + return mpMorf[0]->getModel()->getAnmMtx(0x11); } + MtxP getBd2Mtx() { - return mpMorf->getModel()->getAnmMtx(6); + return mpMorf[0]->getModel()->getAnmMtx(6); } + MtxP getBd1Mtx() { - return mpMorf->getModel()->getAnmMtx(5); + return mpMorf[0]->getModel()->getAnmMtx(5); } - static void* mCutNameList[3]; - static u8 mCutList[36]; + static char* mCutNameList[3]; + static int (daNpc_Kkri_c::*mCutList[])(int); private: - /* 0x568 */ u8 field_0x568[0x578 - 0x568]; - /* 0x578 */ mDoExt_McaMorfSO* mpMorf; - /* 0x57C */ u8 field_0x57C[0xfdc - 0x57C]; + /* 0xE40 */ u8 field_0xE40[0xE44 - 0xE40]; + /* 0xE44 */ dCcD_Cyl mCcCyl; + /* 0xF80 */ u8 mType; + /* 0xF84 */ daNpcT_ActorMngr_c mActorMng[1]; + /* 0xF8C */ ActionFunc mSelectAction; + /* 0xF98 */ ActionFunc mAction; + /* 0xFA4 */ daNpcT_Path_c mPath; + /* 0xFCC */ int field_0xfcc; + /* 0xFD0 */ int field_0xfd0; + /* 0xFD4 */ u8 field_0xfd4; + /* 0xFD5 */ u8 field_0xfd5; + /* 0xFD6 */ u8 field_0xfd6; + /* 0xFD7 */ u8 field_0xfd7; + /* 0xFD8 */ u8 field_0xfd8; }; STATIC_ASSERT(sizeof(daNpc_Kkri_c) == 0xfdc); +struct daNpc_Kkri_HIOParam { + /* 0x00 */ daNpcT_HIOParam common; +}; + class daNpc_Kkri_Param_c { public: - /* 80553424 */ ~daNpc_Kkri_Param_c(); + /* 80553424 */ virtual ~daNpc_Kkri_Param_c() {} - static u8 const m[140]; + static const daNpc_Kkri_HIOParam m; }; |
