11#ifndef D_A_NPC_BESU_H
22#define D_A_NPC_BESU_H
33
4+ #if DEBUG
5+ #include " SSystem/SComponent/c_counter.h"
6+ #endif
47#include " d/actor/d_a_npc.h"
58
69/* *
1114 * @details
1215 *
1316 */
14- class daNpc_Besu_c : public fopAc_ac_c {
17+ class daNpc_Besu_c : public daNpcT_c {
1518public:
19+ typedef int (daNpc_Besu_c::*cutFunc)(int );
20+ typedef int (daNpc_Besu_c::*actionFunc)(void *);
21+
1622 /* 80536E4C */ ~daNpc_Besu_c ();
17- /* 8053701C */ void create ();
18- /* 805372FC */ void CreateHeap ();
19- /* 80537914 */ void Delete ();
20- /* 80537948 */ void Execute ();
21- /* 80537968 */ void Draw ();
22- /* 805379FC */ void createHeapCallBack (fopAc_ac_c*);
23- /* 80537A1C */ void ctrlJointCallBack (J3DJoint*, int );
24- /* 80537A74 */ void getType ();
25- /* 80537B34 */ void isDelete ();
23+ /* 8053701C */ int create ();
24+ /* 805372FC */ int CreateHeap ();
25+ /* 80537914 */ int Delete ();
26+ /* 80537948 */ int Execute ();
27+ /* 80537968 */ int Draw ();
28+ /* 805379FC */ static int createHeapCallBack (fopAc_ac_c*);
29+ /* 80537A1C */ static int ctrlJointCallBack (J3DJoint*, int );
30+ /* 80537A74 */ u8 getType ();
31+ /* 80537B34 */ BOOL isDelete ();
2632 /* 80537DE4 */ void reset ();
27- /* 80537FD0 */ void chkNurse ();
28- /* 80537FFC */ void chkBesu3 ();
33+ /* 80537FD0 */ BOOL chkNurse ();
34+ /* 80537FFC */ BOOL chkBesu3 ();
2935 /* 80538028 */ void afterJntAnm (int );
3036 /* 805380A4 */ void setParam ();
31- /* 805382D0 */ void checkChangeEvt ();
37+ /* 805382D0 */ BOOL checkChangeEvt ();
3238 /* 80538490 */ void setAfterTalkMotion ();
3339 /* 8053853C */ void srchActors ();
34- /* 805387D0 */ void evtTalk ();
35- /* 80538870 */ void evtCutProc ();
40+ /* 805387D0 */ BOOL evtTalk ();
41+ /* 80538870 */ BOOL evtCutProc ();
3642 /* 80538938 */ void action ();
3743 /* 80538B54 */ void beforeMove ();
3844 /* 80538C18 */ void setAttnPos ();
3945 /* 805391B8 */ void setCollision ();
40- /* 80539494 */ bool drawDbgInfo ();
46+ /* 80539494 */ int drawDbgInfo ();
4147 /* 8053949C */ void drawOtherMdl ();
42- /* 805395F4 */ void setCupAnm (int , int , f32 );
43- /* 805396C4 */ void afterSetMotionAnm (int , int , f32 , int );
44- /* 805396F8 */ void getFaceMotionAnm (daNpcT_faceMotionAnmData_c);
48+ /* 805395F4 */ int setCupAnm (int , int , f32 );
49+ /* 805396C4 */ bool afterSetMotionAnm (int , int , f32 , int );
50+ /* 805396F8 */ daNpcT_faceMotionAnmData_c getFaceMotionAnm (daNpcT_faceMotionAnmData_c);
4551 /* 805397B0 */ void changeAnm (int *, int *);
4652 /* 80539840 */ void changeBck (int *, int *);
4753 /* 805398DC */ void changeBtp (int *, int *);
4854 /* 80539968 */ void changeBtk (int *, int *);
49- /* 80539994 */ void selectAction ();
50- /* 80539ACC */ void chkAction (int (daNpc_Besu_c::*)( void *) );
51- /* 80539AF8 */ void setAction (int (daNpc_Besu_c::*)( void *) );
55+ /* 80539994 */ int selectAction ();
56+ /* 80539ACC */ int chkAction (actionFunc );
57+ /* 80539AF8 */ int setAction (actionFunc );
5258 /* 80539BA0 */ void mop (int , int );
53- /* 80539CF4 */ void cutConversationAboutSaru (int );
54- /* 80539E48 */ void cutConversationAboutPachinko (int );
55- /* 8053A45C */ void cutConversationAboutWoodSwd (int );
56- /* 8053A7A0 */ void cutSwdTutorial (int );
57- /* 8053AA6C */ void cutFindMonkey (int );
58- /* 8053AF5C */ void cutGetWoodSwd (int );
59- /* 8053B058 */ void cutCacaricoConversation (int );
60- /* 8053B250 */ void cutSurprise (int );
61- /* 8053B530 */ void cutConversationInHotel (int );
62- /* 8053B820 */ void cutConversationAboutDeathMt (int );
63- /* 8053BA60 */ void cutConversationAboutGoron (int );
64- /* 8053BD18 */ void cutNurse (int );
65- /* 8053BE84 */ void cutClothTry (int );
66- /* 8053BF60 */ void cutThankYou (int );
67- /* 8053C08C */ void wait (void *);
68- /* 8053CAA0 */ void swdTutorial (void *);
69- /* 8053CBB8 */ void nurse (void *);
70- /* 8053CF78 */ void giveHotWater (void *);
71- /* 8053D078 */ void talk (void *);
72- /* 8053E588 */ daNpc_Besu_c(daNpcT_faceMotionAnmData_c const *, daNpcT_motionAnmData_c const *,
73- daNpcT_MotionSeqMngr_c::sequenceStepData_c const *, int ,
74- daNpcT_MotionSeqMngr_c::sequenceStepData_c const *, int ,
75- daNpcT_evtData_c const *, char **);
76- /* 8053E6A8 */ s32 getEyeballMaterialNo ();
77- /* 8053E6B0 */ s32 getHeadJointNo ();
78- /* 8053E6B8 */ s32 getNeckJointNo ();
79- /* 8053E6C0 */ bool getBackboneJointNo ();
80- /* 8053E6C8 */ void checkChangeJoint (int );
81- /* 8053E6D8 */ void checkRemoveJoint (int );
59+ /* 80539CF4 */ int cutConversationAboutSaru (int );
60+ /* 80539E48 */ int cutConversationAboutPachinko (int );
61+ /* 8053A45C */ int cutConversationAboutWoodSwd (int );
62+ /* 8053A7A0 */ int cutSwdTutorial (int );
63+ /* 8053AA6C */ int cutFindMonkey (int );
64+ /* 8053AF5C */ int cutGetWoodSwd (int );
65+ /* 8053B058 */ int cutCacaricoConversation (int );
66+ /* 8053B250 */ int cutSurprise (int );
67+ /* 8053B530 */ int cutConversationInHotel (int );
68+ /* 8053B820 */ int cutConversationAboutDeathMt (int );
69+ /* 8053BA60 */ int cutConversationAboutGoron (int );
70+ /* 8053BD18 */ int cutNurse (int );
71+ /* 8053BE84 */ int cutClothTry (int );
72+ /* 8053BF60 */ int cutThankYou (int );
73+ /* 8053C08C */ int wait (void *);
74+ /* 8053CAA0 */ int swdTutorial (void *);
75+ /* 8053CBB8 */ int nurse (void *);
76+ /* 8053CF78 */ int giveHotWater (void *);
77+ /* 8053D078 */ int talk (void *);
78+ /* 8053E588 */ daNpc_Besu_c(
79+ daNpcT_faceMotionAnmData_c const * i_faceMotionAnmData,
80+ daNpcT_motionAnmData_c const * i_motionAnmData,
81+ daNpcT_MotionSeqMngr_c::sequenceStepData_c const * i_faceMotionSequenceData,
82+ int i_faceMotionStepNum,
83+ daNpcT_MotionSeqMngr_c::sequenceStepData_c const * i_motionSequenceData,
84+ int i_motionStepNum,
85+ daNpcT_evtData_c const * i_evtData,
86+ char ** i_arcNames)
87+ : daNpcT_c(i_faceMotionAnmData, i_motionAnmData, i_faceMotionSequenceData,
88+ i_faceMotionStepNum, i_motionSequenceData, i_motionStepNum, i_evtData,
89+ i_arcNames) {
90+ // "construct"
91+ OS_REPORT (" |%06d:%x|daNpc_Besu_c -> コンストラクト\n " , g_Counter.mCounter0 , this );
92+ }
93+ /* 8053E6A8 */ s32 getEyeballMaterialNo () { return 2 ; }
94+ /* 8053E6B0 */ s32 getHeadJointNo () { return 4 ; }
95+ /* 8053E6B8 */ s32 getNeckJointNo () { return 3 ; }
96+ /* 8053E6C0 */ s32 getBackboneJointNo () { return true ; }
97+ /* 8053E6C8 */ BOOL checkChangeJoint (int arg0) { return arg0 == 4 ; }
98+ /* 8053E6D8 */ BOOL checkRemoveJoint (int arg0) { return arg0 == 6 ; }
99+
100+ u32 getFlowNodeNo () {
101+ u16 nodeNo = home.angle .x ;
102+ u32 rv;
103+ if (nodeNo == 0xffff ) {
104+ rv = -1 ;
105+ } else {
106+ rv = nodeNo;
107+ }
108+ return rv;
109+ }
110+
111+ u8 getPathID () { return (fopAcM_GetParam (this ) & 0xff00 ) >> 8 ; }
112+ u8 getBitSW () { return (fopAcM_GetParam (this ) & 0xff0000 ) >> 16 ; }
82113
83114 static char * mCutNameList [15 ];
84- static u8 mCutList [180 ];
115+ static cutFunc mCutList [15 ];
85116
86117private:
87- /* 0x568 */ u8 field_0x568[0x1138 - 0x568 ];
118+ /* 0x0E40 */ mDoExt_McaMorfSO * mpBesuMorf;
119+ /* 0x0E44 */ u8 field_0xe44[0x0E48 - 0xE44 ];
120+ /* 0x0E48 */ J3DModel* mpModel[1 ];
121+ /* 0x0E4C */ dCcD_Cyl mCyl1 ;
122+ /* 0x0F88 */ dCcD_Cyl mCyl2 ;
123+ /* 0x10C4 */ u8 mType ;
124+ /* 0x10C8 */ daNpcT_ActorMngr_c mActorMngr [7 ];
125+ /* 0x1100 */ actionFunc mNextAction ;
126+ /* 0x110C */ actionFunc mAction ;
127+ /* 0x1118 */ int field_0x1118;
128+ /* 0x111C */ int field_0x111c;
129+ /* 0x1120 */ int field_0x1120;
130+ /* 0x1124 */ int field_0x1124;
131+ /* 0x1128 */ int field_0x1128;
132+ /* 0x112C */ u8 field_0x112c;
133+ /* 0x112D */ u8 field_0x112d;
134+ /* 0x112E */ u8 field_0x112e;
135+ /* 0x112F */ u8 field_0x112f;
136+ /* 0x1130 */ u8 field_0x1130;
137+ /* 0x1131 */ u8 field_0x1131[0x1134 - 0x1131 ];
138+ /* 0x1134 */ u8 field_0x1134;
88139};
89140
90141STATIC_ASSERT (sizeof (daNpc_Besu_c) == 0x1138);
@@ -96,7 +147,7 @@ struct daNpc_Besu_HIOParam {
96147
97148class daNpc_Besu_Param_c {
98149public:
99- /* 8053E6E8 */ ~daNpc_Besu_Param_c ();
150+ /* 8053E6E8 */ virtual ~daNpc_Besu_Param_c () {}
100151
101152 static const daNpc_Besu_HIOParam m;
102153};
0 commit comments