1111 * @details
1212 *
1313 */
14- class daNpc_Saru_c : public fopAc_ac_c {
14+
15+ #ifdef DEBUG
16+ class daNpc_Saru_HIO_c : public mDoHIO_entry_c {
17+
18+ };
19+ #endif
20+
21+ class daNpc_Saru_Param_c {
22+ public:
23+ /* 80AC448C */ ~daNpc_Saru_Param_c ();
24+
25+ struct Data {
26+ /* 0x00 */ f32 field_0x00;
27+ /* 0x04 */ f32 field_0x04;
28+ /* 0x08 */ u32 field_0x08;
29+ /* 0x0C */ u32 field_0x0c;
30+ /* 0x10 */ f32 mWeight ;
31+ /* 0x14 */ u32 field_0x14;
32+ /* 0x18 */ u32 field_0x18;
33+ /* 0x1C */ u32 field_0x1c;
34+ /* 0x20 */ u32 field_0x20;
35+ /* 0x24 */ u32 field_0x24;
36+ /* 0x28 */ u32 field_0x28;
37+ /* 0x2C */ u32 field_0x2c;
38+ /* 0x30 */ u32 field_0x30;
39+ /* 0x34 */ u32 field_0x34;
40+ /* 0x38 */ u32 field_0x38;
41+ /* 0x3C */ u32 field_0x3c;
42+ /* 0x40 */ u32 field_0x40;
43+ /* 0x44 */ u32 field_0x44;
44+ /* 0x48 */ u32 field_0x48;
45+ /* 0x4C */ u32 field_0x4c;
46+ /* 0x50 */ u32 field_0x50;
47+ /* 0x54 */ u32 field_0x54;
48+ /* 0x58 */ u32 field_0x58;
49+ /* 0x5C */ u32 field_0x5c;
50+ /* 0x60 */ u32 field_0x60;
51+ /* 0x64 */ u32 field_0x64;
52+ /* 0x68 */ u32 field_0x68;
53+ /* 0x6C */ u32 field_0x6c;
54+ /* 0x70 */ u32 field_0x70;
55+ /* 0x74 */ u32 field_0x74;
56+ /* 0x78 */ u32 field_0x78;
57+ /* 0x7C */ u32 field_0x7c;
58+ /* 0x80 */ u32 field_0x80;
59+ /* 0x84 */ u32 field_0x84;
60+ /* 0x88 */ u32 field_0x88;
61+ /* 0x8C */ u32 field_0x8c;
62+ };
63+
64+ static const Data m;
65+ };
66+
67+ class daNpc_Saru_c : public daNpcT_c {
1568public:
69+ typedef int (daNpc_Saru_c::*actionFunc)(void *);
70+
71+ enum Type {
72+ TYPE_0,
73+ TYPE_1,
74+ TYPE_2,
75+ TYPE_3,
76+ };
77+
1678 /* 80AC042C */ ~daNpc_Saru_c ();
17- /* 80AC0578 */ void create ();
18- /* 80AC082C */ void CreateHeap ();
19- /* 80AC0A54 */ void Delete ();
20- /* 80AC0A88 */ void Execute ();
21- /* 80AC0AA8 */ void Draw ();
22- /* 80AC0AEC */ void createHeapCallBack (fopAc_ac_c*);
23- /* 80AC0B0C */ void ctrlJointCallBack (J3DJoint*, int );
24- /* 80AC0B64 */ void srchYm (void *, void *);
25- /* 80AC0C0C */ void getType ();
26- /* 80AC0C58 */ void isDelete ();
79+ /* 80AC0578 */ int create ();
80+ /* 80AC082C */ int CreateHeap ();
81+ /* 80AC0A54 */ int Delete ();
82+ /* 80AC0A88 */ int Execute ();
83+ /* 80AC0AA8 */ int Draw ();
84+ /* 80AC0AEC */ static int createHeapCallBack (fopAc_ac_c*);
85+ /* 80AC0B0C */ static int ctrlJointCallBack (J3DJoint*, int );
86+ /* 80AC0B64 */ void * srchYm (void *, void *);
87+ /* 80AC0C0C */ u8 getType ();
88+ /* 80AC0C58 */ int isDelete ();
2789 /* 80AC0CE8 */ void reset ();
2890 /* 80AC0EA4 */ void afterJntAnm (int );
29- /* 80AC0F28 */ void checkChangeEvt ();
91+ /* 80AC0F28 */ BOOL checkChangeEvt ();
3092 /* 80AC0FDC */ void setParam ();
3193 /* 80AC1110 */ void setAfterTalkMotion ();
3294 /* 80AC1170 */ void srchActors ();
33- /* 80AC11D4 */ void evtTalk ();
34- /* 80AC1274 */ void evtCutProc ();
95+ /* 80AC11D4 */ BOOL evtTalk ();
96+ /* 80AC1274 */ BOOL evtCutProc ();
3597 /* 80AC133C */ void action ();
3698 /* 80AC14E4 */ void beforeMove ();
3799 /* 80AC15B4 */ void setAttnPos ();
38100 /* 80AC18A0 */ void setCollision ();
39- /* 80AC1A20 */ bool drawDbgInfo ();
101+ /* 80AC1A20 */ int drawDbgInfo ();
40102 /* 80AC1A28 */ void drawOtherMdl ();
41103 /* 80AC1B30 */ void selectAction ();
42104 /* 80AC1B78 */ void chkAction (int (daNpc_Saru_c::*)(void *));
@@ -47,29 +109,48 @@ class daNpc_Saru_c : public fopAc_ac_c {
47109 /* 80AC2598 */ void cutYmLook (int );
48110 /* 80AC28A4 */ void wait (void *);
49111 /* 80AC2FD8 */ void talk (void *);
50- /* 80AC4394 */ daNpc_Saru_c(daNpcT_faceMotionAnmData_c const *, daNpcT_motionAnmData_c const *,
51- daNpcT_MotionSeqMngr_c::sequenceStepData_c const *, int ,
52- daNpcT_MotionSeqMngr_c::sequenceStepData_c const *, int ,
53- daNpcT_evtData_c const *, char **);
112+ /* 80AC4394 */ daNpc_Saru_c(daNpcT_faceMotionAnmData_c const * param_1, daNpcT_motionAnmData_c const * param_2,
113+ daNpcT_MotionSeqMngr_c::sequenceStepData_c const * param_3, int param_4,
114+ daNpcT_MotionSeqMngr_c::sequenceStepData_c const * param_5, int param_6,
115+ daNpcT_evtData_c const * param_7, char ** param_8) :
116+ daNpcT_c (param_1, param_2, param_3, param_4, param_5, param_6, param_7, param_8)
117+ {}
54118 /* 80AC4474 */ s32 getHeadJointNo ();
55119 /* 80AC447C */ s32 getNeckJointNo ();
56- /* 80AC4484 */ bool getBackboneJointNo ();
120+ /* 80AC4484 */ s32 getBackboneJointNo ();
121+
122+ u32 getFlowNodeNo () {
123+ u16 rv = home.angle .x ;
124+ if (rv == 0xffff ) {
125+ return -1 ;
126+ }
127+ return rv;
128+ }
129+
130+ u8 getPathID () { return (fopAcM_GetParam (this ) & 0xff0000 ) >> 16 ; }
131+ u8 getBitSW () { return (fopAcM_GetParam (this ) & 0xff00 ) >> 8 ; }
57132
58133 static void * mCutNameList [4 ];
59134 static u8 mCutList [48 ];
60135
61136private:
62- /* 0x568 */ u8 field_0x568[0xfe0 - 0x568 ];
137+ #ifdef DEBUG
138+ /* 0xE90 */ daNpc_Saru_HIO_c* field_0xe90;
139+ #endif
140+ /* 0xE40 */ u8 field_0xe40[0xe44 - 0xe40 ];
141+ /* 0xE44 */ J3DModel* field_0xe44[2 ];
142+ /* 0xE4C */ dCcD_Cyl field_0xe4c;
143+ /* 0xF88 */ u8 mType ;
144+ /* 0xF89 */ u8 field_0xf89[0xf8c - 0xf89 ];
145+ /* 0xF8C */ daNpcT_ActorMngr_c field_0xf8c;
146+ /* 0xF94 */ daNpcT_Path_c field_0xf94;
147+ /* 0xFBC */ actionFunc field_0xfbc;
148+ /* 0xFC8 */ u8 field_0xfc8[0xfd9 - 0xfc8 ];
149+ /* 0xFD9 */ u8 field_0xfd9;
150+ /* 0xFDA */ u8 field_0xfda[0xfdc - 0xfda ];
151+ /* 0xFDC */ int field_0xfdc;
63152};
64153
65154STATIC_ASSERT (sizeof (daNpc_Saru_c) == 0xfe0);
66155
67- class daNpc_Saru_Param_c {
68- public:
69- /* 80AC448C */ ~daNpc_Saru_Param_c ();
70-
71- static u8 const m[144 ];
72- };
73-
74-
75156#endif /* D_A_NPC_SARU_H */
0 commit comments