diff options
| author | YunataSavior <58997725+YunataSavior@users.noreply.github.com> | 2025-09-25 17:47:58 -0700 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-09-25 17:47:58 -0700 |
| commit | 083cea47701323232a86f89767489229aa96f982 (patch) | |
| tree | 478a4f1e989132060325b8192e7251654eb5c482 /include | |
| parent | 80626def0748f383d5bb5944e87f6c58ca852b74 (diff) | |
npc_seira, npc_seira2, b_gnd, ni, npc_ne OK (#2697)
* npc_seira 44% done
* npc_seira 73% done
* npc_seira matching
* npc_seira2 OK
* b_gnd OK
* d_a_ni OK
* npc_ne OK
* daAlink_c::setSyncHorse OK
* Thanks robojumper!
* Update daNpc_Seira_c::getType
Diffstat (limited to 'include')
| -rw-r--r-- | include/d/actor/d_a_b_gnd.h | 15 | ||||
| -rw-r--r-- | include/d/actor/d_a_npc_seira.h | 133 | ||||
| -rw-r--r-- | include/d/actor/d_a_npc_seira2.h | 125 |
3 files changed, 161 insertions, 112 deletions
diff --git a/include/d/actor/d_a_b_gnd.h b/include/d/actor/d_a_b_gnd.h index ebe3190a17..c8abbd2e0e 100644 --- a/include/d/actor/d_a_b_gnd.h +++ b/include/d/actor/d_a_b_gnd.h @@ -192,19 +192,4 @@ public: STATIC_ASSERT(sizeof(b_gnd_class) == 0x2790); -class daB_GND_HIO_c : public JORReflexible { -public: - /* 805F4A4C */ daB_GND_HIO_c(); - /* 80602230 */ virtual ~daB_GND_HIO_c() {} - - void genMessage(JORMContext*); - - /* 0x04 */ s8 no; - /* 0x08 */ f32 model_size; - /* 0x0C */ f32 field_0xc; - /* 0x10 */ f32 field_0x10; - /* 0x14 */ f32 field_0x14; - /* 0x18 */ f32 field_0x18; -}; - #endif /* D_A_B_GND_H */ diff --git a/include/d/actor/d_a_npc_seira.h b/include/d/actor/d_a_npc_seira.h index 6a77b7ccf1..846ea98d1b 100644 --- a/include/d/actor/d_a_npc_seira.h +++ b/include/d/actor/d_a_npc_seira.h @@ -2,6 +2,7 @@ #define D_A_NPC_SEIRA_H #include "d/actor/d_a_npc.h" +#include "d/d_shop_system.h" /** * @ingroup actors-npcs @@ -11,82 +12,114 @@ * @details * */ -class daNpc_Seira_c : public fopAc_ac_c { +class daNpc_Seira_c : public dShopSystem_c { public: + typedef int (daNpc_Seira_c::*cutFunc)(int); + typedef int (daNpc_Seira_c::*actionFunc)(void*); + /* 80ACB7CC */ ~daNpc_Seira_c(); - /* 80ACB918 */ void create(); - /* 80ACBBD4 */ void CreateHeap(); - /* 80ACC0FC */ void Delete(); - /* 80ACC130 */ void Execute(); - /* 80ACC21C */ void Draw(); - /* 80ACC2B0 */ void createHeapCallBack(fopAc_ac_c*); - /* 80ACC2D0 */ void ctrlJointCallBack(J3DJoint*, int); - /* 80ACC328 */ void getType(); - /* 80ACC424 */ void getFlowNodeNo(); - /* 80ACC440 */ void checkBottle(); - /* 80ACC4A8 */ void getNpcType(); - /* 80ACC4C8 */ bool isDelete(); + /* 80ACB918 */ int create(); + /* 80ACBBD4 */ int CreateHeap(); + /* 80ACC0FC */ int Delete(); + /* 80ACC130 */ int Execute(); + /* 80ACC21C */ int Draw(); + /* 80ACC2B0 */ static int createHeapCallBack(fopAc_ac_c*); + /* 80ACC2D0 */ static int ctrlJointCallBack(J3DJoint*, int); + /* 80ACC328 */ u8 getType(); + /* 80ACC424 */ int getFlowNodeNo(); + /* 80ACC440 */ u8 checkBottle(); + /* 80ACC4A8 */ u8 getNpcType(); + /* 80ACC4C8 */ int isDelete(); /* 80ACC4D0 */ void reset(); /* 80ACC618 */ void afterJntAnm(int); /* 80ACC69C */ void setParam(); - /* 80ACC818 */ void checkChangeEvt(); + /* 80ACC818 */ BOOL checkChangeEvt(); /* 80ACC8C0 */ void setAfterTalkMotion(); /* 80ACC980 */ void srchActors(); - /* 80ACCA48 */ void evtTalk(); - /* 80ACCBEC */ void evtCutProc(); + /* 80ACCA48 */ BOOL evtTalk(); + /* 80ACCBEC */ BOOL evtCutProc(); /* 80ACCCBC */ void action(); /* 80ACCE58 */ void beforeMove(); /* 80ACCED0 */ void setAttnPos(); /* 80ACD1D0 */ void setCollision(); - /* 80ACD378 */ bool drawDbgInfo(); + /* 80ACD378 */ BOOL drawDbgInfo(); /* 80ACD380 */ void drawOtherMdl(); - /* 80ACD458 */ void setBottleAnm(int, int, f32, bool); - /* 80ACD538 */ void afterSetMotionAnm(int, int, f32, int); + /* 80ACD458 */ bool setBottleAnm(int, int, f32, bool); + /* 80ACD538 */ bool afterSetMotionAnm(int, int, f32, int); /* 80ACD570 */ void changeAnm(int*, int*); /* 80ACD600 */ void changeBck(int*, int*); /* 80ACD6AC */ void changeBtp(int*, int*); /* 80ACD744 */ void changeBtk(int*, int*); - /* 80ACD770 */ void selectAction(); - /* 80ACD900 */ void chkAction(int (daNpc_Seira_c::*)(void*)); - /* 80ACD92C */ void setAction(int (daNpc_Seira_c::*)(void*)); - /* 80ACD9D4 */ void cutConversationAboutSaru(int); - /* 80ACDC6C */ void checkStageIsSeirasShop(); - /* 80ACDCE4 */ void getShopItemType(); - /* 80ACDD24 */ void wait(void*); - /* 80ACDE74 */ void sit(void*); - /* 80ACE098 */ void happy(void*); - /* 80ACE220 */ void worry(void*); - /* 80ACE4FC */ void sad(void*); - /* 80ACE608 */ void lookaround(void*); - /* 80ACE714 */ void lookaround_wait(void*); - /* 80ACE828 */ void smile(void*); - /* 80ACE934 */ void talk(void*); - /* 80ACEAC4 */ void shop(void*); - /* 80ACFB48 */ daNpc_Seira_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**); - /* 80ACFC14 */ u16 getEyeballMaterialNo(); - /* 80ACFC1C */ s32 getHeadJointNo(); - /* 80ACFC24 */ s32 getNeckJointNo(); - /* 80ACFC2C */ bool getBackboneJointNo(); - /* 80ACFC34 */ void checkChangeJoint(int); - /* 80ACFC44 */ void checkRemoveJoint(int); + /* 80ACD770 */ int selectAction(); + /* 80ACD900 */ int chkAction(actionFunc); + /* 80ACD92C */ int setAction(actionFunc); + /* 80ACD9D4 */ int cutConversationAboutSaru(int); + /* 80ACDC6C */ BOOL checkStageIsSeirasShop(); + /* 80ACDCE4 */ int getShopItemType(); + /* 80ACDD24 */ int wait(void*); + /* 80ACDE74 */ int sit(void*); + /* 80ACE098 */ int happy(void*); + /* 80ACE220 */ int worry(void*); + /* 80ACE4FC */ int sad(void*); + /* 80ACE608 */ int lookaround(void*); + /* 80ACE714 */ int lookaround_wait(void*); + /* 80ACE828 */ int smile(void*); + /* 80ACE934 */ int talk(void*); + /* 80ACEAC4 */ int shop(void*); + /* 80ACFB48 */ daNpc_Seira_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) + : dShopSystem_c(i_faceMotionAnmData, i_motionAnmData, i_faceMotionSequenceData, + i_faceMotionStepNum, i_motionSequenceData, i_motionStepNum, i_evtData, + i_arcNames) { + // "|%06d:%x|daNpc_Seira_c -> Construct\n" + OS_REPORT("|%06d:%x|daNpc_Seira_c -> コンストラクト\n", g_Counter.mCounter0, this); + } + /* 80ACFC14 */ u16 getEyeballMaterialNo() { return 2; } + /* 80ACFC1C */ s32 getHeadJointNo() { return 4; } + /* 80ACFC24 */ s32 getNeckJointNo() { return 3; } + /* 80ACFC2C */ s32 getBackboneJointNo() { return true; } + /* 80ACFC34 */ BOOL checkChangeJoint(int val) { return val == 4; } + /* 80ACFC44 */ BOOL checkRemoveJoint(int val) { return val == 8; } - static void* mCutNameList[2]; - static u8 mCutList[24]; + static char* mCutNameList[2]; + static cutFunc mCutList[2]; private: - /* 0x568 */ u8 field_0x568[0x1108 - 0x568]; + /* 0x0F7C */ mDoExt_McaMorfSO* mpSeiraMorf; + /* 0x0F80 */ int field_0x0F80; + /* 0x0F80 */ dCcD_Cyl mCyl1; + /* 0x10C0 */ u8 mChkBottle; + /* 0x10C1 */ u8 mType; + /* 0x10C4 */ daNpcT_ActorMngr_c mActorMngr[3]; + /* 0x10DC */ actionFunc mNextAction; + /* 0x10E8 */ actionFunc mActFunc_0; + /* 0x10F4 */ int mEventTimer; + /* 0x10F8 */ int mShopProcess; + /* 0x10FC */ u8 field_0x10fc; + /* 0x10FD */ u8 field_0x10fd; + /* 0x10FE */ u8 mNpcType; + /* 0x10FF */ u8 field_0x10FF; + /* 0x1100 */ u8 mEvtBit; + /* 0x1101 */ u8 field_0x1101[0x1104 - 0x1101]; + /* 0x1104 */ u8 field_0x1104; }; STATIC_ASSERT(sizeof(daNpc_Seira_c) == 0x1108); +struct daNpc_Seira_HIOParam { + /* 0x00 */ daNpcT_HIOParam common; +}; + class daNpc_Seira_Param_c { public: - /* 80ACFC54 */ ~daNpc_Seira_Param_c(); + /* 80ACFC54 */ virtual ~daNpc_Seira_Param_c() {} - static u8 const m[140]; + static const daNpc_Seira_HIOParam m; }; diff --git a/include/d/actor/d_a_npc_seira2.h b/include/d/actor/d_a_npc_seira2.h index b5c51af60c..cb36f38b09 100644 --- a/include/d/actor/d_a_npc_seira2.h +++ b/include/d/actor/d_a_npc_seira2.h @@ -2,6 +2,7 @@ #define D_A_NPC_SEIRA2_H #include "d/actor/d_a_npc.h" +#include "d/d_shop_system.h" /** * @ingroup actors-npcs @@ -11,74 +12,104 @@ * @details * */ -class daNpc_Seira2_c : public fopAc_ac_c { +class daNpc_Seira2_c : public dShopSystem_c { public: + typedef int (daNpc_Seira2_c::*cutFunc)(int); + typedef int (daNpc_Seira2_c::*actionFunc)(void*); + /* 80AD0C0C */ ~daNpc_Seira2_c(); - /* 80AD0D58 */ void create(); - /* 80AD0FF8 */ void CreateHeap(); - /* 80AD1508 */ void Delete(); - /* 80AD153C */ void Execute(); - /* 80AD1610 */ void Draw(); - /* 80AD16A4 */ void createHeapCallBack(fopAc_ac_c*); - /* 80AD16C4 */ void ctrlJointCallBack(J3DJoint*, int); - /* 80AD171C */ void getType(); - /* 80AD179C */ void getFlowNodeNo(); - /* 80AD17B8 */ void getMaxNumItem(); - /* 80AD17C4 */ void checkBottle(); - /* 80AD182C */ bool isDelete(); + /* 80AD0D58 */ int create(); + /* 80AD0FF8 */ int CreateHeap(); + /* 80AD1508 */ int Delete(); + /* 80AD153C */ int Execute(); + /* 80AD1610 */ int Draw(); + /* 80AD16A4 */ static int createHeapCallBack(fopAc_ac_c*); + /* 80AD16C4 */ static int ctrlJointCallBack(J3DJoint*, int); + /* 80AD171C */ u8 getType(); + /* 80AD179C */ int getFlowNodeNo(); + /* 80AD17B8 */ u8 getMaxNumItem(); + /* 80AD17C4 */ u8 checkBottle(); + /* 80AD182C */ int isDelete(); /* 80AD1834 */ void reset(); /* 80AD1968 */ void afterJntAnm(int); /* 80AD19EC */ void setParam(); /* 80AD1B38 */ void setAfterTalkMotion(); /* 80AD1BF8 */ void srchActors(); - /* 80AD1C60 */ void evtTalk(); - /* 80AD1E04 */ void evtCutProc(); + /* 80AD1C60 */ BOOL evtTalk(); + /* 80AD1E04 */ BOOL evtCutProc(); /* 80AD1ED4 */ void action(); /* 80AD2030 */ void beforeMove(); /* 80AD20A8 */ void setAttnPos(); /* 80AD23A8 */ void setCollision(); - /* 80AD2550 */ bool drawDbgInfo(); + /* 80AD2550 */ BOOL drawDbgInfo(); /* 80AD2558 */ void drawOtherMdl(); - /* 80AD2630 */ void setBottleAnm(int, int, f32, bool); - /* 80AD2710 */ void afterSetMotionAnm(int, int, f32, int); - /* 80AD2748 */ void selectAction(); - /* 80AD2870 */ void chkAction(int (daNpc_Seira2_c::*)(void*)); - /* 80AD289C */ void setAction(int (daNpc_Seira2_c::*)(void*)); - /* 80AD2944 */ void checkStageIsSeira2sShop(); - /* 80AD29BC */ void wait(void*); - /* 80AD2B68 */ void sit(void*); - /* 80AD2D8C */ void happy(void*); - /* 80AD2F14 */ void worry(void*); - /* 80AD31F0 */ void sad(void*); - /* 80AD3508 */ void lookaround(void*); - /* 80AD3614 */ void smile(void*); - /* 80AD3720 */ void talk(void*); - /* 80AD3890 */ void shop(void*); - /* 80AD47B8 */ daNpc_Seira2_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**); - /* 80AD4884 */ u16 getEyeballMaterialNo(); - /* 80AD488C */ s32 getHeadJointNo(); - /* 80AD4894 */ s32 getNeckJointNo(); - /* 80AD489C */ bool getBackboneJointNo(); - /* 80AD48A4 */ void checkChangeJoint(int); - /* 80AD48B4 */ void checkRemoveJoint(int); + /* 80AD2630 */ bool setBottleAnm(int, int, f32, bool); + /* 80AD2710 */ bool afterSetMotionAnm(int, int, f32, int); + /* 80AD2748 */ int selectAction(); + /* 80AD2870 */ int chkAction(actionFunc); + /* 80AD289C */ int setAction(actionFunc); + /* 80AD2944 */ BOOL checkStageIsSeira2sShop(); + /* 80AD29BC */ int wait(void*); + /* 80AD2B68 */ int sit(void*); + /* 80AD2D8C */ int happy(void*); + /* 80AD2F14 */ int worry(void*); + /* 80AD31F0 */ int sad(void*); + /* 80AD3508 */ int lookaround(void*); + /* 80AD3614 */ int smile(void*); + /* 80AD3720 */ int talk(void*); + /* 80AD3890 */ int shop(void*); + /* 80AD47B8 */ daNpc_Seira2_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) + : dShopSystem_c(i_faceMotionAnmData, i_motionAnmData, i_faceMotionSequenceData, + i_faceMotionStepNum, i_motionSequenceData, i_motionStepNum, i_evtData, + i_arcNames) { + // "|%06d:%x|daNpc_Seira2_c -> Construct\n" + OS_REPORT("|%06d:%x|daNpc_Seira2_c -> コンストラクト\n", g_Counter.mCounter0, this); + } + /* 80AD4884 */ u16 getEyeballMaterialNo() { return 2; } + /* 80AD488C */ s32 getHeadJointNo() { return 4; } + /* 80AD4894 */ s32 getNeckJointNo() { return 3; } + /* 80AD489C */ s32 getBackboneJointNo() { return true; } + /* 80AD48A4 */ BOOL checkChangeJoint(int val) { return val == 4; } + /* 80AD48B4 */ BOOL checkRemoveJoint(int val) { return val == 8; } - static void* mCutNameList; - static u8 mCutList[12]; + static char* mCutNameList[1]; + static cutFunc mCutList[1]; private: - /* 0x568 */ u8 field_0x568[0x10f4 - 0x568]; + /* 0x0F7C */ mDoExt_McaMorfSO* mpSeiraMorf; + /* 0x0F80 */ int field_0x0F80; + /* 0x0F80 */ dCcD_Cyl mCyl1; + /* 0x10C0 */ u8 mChkBottle; + /* 0x10C1 */ u8 mType; + /* 0x10C4 */ daNpcT_ActorMngr_c mActorMngr[1]; + /* 0x10CC */ actionFunc mNextAction; + /* 0x10D8 */ actionFunc mActFunc_0; + /* 0x10D4 */ int mEventTimer; + /* 0x10E8 */ int mShopProcess; + /* 0x10EC */ u8 field_0x10EC; + /* 0x10ED */ u8 field_0x10ED; + /* 0x10EE */ u8 mEvtBit; + /* 0x10EF */ u8 field_0x10EF[0x10F0 - 0x10EF]; + /* 0x10F0 */ u8 field_0x10F0; }; -STATIC_ASSERT(sizeof(daNpc_Seira2_c) == 0x10f4); +STATIC_ASSERT(sizeof(daNpc_Seira2_c) == 0x10F4); + +struct daNpc_Seira2_HIOParam { + /* 0x00 */ daNpcT_HIOParam common; +}; class daNpc_Seira2_Param_c { public: - /* 80AD48C4 */ ~daNpc_Seira2_Param_c(); + /* 80AD48C4 */ virtual ~daNpc_Seira2_Param_c() {} - static u8 const m[140]; + static const daNpc_Seira2_HIOParam m; }; |
