22#define D_A_NPC_TK_H
33
44#include " d/actor/d_a_npc.h"
5+ #include " d/d_cc_uty.h"
56#include " d/d_path.h"
67
78struct cXyz ;
9+ class daNpc_Hanjo_c ;
810class fopAc_ac_c ;
911class J3DJoint ;
1012class J3DModel ;
@@ -20,33 +22,40 @@ class J3DModel;
2022class daNPC_TK_c : public fopAc_ac_c {
2123public:
2224 /* 80B01498 */ void setBck (int , u8 , f32 , f32 );
23- /* 80B0153C */ void checkBck (int );
24- /* 80B01598 */ void draw ();
25- /* 80B016D4 */ void checkBeforeBg ();
25+ /* 80B0153C */ bool checkBck (int );
26+ /* 80B01598 */ int draw ();
27+ /* 80B016D4 */ int checkBeforeBg ();
2628 /* 80B01878 */ void setActionMode (int );
27- /* 80B018F4 */ void setAddCalcSpeedXZ (cXyz&, cXyz const &, f32 , f32 , f32 );
28- /* 80B01C84 */ void chaseTargetPos (cXyz, f32 , f32 , s16);
29- /* 80B01D84 */ void getMasterPointer ();
29+ /* 80B018F4 */ f32 setAddCalcSpeedXZ (cXyz&, cXyz const &, f32 , f32 , f32 );
30+ /* 80B01C84 */ cXyz chaseTargetPos (cXyz, f32 , f32 , s16);
31+ /* 80B01D84 */
32+ fopAc_ac_c* getMasterPointer ();
3033 /* 80B01DA0 */ void setMasterShoulder (cXyz*);
3134 /* 80B01E48 */ void setAwayAction (int );
3235 /* 80B01EF4 */ void setFlySE ();
3336 /* 80B02254 */ void executeFly ();
3437 /* 80B026F8 */ void initPerchDemo (int );
35- /* 80B02B5C */ void executePerchDemo (int );
38+ /* 80B02B5C */
39+ bool executePerchDemo (int );
3640 /* 80B03658 */ void executePerch ();
3741 /* 80B03754 */ void executeHandOn ();
38- /* 80B039A8 */ void checkWaterSurface (f32 );
42+ /* 80B039A8 */
43+ bool checkWaterSurface (f32 );
3944 /* 80B03A70 */ void executeAttack ();
4045 /* 80B048BC */ void executeAway ();
4146 /* 80B04BF8 */ void setCarryActorMtx ();
42- /* 80B04F64 */ void getTakePosY ();
43- /* 80B04FA8 */ void getTakeOffPosY ();
47+ /* 80B04F64 */
48+ f32 getTakePosY ();
49+ /* 80B04FA8 */
50+ f32 getTakeOffPosY ();
4451 /* 80B04FEC */ void executeBack ();
45- /* 80B05BD0 */ void getHanjoHandPos ();
52+ /* 80B05BD0 */
53+ cXyz getHanjoHandPos ();
4654 /* 80B05C7C */ void executeStayHanjo ();
4755 /* 80B05EC8 */ void executeAttackLink ();
4856 /* 80B0686C */ void executeBackHanjo ();
49- /* 80B07114 */ void checkAttackDemo ();
57+ /* 80B07114 */
58+ bool checkAttackDemo ();
5059 /* 80B072CC */ void executeAttackDemo ();
5160 /* 80B07610 */ void executeBackHanjoDemo ();
5261 /* 80B08168 */ void executeWolfEvent ();
@@ -62,12 +71,13 @@ class daNPC_TK_c : public fopAc_ac_c {
6271 /* 80B0B284 */ void action ();
6372 /* 80B0B5CC */ void mtx_set ();
6473 /* 80B0B6DC */ void cc_set ();
65- /* 80B0B7CC */ void execute ();
66- /* 80B0B918 */ void _delete ();
67- /* 80B0B9AC */ void ctrlJoint (J3DJoint*, J3DModel*);
68- /* 80B0BB7C */ void JointCallBack (J3DJoint*, int );
69- /* 80B0BBC8 */ void CreateHeap ();
70- /* 80B0BD24 */ void create ();
74+ /* 80B0B7CC */ int execute ();
75+ /* 80B0B918 */ int _delete ();
76+ /* 80B0B9AC */
77+ int ctrlJoint (J3DJoint*, J3DModel*);
78+ /* 80B0BB7C */ static int JointCallBack (J3DJoint*, int );
79+ /* 80B0BBC8 */ int CreateHeap ();
80+ /* 80B0BD24 */ int create ();
7181
7282 void setBump () { mFlags |= 4 ; }
7383 void setEventWolf () { mFlags |= 0x80 ; }
@@ -77,7 +87,7 @@ class daNPC_TK_c : public fopAc_ac_c {
7787
7888 void setHawkPath (u8 i_pathNo) {
7989 if (i_pathNo != 0xFF ) {
80- field_0x6c8 = dPath_GetRoomPath (i_pathNo, fopAcM_GetRoomNo (this ));
90+ mpPath1 = dPath_GetRoomPath (i_pathNo, fopAcM_GetRoomNo (this ));
8191 }
8292 }
8393
@@ -86,26 +96,112 @@ class daNPC_TK_c : public fopAc_ac_c {
8696 void setBackHanjo () { mFlags |= 0x20 ; }
8797 void setHanjoHand () { mFlags |= 0x40 ; }
8898 void setQuickHanjoHand () { mFlags |= 0x200 ; }
89- BOOL isHanjoHand () { return field_0x6ad != 0 ; }
99+ BOOL isHanjoHand () { return mIsHanjoHand != 0 ; }
90100
91101private:
92- /* 0x568 */ u8 field_0x568[0x6ad - 0x568 ];
93- /* 0x6AD */ u8 field_0x6ad;
94- /* 0x568 */ u8 field_0x6ae[0x6BE - 0x6ae ];
102+ /* 0x568 */ request_of_phase_process_class mPhase ;
103+ /* 0x570 */ mDoExt_McaMorfSO * mpMorf;
104+ /* 0x574 */ Z2Creature mSound ;
105+ /* 0x604 */ cXyz field_0x604;
106+ /* 0x610 */ cXyz field_0x610;
107+ /* 0x61C */ cXyz field_0x61c;
108+ /* 0x628 */ cXyz field_0x628;
109+ /* 0x634 */ fopAc_ac_c* field_0x634;
110+ /* 0x638 */ daNpc_Hanjo_c* mpMaster;
111+ /* 0x63C */ cXyz field_0x63c[5 ];
112+ /* 0x678 */ f32 field_0x678;
113+ /* 0x67D */ f32 field_0x67c;
114+ /* 0x67E */ f32 field_0x680;
115+ /* 0x67E */ f32 field_0x684;
116+ /* 0x688 */ s32 field_0x688;
117+ /* 0x68C */ s32 mActionType ;
118+ /* 0x690 */ s32 field_0x690;
119+ /* 0x694 */ s32 field_0x694;
120+ /* 0x698 */ s32 field_0x698;
121+ /* 0x69C */ s16 field_0x69c;
122+ /* 0x69E */ s16 field_0x69e;
123+ /* 0x6A0 */ s16 field_0x6a0;
124+ /* 0x6A2 */ s16 field_0x6a2;
125+ /* 0x6A4 */ s16 field_0x6a4;
126+ /* 0x6A5 */ s16 field_0x6a6;
127+ /* 0x6A8 */ s16 field_0x6a8;
128+ /* 0x6AA */ s16 field_0x6aa;
129+ /* 0x6AC */ u8 mCarryType ;
130+ /* 0x6AD */ u8 mIsHanjoHand ;
131+ /* 0x6AE */ u8 field_0x6ae;
132+ /* 0x6B0 */ s32 field_0x6b0;
133+ /* 0x6B4 */ s32 field_0x6b4;
134+ /* 0x6B8 */ s32 field_0x6b8;
135+ /* 0x6BC */ bool mIsExecutingAction ;
136+ /* 0x6BD */ u8 field_0x6bd;
95137 /* 0x6BE */ u16 mFlags ;
96- /* 0x6C0 */ u8 field_0x6c0[0x6C8 - 0x6C0 ];
97- /* 0x6C8 */ dPath* field_0x6c8;
98- /* 0x6CC */ u8 field_0x6cc[0x71a - 0x6CC ];
138+ /* 0x6C0 */ u8 field_0x6c0;
139+ /* 0x6C1 */ u8 field_0x6c1;
140+ /* 0x6C2 */ u8 field_0x6c2;
141+ /* 0x6C3 */ u8 field_0x6c3;
142+ /* 0x6C4 */ u8 field_0x6c4;
143+ /* 0x6C5 */ u8 field_0x6c5;
144+ /* 0x6C6 */ u8 field_0x6c6;
145+ /* 0x6C7 */ u8 field_0x6c7;
146+ /* 0x6C8 */ dPath* mpPath1;
147+ /* 0x6CC */ s8 mPathStep2 ;
148+ /* 0x6D0 */ dPathCurve field_0x6d0;
149+ /* 0x6DC */ dPath* mWolfPathData ;
150+ /* 0x6E0 */ f32 field_0x6e0;
151+ /* 0x6E4 */ f32 field_0x6e4;
152+ /* 0x6E8 */ u8 field_0x6e8;
153+ /* 0x6E9 */ u8 field_0x6e9;
154+ /* 0x6EA */ u8 field_0x6ea;
155+ /* 0x6EB */ u8 field_0x6eb;
156+ /* 0x6EC */ fopAc_ac_c* field_0x6ec;
157+ /* 0x6F0 */ cXyz field_0x6f0;
158+ /* 0x6FC */ cXyz field_0x6fc;
159+ /* 0x708 */ f32 field_0x708;
160+ /* 0x70C */ s32 field_0x70c;
161+ /* 0x710 */ s16 field_0x710;
162+ /* 0x714 */ f32 field_0x714;
163+ /* 0x718 */ u8 field_0x718;
164+ /* 0x719 */ u8 field_0x719;
99165 /* 0x71A */ u8 field_0x71a;
100- /* 0x6CC */ u8 field_0x71b[0xB44 - 0x71b ];
166+ /* 0x71B */ u8 field_0x71b[0x724 - 0x71b ];
167+ /* 0x724 */ dMsgFlow_c mMsgFlow ;
168+ /* 0x770 */ dBgS_AcchCir mCircle ;
169+ /* 0x7B0 */ dBgS_ObjAcch mAcch ;
170+ /* 0x988 */ dCcD_Stts mStts ;
171+ /* 0x9C4 */ dCcD_Sph mSphere ;
172+ /* 0xAFC */ dCcU_AtInfo mAtInfo ;
173+ /* 0xB20 */ u32 field_0xb20;
174+ /* 0xB24 */ u32 field_0xb24;
175+ /* 0xB28 */ u32 field_0xb28[4 ];
176+ /* 0x71A */ u32 field_0xb38;
177+ /* 0xB3C */ s32 field_0xb3c;
178+ /* 0xB40 */ u8 field_0xb40;
101179};
102180
103181STATIC_ASSERT (sizeof (daNPC_TK_c) == 0xB44);
104182
105- class daNPC_TK_HIO_c {
183+ class daNPC_TK_HIO_c : public JORReflexible {
106184public:
107185 daNPC_TK_HIO_c ();
108- ~daNPC_TK_HIO_c ();
186+ virtual ~daNPC_TK_HIO_c () {}
187+
188+ void genMessage (JORMContext*) {}
189+
190+ s8 field_0x4;
191+ f32 field_0x8;
192+ f32 field_0xc;
193+ f32 field_0x10;
194+ f32 field_0x14;
195+ f32 field_0x18;
196+ f32 field_0x1c;
197+ f32 field_0x20;
198+ f32 field_0x24;
199+ f32 field_0x28;
200+ f32 mFlySpeed ;
201+ f32 field_0x30;
202+ f32 field_0x34;
203+ f32 field_0x38;
204+ u8 field_0x3c;
109205};
110206
111207
0 commit comments