@@ -87,9 +87,13 @@ class daNpc_Kn_c : public fopEn_enemy_c {
8787 /* 0x0DE8 */ int field_0xde8;
8888 /* 0x0DEC */ int field_0xdec;
8989 /* 0x0DF0 */ s16 field_0xdf0;
90- /* 0x0DF2 */ u8 field_0xdf2[0xc ];
90+ /* 0x0DF2 */ u8 field_0xdf2[0x0DFA - 0x0DF2 ];
91+ /* 0x0DFA */ s16 field_0xdfa;
92+ /* 0x0DFC */ u8 field_0xdfc[0x0DFE - 0x0DFC ];
9193 /* 0x0DFE */ s16 field_0xdfe;
92- /* 0x0E00 */ u8 field_0xe00[0xC ];
94+ /* 0x0E00 */ s16 field_0xe00;
95+ /* 0x0E04 */ f32 field_0xe04;
96+ /* 0x0E08 */ u8 field_0xe08[0x0E0C - 0x0E08 ];
9397 /* 0x0E0C */ f32 field_0xe0c;
9498 /* 0x0E10 */ f32 mRadius ;
9599 /* 0x0E14 */ f32 mGroundHeight ;
@@ -260,28 +264,28 @@ class daNpc_Kn_c : public fopEn_enemy_c {
260264 /* 80A387FC */ cPhs__Step loadRes (s8 const *, char const **);
261265 /* 80A388B0 */ void deleteRes (s8 const *, char const **);
262266 /* 80A38930 */ s32 execute ();
263- /* 80A38BB8 */ void draw (int , int , f32 , _GXColorS10*, f32 , int , int , int );
267+ /* 80A38BB8 */ int draw (int , int , f32 , _GXColorS10*, f32 , int , int , int );
264268 /* 80A38FAC */ void setEnvTevColor ();
265269 /* 80A39008 */ void setRoomNo ();
266- /* 80A3904C */ bool checkEndAnm (f32 );
270+ /* 80A3904C */ BOOL checkEndAnm (f32 );
267271 /* 80A390F8 */ BOOL checkEndAnm (J3DFrameCtrl*, f32 );
268272 /* 80A3917C */ void playAllAnm ();
269273 /* 80A39558 */ void setMtx ();
270274 /* 80A395DC */ void ctrlFaceMotion ();
271275 /* 80A39684 */ void ctrlMotion ();
272- /* 80A39738 */ void ctrlMsgAnm (int *, int *, fopAc_ac_c*, int );
276+ /* 80A39738 */ int ctrlMsgAnm (int *, int *, fopAc_ac_c*, int );
273277 /* 80A3A404 */ void evtChange ();
274278 /* 80A3A568 */ bool setFaceMotionAnm (int , bool );
275279 /* 80A3A7C0 */ bool setMotionAnm (int , f32 , int );
276280 /* 80A3AA58 */ void setPos (cXyz);
277281 /* 80A3AAF0 */ void setAngle (s16);
278- /* 80A3AB18 */ void chkActorInSight (fopAc_ac_c*, f32 , s16);
279- /* 80A3AC24 */ void chkPointInArea (cXyz, cXyz, f32 , f32 , f32 , s16);
282+ /* 80A3AB18 */ int chkActorInSight (fopAc_ac_c*, f32 , s16);
283+ /* 80A3AC24 */ int chkPointInArea (cXyz, cXyz, f32 , f32 , f32 , s16);
280284 /* 80A3ACD4 */ void chkPointInArea (cXyz, cXyz, cXyz, s16);
281- /* 80A3AD50 */ void chkFindPlayer (int , s16);
285+ /* 80A3AD50 */ int chkFindPlayer (int , s16);
282286 /* 80A3AF64 */ BOOL srchPlayerActor ();
283287 /* 80A3B000 */ cXyz getAttnPos (fopAc_ac_c*);
284- /* 80A3B074 */ void turn (s16, int , int );
288+ /* 80A3B074 */ BOOL turn (s16, int , int );
285289 /* 80A3B220 */ s32 step (s16, int , int , int , int );
286290 /* 80A3B3E8 */ s32 initTalk (int , fopAc_ac_c**);
287291 /* 80A3B448 */ BOOL talkProc (int *, int , fopAc_ac_c**, int );
@@ -340,6 +344,7 @@ class daNpc_Kn_c : public fopEn_enemy_c {
340344 static dCcD_SrcSph mCcDSph ;
341345 static char * mCutNameList [21 ];
342346 static cutFunc mCutList [21 ];
347+ static s16 mSrchName ;
343348 static fopAc_ac_c* mFindActorPtrs [50 ];
344349 static u8 mFindCount [4 ];
345350
@@ -384,70 +389,28 @@ class daNpc_Kn_c : public fopEn_enemy_c {
384389
385390STATIC_ASSERT (sizeof (daNpc_Kn_c) == 0x1758);
386391
392+ struct daNpc_Kn_HIOParam {
393+ /* 0x00 */ daNpcT_HIOParam common;
394+ /* 0x8C */ s16 field_0x8c;
395+ /* 0x8E */ s16 field_0x8e;
396+ /* 0x90 */ s16 field_0x90;
397+ /* 0x92 */ s16 field_0x92;
398+ /* 0x94 */ f32 field_0x94;
399+ /* 0x98 */ f32 field_0x98;
400+ /* 0x9C */ f32 field_0x9c;
401+ /* 0xA0 */ f32 field_0xa0;
402+ /* 0xA4 */ f32 field_0xa4;
403+ /* 0xA8 */ u32 field_0xa8;
404+ /* 0xAC */ s16 field_0xac;
405+ /* 0xAE */ s16 field_0xae;
406+ /* 0xB0 */ f32 field_0xb0;
407+ };
408+
387409class daNpc_Kn_Param_c {
388410public:
389- /* 80A3C124 */ virtual ~daNpc_Kn_Param_c ();
390-
391- struct param {
392- /* 0x00 */ f32 field_0x00;
393- /* 0x04 */ f32 mGravity ;
394- /* 0x08 */ f32 mScale ;
395- /* 0x0C */ f32 field_0x0c;
396- /* 0x10 */ f32 mWeight ;
397- /* 0x14 */ f32 field_0x14;
398- /* 0x18 */ f32 mHeight ;
399- /* 0x1C */ f32 mRadius ;
400- /* 0x20 */ f32 field_0x20;
401- /* 0x24 */ f32 field_0x24;
402- /* 0x28 */ f32 field_0x28;
403- /* 0x2C */ f32 field_0x2c;
404- /* 0x30 */ f32 field_0x30;
405- /* 0x34 */ f32 field_0x34;
406- /* 0x38 */ f32 field_0x38;
407- /* 0x3C */ f32 field_0x3c;
408- /* 0x40 */ f32 field_0x40;
409- /* 0x44 */ f32 field_0x44;
410- /* 0x48 */ s16 field_0x48;
411- /* 0x4A */ s16 field_0x4a;
412- /* 0x4C */ s16 field_0x4c;
413- /* 0x4E */ s16 field_0x4e;
414- /* 0x50 */ s32 field_0x50;
415- /* 0x54 */ s32 field_0x54;
416- /* 0x58 */ s32 field_0x58;
417- /* 0x5C */ s32 field_0x5C;
418- /* 0x60 */ s16 field_0x60;
419- /* 0x62 */ s16 field_0x62;
420- /* 0x64 */ s16 field_0x64;
421- /* 0x66 */ s16 field_0x66;
422- /* 0x68 */ s16 field_0x68;
423- /* 0x6A */ u8 field_0x6a;
424- /* 0x6B */ s8 field_0x6b;
425- /* 0x6C */ f32 field_0x6C;
426- /* 0x70 */ s32 field_0x70;
427- /* 0x74 */ s32 field_0x74;
428- /* 0x78 */ s32 field_0x78;
429- /* 0x7C */ s32 field_0x7C;
430- /* 0x80 */ s32 field_0x80;
431- /* 0x84 */ s32 field_0x84;
432- /* 0x88 */ s32 field_0x88;
433- /* 0x8C */ s16 mAlpha ;
434- /* 0x8E */ s16 field_0x8e;
435- /* 0x90 */ s16 field_0x90;
436- /* 0x92 */ s16 field_0x92;
437- /* 0x94 */ f32 field_0x94;
438- /* 0x98 */ f32 field_0x98;
439- /* 0x9C */ f32 field_0x9c;
440- /* 0xA0 */ f32 mSpeedF ;
441- /* 0xA4 */ f32 mSpeedY ;
442- /* 0xA8 */ f32 field_0xa8;
443- /* 0xAC */ s16 mMinRndVal ;
444- /* 0xAE */ s16 mRndValRange ;
445- /* 0xB0 */ s16 field_0xb0;
446- /* 0xB2 */ s16 field_0xb2;
447- /* 0xB4 */ f32 field_0xb4;
448- };
411+ /* 80A3C124 */ virtual ~daNpc_Kn_Param_c () {}
449412
450- static param const m;
413+ static const daNpc_Kn_HIOParam m;
451414};
452415
453416#endif /* D_A_NPC_KN_H */
0 commit comments