11#ifndef D_A_E_KK_H
22#define D_A_E_KK_H
33
4+ #include " Z2AudioLib/Z2Creature.h"
5+ #include " d/d_bg_s_acch.h"
6+ #include " d/d_cc_d.h"
7+ #include " d/d_cc_uty.h"
48#include " f_op/f_op_actor_mng.h"
59
10+
611/* *
712 * @ingroup actors-enemies
813 * @class daE_KK_c
914 * @brief Chilfos
10- *
11- * @details
12- *
15+ *
16+ * @details Enemy - Ice Knight
17+ *
1318 */
1419class daE_KK_c : public fopEn_enemy_c {
15- /* 806FA75C */ void ctrlJoint (J3DJoint*, J3DModel*);
16- /* 806FA7FC */ void JointCallBack (J3DJoint*, int );
17- /* 806FA848 */ void draw ();
20+ public:
21+ /* 806FA75C */ int ctrlJoint (J3DJoint*, J3DModel*);
22+ /* 806FA7FC */ static int JointCallBack (J3DJoint*, int );
23+ /* 806FA848 */ int draw ();
1824 /* 806FAA68 */ void setBck (int , u8 , f32 , f32 );
1925 /* 806FAB14 */ void setWeaponBck (int , u8 , f32 , f32 );
20- /* 806FABC0 */ void mCutTypeCheck (int );
26+ /* 806FABC0 */ bool mCutTypeCheck (int );
2127 /* 806FAC80 */ void setActionMode (int , int );
2228 /* 806FAC8C */ void damage_check ();
2329 /* 806FB2EC */ void nextActionCheck ();
24- /* 806FB4F4 */ void way_gake_check ();
30+ /* 806FB4F4 */ bool way_gake_check ();
2531 /* 806FB6C0 */ void mDeadEffSet (cXyz&);
2632 /* 806FB7D8 */ void executeWait ();
2733 /* 806FB908 */ void executeIcicleWait ();
@@ -38,20 +44,73 @@ class daE_KK_c : public fopEn_enemy_c {
3844 /* 806FDD0C */ void mtx_set ();
3945 /* 806FDF0C */ void weapon_mtx_set ();
4046 /* 806FE0B8 */ void cc_set ();
41- /* 806FE2A8 */ void execute ();
42- /* 806FE3E0 */ void _delete ();
43- /* 806FE480 */ void CreateHeap ();
44- /* 806FE6B8 */ void create ();
47+ /* 806FE2A8 */ int execute ();
48+ /* 806FE3E0 */ int _delete ();
49+ /* 806FE480 */ int CreateHeap ();
50+ /* 806FE6B8 */ int create ();
51+
4552private:
46- /* 0x5ac */ u8 field_0x5ac[0x13d4 - 0x5ac ];
53+ /* 0x05AC */ request_of_phase_process_class mPhaseReq ;
54+ /* 0x05B4 */ mDoExt_McaMorfSO * mpMorfSO;
55+ /* 0x05B8 */ mDoExt_McaMorfSO * mpWeaponMorfSO;
56+ /* 0x05BC */ Z2CreatureEnemy mCreatureSound ;
57+ /* 0x0660 */ s32 mActionMode ;
58+ /* 0x0664 */ s32 mMoveMode ;
59+ /* 0x0668 */ u32 mModelShadow ;
60+ /* 0x066C */ u32 mWeaponShadow ;
61+ /* 0x0670 */ s16 mTimer ;
62+ /* 0x0672 */ s16 field_0x672;
63+ /* 0x0674 */ s16 field_0x674;
64+ /* 0x0676 */ s16 mDistance ;
65+ /* 0x0678 */ u8 mDamageTimer ;
66+ /* 0x0679 */ u8 field_0x679;
67+ /* 0x067A */ u8 field_0x67a;
68+ /* 0x067B */ u8 field_0x67b;
69+ /* 0x067C */ u8 field_0x67c;
70+ /* 0x067D */ u8 field_0x67d;
71+ /* 0x067E */ u8 field_0x67e;
72+ /* 0x0680 */ cXyz field_0x680;
73+ /* 0x068C */ cXyz field_0x68c;
74+ /* 0x0698 */ cXyz field_0x698;
75+ /* 0x06A4 */ cXyz field_0x6a4;
76+ /* 0x06B0 */ cXyz field_0x6b0[3 ];
77+ /* 0x06D4 */ cXyz field_0x6d4[3 ];
78+ /* 0x06F8 */ cXyz field_0x6f8[6 ];
79+ /* 0x0740 */ cXyz field_0x740;
80+ /* 0x074C */ cXyz field_0x74c;
81+ /* 0x0758 */ s16 field_0x758;
82+ /* 0x075C */ f32 mMovingRange ;
83+ /* 0x0760 */ f32 field_0x760;
84+ /* 0x0764 */ s32 field_0x764;
85+ /* 0x0768 */ s32 field_0x768;
86+ /* 0x076C */ u8 field_0x76c;
87+ /* 0x0770 */ dBgS_AcchCir mAcchCir ;
88+ /* 0x07B0 */ dBgS_ObjAcch mObjAcch ;
89+ /* 0x0988 */ dCcD_Stts mStts ;
90+ /* 0x09C4 */ dCcD_Cyl mCyl ;
91+ /* 0x0B00 */ dCcD_Sph mSph ;
92+ /* 0x0C38 */ dCcU_AtInfo mAtInfo ;
93+ /* 0x0C5C */ dCcD_Sph mSpheres [6 ];
94+ /* 0x13AC */ u8 mHIOInit ;
95+ /* 0x13AD */ u8 field_0x13ad[0x13D4 - 0x13AD ];
4796};
4897
4998STATIC_ASSERT (sizeof (daE_KK_c) == 0x13d4);
5099
51- class daE_KK_HIO_c {
100+ class daE_KK_HIO_c : public JORReflexible {
101+ public:
52102 /* 806FA70C */ daE_KK_HIO_c();
53- /* 806FF0F0 */ ~daE_KK_HIO_c ();
54- };
103+ /* 806FF0F0 */ virtual ~daE_KK_HIO_c () {}
55104
105+ void genMessage (JORMContext*);
106+
107+ /* 0x04 */ s8 field_0x4;
108+ /* 0x08 */ f32 model_size;
109+ /* 0x0C */ f32 spear_throw_range;
110+ /* 0x10 */ f32 direct_attack_range;
111+ /* 0x14 */ f32 default_moving_range;
112+ /* 0x18 */ s16 escape_time;
113+ /* 0x1A */ u8 range_display;
114+ };
56115
57116#endif /* D_A_E_KK_H */
0 commit comments