summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorTrueffel <106771418+Trueffeloot@users.noreply.github.com>2025-05-07 02:32:23 +0200
committerGitHub <noreply@github.com>2025-05-06 17:32:23 -0700
commit38c42522d5baff0c0448db3e8689a15e3638f0cd (patch)
treeee8dfd5e9fee675953c8b3f1bb59364ac9329dd4 /include
parentdf8f49f422456c659c2101e00eac5132ab09accc (diff)
decompile a few enemy classes (#2423)
Diffstat (limited to 'include')
-rw-r--r--include/d/actor/d_a_e_ai.h81
-rw-r--r--include/d/actor/d_a_e_bg.h78
-rw-r--r--include/d/actor/d_a_e_df.h47
-rw-r--r--include/d/actor/d_a_e_dk.h68
-rw-r--r--include/d/actor/d_a_e_fb.h69
-rw-r--r--include/d/actor/d_a_e_fk.h58
-rw-r--r--include/d/actor/d_a_e_gi.h68
7 files changed, 428 insertions, 41 deletions
diff --git a/include/d/actor/d_a_e_ai.h b/include/d/actor/d_a_e_ai.h
index 7303e564b0..7118934795 100644
--- a/include/d/actor/d_a_e_ai.h
+++ b/include/d/actor/d_a_e_ai.h
@@ -1,16 +1,23 @@
#ifndef D_A_E_AI_H
#define D_A_E_AI_H
+
+#include "Z2AudioLib/Z2Creature.h"
+#include "d/d_bg_s_acch.h"
+#include "d/d_cc_d.h"
+#include "d/d_cc_uty.h"
#include "f_op/f_op_actor_mng.h"
+
/**
* @ingroup actors-enemies
* @class e_ai_class
* @brief Armos
- *
- * @details
- *
+ *
+ * @details
+ *
*/
class e_ai_class : public fopEn_enemy_c {
+public:
/* 806791BC */ void initCcCylinder();
/* 80679284 */ void setCcCylinder();
/* 80679350 */ void anm_init(int, f32, u8, f32);
@@ -33,16 +40,76 @@ class e_ai_class : public fopEn_enemy_c {
/* 8067B6F0 */ void CreateHeap();
/* 8067B8E4 */ void Create();
/* 8067BAEC */ e_ai_class();
+
private:
- /* 0x5ac */ u8 field_0x5ac[0xd44 - 0x5ac];
+ /* 0x5AC */ JPABaseEmitter* mpEmitter;
+ /* 0x5B0 */ request_of_phase_process_class mPhaseReq;
+ /* 0x5B8 */ u8 field_0x5B8[0x5B9 - 0x5B8];
+ /* 0x5B9 */ u8 field_0x5b9;
+ /* 0x5BA */ u8 field_0x5ba;
+ /* 0x5BC */ cXyz mUnused; // The offset of this member is a guess. Debug only says that it
+ // exists, unsure of offset in retail
+ /* 0x5C8 */ mDoExt_brkAnm* mpBrkAnm;
+ /* 0x5CC */ u8 field_0x5cc;
+ /* 0x5D0 */ mDoExt_McaMorfSO* mpMorfSO;
+ /* 0x5D4 */ Z2CreatureEnemy mCreatureSound;
+ /* 0x678 */ u8 field_0x678[0x67C - 0x678];
+ /* 0x67C */ u8 field_0x67c;
+ /* 0x680 */ u32 mShadowKey;
+ /* 0x684 */ s32 field_0x684;
+ /* 0x688 */ u8 field_0x688[0x68C - 0x688];
+ /* 0x68C */ s16 field_0x68c;
+ /* 0x68E */ s16 field_0x68e;
+ /* 0x690 */ s16 field_0x690;
+ /* 0x692 */ s16 field_0x692;
+ /* 0x694 */ s16 field_0x694;
+ /* 0x696 */ s16 field_0x696;
+ /* 0x698 */ u8 field_0x698;
+ /* 0x699 */ cXyz mUnused2; // The offset of this member is a guess. Also unused in debug but
+ // exists, unsure of offset in retail
+ /* 0x6A8 */ s16 field_0x6a8;
+ /* 0x6AA */ s16 field_0x6aa;
+ /* 0x6AC */ f32 field_0x6ac;
+ /* 0x6B0 */ s16 field_0x6b0[4];
+ /* 0x6B8 */ s16 field_0x6b8;
+ /* 0x6BA */ s16 field_0x6ba;
+ /* 0x6BC */ s16 field_0x6bc;
+ /* 0x6C0 */ f32 field_0x6c0;
+ /* 0x6C4 */ u8 field_0x6C4[0x6C8 - 0x6C4];
+ /* 0x6C8 */ dBgS_AcchCir mAcchCir;
+ /* 0x708 */ dBgS_ObjAcch mObjAcch;
+ /* 0x8E0 */ dCcD_Stts mAtStts;
+ /* 0x91C */ dCcD_Stts mShieldStts;
+ /* 0x958 */ dCcD_Sph mAtSphere;
+ /* 0xA90 */ dCcD_Sph mShieldSphere;
+ /* 0xBC8 */ dCcD_Cyl mCylinder;
+ /* 0xD04 */ dCcU_AtInfo mAtInfo;
+ /* 0xD28 */ u8 field_0xd28;
+ /* 0xD29 */ s8 field_0xd29;
+ /* 0xD2C */ u32 field_0xd2c;
+ /* 0xD30 */ u32 field_0xd30;
+ /* 0xD34 */ u32 field_0xd34;
+ /* 0xD38 */ u32 field_0xd38;
+ /* 0xD3C */ u8 field_0xD3C[0xD40 - 0xD3C];
+ /* 0xD40 */ u8 mHIOInit;
};
STATIC_ASSERT(sizeof(e_ai_class) == 0xd44);
-class daE_AI_HIO_c {
+class daE_AI_HIO_c : public JORReflexible {
+public:
/* 8067916C */ daE_AI_HIO_c();
- /* 8067BF40 */ ~daE_AI_HIO_c();
-};
+ /* 8067BF40 */ virtual ~daE_AI_HIO_c();
+
+ void genMessage(JORMContext*);
+ /* 0x04 */ s8 field_0x4;
+ /* 0x08 */ f32 model_size;
+ /* 0x0C */ f32 movement_speed;
+ /* 0x10 */ f32 pl_recognition_distance;
+ /* 0x14 */ f32 attack_range_1;
+ /* 0x18 */ f32 attack_range_2;
+ /* 0x1C */ f32 home_distance;
+};
#endif /* D_A_E_AI_H */
diff --git a/include/d/actor/d_a_e_bg.h b/include/d/actor/d_a_e_bg.h
index 4590ff23fe..fb66dd632c 100644
--- a/include/d/actor/d_a_e_bg.h
+++ b/include/d/actor/d_a_e_bg.h
@@ -1,17 +1,22 @@
#ifndef D_A_E_BG_H
#define D_A_E_BG_H
+#include "Z2AudioLib/Z2Creature.h"
+#include "d/d_bg_s_acch.h"
+#include "d/d_cc_d.h"
+#include "d/d_cc_uty.h"
#include "f_op/f_op_actor_mng.h"
/**
* @ingroup actors-enemies
* @class daE_BG_c
* @brief Bomb Fish
- *
- * @details
- *
+ *
+ * @details
+ *
*/
class daE_BG_c : public fopEn_enemy_c {
+public:
/* 8068585C */ void ctrlJoint(J3DJoint*, J3DModel*);
/* 80685948 */ void JointCallBack(J3DJoint*, int);
/* 80685994 */ void draw();
@@ -36,16 +41,75 @@ class daE_BG_c : public fopEn_enemy_c {
/* 80689978 */ void _delete();
/* 80689A0C */ void CreateHeap();
/* 80689C38 */ void create();
+
+ void setBgId(u32 i_bgId) { mBgId = i_bgId; }
+ bool isBomb() { return mIsBomb; }
+
private:
- /* 0x5ac */ u8 field_0x5ac[0xbbc - 0x5ac];
+ /* 0x5AC */ request_of_phase_process_class mPhaseReq;
+ /* 0x5B4 */ mDoExt_McaMorfSO* mpMorfSO;
+ /* 0x5B8 */ mDoExt_brkAnm* mpBrkAnm;
+ /* 0x5BC */ Z2CreatureEnemy mCreatureSound;
+ /* 0x660 */ cXyz field_0x660;
+ /* 0x66C */ u32 mBgId;
+ /* 0x670 */ s32 mActionMode;
+ /* 0x674 */ s32 mMoveMode;
+ /* 0x678 */ u32 mShadowKey;
+ /* 0x67C */ u8 field_0x67C[0x684 - 0x67C];
+ /* 0x684 */ f32 field_0x684;
+ /* 0x688 */ f32 field_0x688;
+ /* 0x68C */ u8 field_0x68c;
+ /* 0x68D */ u8 field_0x68d;
+ /* 0x68E */ u8 field_0x68e;
+ /* 0x68F */ u8 field_0x68f;
+ /* 0x690 */ s32 field_0x690;
+ /* 0x694 */ s32 field_0x694;
+ /* 0x698 */ s16 field_0x698;
+ /* 0x69A */ s16 field_0x69a;
+ /* 0x69C */ s16 field_0x69c;
+ /* 0x69E */ s16 field_0x69e;
+ /* 0x6A0 */ s16 field_0x6a0;
+ /* 0x6A2 */ s16 field_0x6a2;
+ /* 0x6A4 */ s16 field_0x6a4;
+ /* 0x6A6 */ s16 field_0x6a6;
+ /* 0x6A8 */ s16 field_0x6a8;
+ /* 0x6AA */ s16 field_0x6aa;
+ /* 0x6AC */ s16 field_0x6ac;
+ /* 0x6AE */ u8 field_0x6ae;
+ /* 0x6AF */ u8 field_0x6af;
+ /* 0x6B0 */ u8 field_0x6b0;
+ /* 0x6B1 */ bool mIsBomb;
+ /* 0x6B2 */ u8 field_0x6B2[0x6B4 - 0x6B2];
+ /* 0x6B4 */ dBgS_AcchCir mAcchCir;
+ /* 0x6F4 */ dBgS_ObjAcch mObjAcch;
+ /* 0x8CC */ dCcD_Stts mStts;
+ /* 0x908 */ dCcD_Sph mSphere;
+ /* 0xA40 */ dCcD_Sph mAtSphere;
+ /* 0xB78 */ dCcU_AtInfo mAtInfo;
+ /* 0xB9C */ u32 mParticle;
+ /* 0xBA0 */ u8 field_0xBA0[0xBB0 - 0xBA0];
+ /* 0xBB0 */ u32 mParticle2;
+ /* 0xBB4 */ u32 mParticle3;
+ /* 0xBB8 */ u8 mHIOInit;
};
STATIC_ASSERT(sizeof(daE_BG_c) == 0xbbc);
-class daE_BG_HIO_c {
+class daE_BG_HIO_c : public JORReflexible {
+public:
/* 8068580C */ daE_BG_HIO_c();
- /* 8068A19C */ ~daE_BG_HIO_c();
-};
+ /* 8068A19C */ virtual ~daE_BG_HIO_c();
+ void genMessage(JORMContext*);
+
+ /* 0x04 */ s8 field_0x4;
+ /* 0x08 */ f32 tracking_speed;
+ /* 0x0C */ f32 rush_speed;
+ /* 0x10 */ f32 waiting_distance_before_charging;
+ /* 0x14 */ f32 player_search_distance;
+ /* 0x18 */ f32 attack_range;
+ /* 0x1C */ f32 swimming_range;
+ /* 0x20 */ f32 spring_time;
+};
#endif /* D_A_E_BG_H */
diff --git a/include/d/actor/d_a_e_df.h b/include/d/actor/d_a_e_df.h
index 22cddedd58..76f0e6cad3 100644
--- a/include/d/actor/d_a_e_df.h
+++ b/include/d/actor/d_a_e_df.h
@@ -1,16 +1,21 @@
#ifndef D_A_E_DF_H
#define D_A_E_DF_H
+
+#include "Z2AudioLib/Z2Creature.h"
+#include "d/d_cc_d.h"
+#include "d/d_cc_uty.h"
#include "f_op/f_op_actor_mng.h"
/**
* @ingroup actors-enemies
* @class daE_DF_c
* @brief Deku Flower
- *
- * @details
- *
+ *
+ * @details
+ *
*/
class daE_DF_c : public fopEn_enemy_c {
+public:
/* 806A7710 */ void CreateHeap();
/* 806A7828 */ void initCcCylinder();
/* 806A78A0 */ void setCcCylinder();
@@ -39,16 +44,44 @@ class daE_DF_c : public fopEn_enemy_c {
/* 806A9550 */ void Delete();
/* 806A95B8 */ void setBaseMtx();
/* 806A9678 */ void Create();
+
private:
- /* 0x5ac */ u8 field_0x5ac[0x838 - 0x5ac];
+ /* 0x5AC */ u8 field_0x5ac;
+ /* 0x5AD */ u8 field_0x5ad;
+ /* 0x5AE */ u8 field_0x5ae;
+ /* 0x5B0 */ csXyz field_0x5b0;
+ /* 0x5B6 */ u8 field_0x5B6[0x5B8 - 0x5B6];
+ /* 0x5B8 */ s32 field_0x5b8;
+ /* 0x5BC */ u8 field_0x5bc;
+ /* 0x5BE */ s16 field_0x5be;
+ /* 0x5C0 */ s32 field_0x5c0;
+ /* 0x5C4 */ s16 field_0x5c4;
+ /* 0x5C6 */ s16 field_0x5c6;
+ /* 0x5C8 */ mDoExt_McaMorfSO* mpMorfSO;
+ /* 0x5CC */ request_of_phase_process_class mPhaseReq;
+ /* 0x5D4 */ u8 field_0x5D4[0x5D8 - 0x5D4];
+ /* 0x5D8 */ Z2CreatureEnemy mCreatureSound;
+ /* 0x67C */ dCcD_Stts mStts;
+ /* 0x6B8 */ dCcD_Cyl mCylinder;
+ /* 0x7F4 */ dCcU_AtInfo mAtInfo;
+ /* 0x818 */ u8 mHIOInit;
+ /* 0x819 */ u8 field_0x819;
+ /* 0x81C */ cXyz field_0x81c;
+ /* 0x828 */ cXyz field_0x828;
+ /* 0x834 */ f32 field_0x834;
};
STATIC_ASSERT(sizeof(daE_DF_c) == 0x838);
-class daE_DF_HIO_c {
+class daE_DF_HIO_c : public JORReflexible {
+public:
/* 806A76EC */ daE_DF_HIO_c();
- /* 806A9A84 */ ~daE_DF_HIO_c();
-};
+ /* 806A9A84 */ virtual ~daE_DF_HIO_c();
+ void genMessage(JORMContext*);
+
+ /* 0x4 */ s8 field_0x4;
+ /* 0x8 */ f32 speed;
+};
#endif /* D_A_E_DF_H */
diff --git a/include/d/actor/d_a_e_dk.h b/include/d/actor/d_a_e_dk.h
index 67cbe4f336..df0e8e7ab6 100644
--- a/include/d/actor/d_a_e_dk.h
+++ b/include/d/actor/d_a_e_dk.h
@@ -1,17 +1,23 @@
#ifndef D_A_E_DK_H
#define D_A_E_DK_H
+#include "Z2AudioLib/Z2Creature.h"
+#include "d/d_bg_s_acch.h"
+#include "d/d_bg_s_sph_chk.h"
+#include "d/d_cc_d.h"
+#include "d/d_cc_uty.h"
#include "f_op/f_op_actor_mng.h"
/**
* @ingroup actors-enemies
* @class daE_DK_c
* @brief Bari
- *
- * @details
- *
+ *
+ * @details
+ *
*/
class daE_DK_c : public fopEn_enemy_c {
+public:
/* 806AA228 */ void draw();
/* 806AA5C8 */ void setBck(int, u8, f32, f32);
/* 806AA68C */ void setBckCore(int, u8, f32, f32);
@@ -38,16 +44,64 @@ class daE_DK_c : public fopEn_enemy_c {
/* 806ACAA4 */ void CreateHeap();
/* 806ACE14 */ void create();
/* 806AD0AC */ daE_DK_c();
+
private:
- /* 0x5ac */ u8 field_0x5ac[0xd54 - 0x5ac];
+ /* 0x5AC */ request_of_phase_process_class mPhaseReq;
+ /* 0x5B4 */ mDoExt_McaMorfSO* mpMorfSO;
+ /* 0x5B8 */ mDoExt_McaMorfSO* mpCoreMorfSO;
+ /* 0x5BC */ mDoExt_brkAnm* mpBrkAnm[2];
+ /* 0x5C4 */ mDoExt_btkAnm* mpBtkAnm[2];
+ /* 0x5CC */ Z2CreatureEnemy mCreatureSound;
+ /* 0x670 */ cXyz field_0x670;
+ /* 0x67C */ s32 mActionMode;
+ /* 0x680 */ s32 mMoveMode;
+ /* 0x684 */ u32 mShadowKey;
+ /* 0x688 */ u32 mShadowKey2;
+ /* 0x68C */ s16 field_0x68c;
+ /* 0x68E */ s16 field_0x68e;
+ /* 0x690 */ u8 field_0x690;
+ /* 0x691 */ u8 field_0x691;
+ /* 0x692 */ u8 field_0x692;
+ /* 0x694 */ s16 field_0x694;
+ /* 0x698 */ s32 field_0x698;
+ /* 0x69C */ s32 field_0x69c;
+ /* 0x6A0 */ u8 field_0x6a0;
+ /* 0x6A1 */ u8 field_0x6a1;
+ /* 0x6A2 */ u8 field_0x6a2;
+ /* 0x6A3 */ u8 field_0x6a3;
+ /* 0x6A4 */ u8 field_0x6a4;
+ /* 0x6A8 */ f32 field_0x6a8;
+ /* 0x6AC */ f32 field_0x6ac;
+ /* 0x6B0 */ f32 field_0x6b0;
+ /* 0x6B4 */ f32 field_0x6b4;
+ /* 0x6B8 */ f32 field_0x6b8;
+ /* 0x6BC */ dBgS_AcchCir mAcchCir;
+ /* 0x6FC */ dBgS_ObjAcch mObjAcch;
+ /* 0x8D4 */ dBgS_SphChk mSphereChk;
+ /* 0x928 */ dCcD_Stts mStts;
+ /* 0x964 */ dCcD_Sph mSphere;
+ /* 0xA9C */ dCcD_Sph mAtSphere;
+ /* 0xBD4 */ dCcD_Sph mCoreSphere;
+ /* 0xD0C */ dCcU_AtInfo field_0xd0c;
+ /* 0xD30 */ u32 mEffects[6];
+ /* 0xD48 */ u8 field_0xD48[0xD50 - 0xD48];
+ /* 0xD50 */ u8 mHIOInit;
};
STATIC_ASSERT(sizeof(daE_DK_c) == 0xd54);
-class daE_DK_HIO_c {
+class daE_DK_HIO_c : public JORReflexible {
+public:
/* 806AA1EC */ daE_DK_HIO_c();
- /* 806AD490 */ ~daE_DK_HIO_c();
-};
+ /* 806AD490 */ virtual ~daE_DK_HIO_c();
+ void genMessage(JORMContext*);
+
+ /* 0x04 */ s8 field_0x4;
+ /* 0x08 */ f32 model_size;
+ /* 0x0C */ f32 player_detection_range;
+ /* 0x10 */ f32 field_0x10;
+ /* 0x14 */ f32 first_attack_range;
+};
#endif /* D_A_E_DK_H */
diff --git a/include/d/actor/d_a_e_fb.h b/include/d/actor/d_a_e_fb.h
index 009ee1906b..3681ab943e 100644
--- a/include/d/actor/d_a_e_fb.h
+++ b/include/d/actor/d_a_e_fb.h
@@ -1,17 +1,22 @@
#ifndef D_A_E_FB_H
#define D_A_E_FB_H
+#include "Z2AudioLib/Z2Creature.h"
+#include "d/d_bg_s_acch.h"
+#include "d/d_cc_d.h"
+#include "d/d_cc_uty.h"
#include "f_op/f_op_actor_mng.h"
/**
* @ingroup actors-enemies
* @class daE_FB_c
* @brief Freezard
- *
- * @details
- *
+ *
+ * @details
+ *
*/
class daE_FB_c : public fopEn_enemy_c {
+public:
/* 806B6520 */ void ctrlJoint(J3DJoint*, J3DModel*);
/* 806B65C0 */ void JointCallBack(J3DJoint*, int);
/* 806B660C */ void draw();
@@ -34,16 +39,66 @@ class daE_FB_c : public fopEn_enemy_c {
/* 806B8678 */ void CreateHeap();
/* 806B88E0 */ void create();
/* 806B8C1C */ daE_FB_c();
+
private:
- /* 0x5ac */ u8 field_0x5ac[0xce8 - 0x5ac];
+ /* 0x5AC */ request_of_phase_process_class mPhaseReq;
+ /* 0x5B4 */ mDoExt_McaMorfSO* mpMorfSO;
+ /* 0x5B8 */ mDoExt_invisibleModel mInvisibleModel;
+ /* 0x5C0 */ mDoExt_brkAnm* mpBrkAnm;
+ /* 0x5C4 */ Z2CreatureEnemy mCreatureSound;
+ /* 0x668 */ s32 field_0x668;
+ /* 0x66C */ s32 field_0x66c;
+ /* 0x670 */ s32 field_0x670;
+ /* 0x674 */ cXyz mUnused; // This offset is a guess based on debug
+ /* 0x680 */ s16 field_0x680;
+ /* 0x684 */ f32 field_0x684;
+ /* 0x688 */ u32 mShadowKey;
+ /* 0x68C */ s16 field_0x68c;
+ /* 0x68E */ u8 field_0x68e;
+ /* 0x68F */ u8 field_0x68f;
+ /* 0x690 */ u8 field_0x690;
+ /* 0x691 */ u8 mPrm1;
+ /* 0x692 */ u8 mPrm2;
+ /* 0x694 */ s16 mRotation;
+ /* 0x696 */ s16 field_0x696;
+ /* 0x698 */ s16 mHeadAngle;
+ /* 0x69C */ s32 field_0x69c;
+ /* 0x6A0 */ u8 mPrm0;
+ /* 0x6A4 */ dBgS_AcchCir mAcchCir;
+ /* 0x6E4 */ dBgS_ObjAcch mObjAcch;
+ /* 0x8BC */ dCcD_Stts mStts;
+ /* 0x8F8 */ dCcD_Sph mSphere;
+ /* 0xA30 */ dCcD_Sph mSphere2;
+ /* 0xB68 */ dCcD_Sph mAtSph;
+ /* 0xCA0 */ dCcU_AtInfo mAtInfo;
+ /* 0xCC4 */ u8 field_0xCC4[0xCD8 - 0xCC4];
+ /* 0xCD8 */ u16 field_0xcd8[3]; // This might be incorrect
+ /* 0xCDE */ u8 field_0xCDE[0xCE0 - 0xCDE];
+ /* 0xCE0 */ u8 mHIOInit;
+ /* 0xCE1 */ u8 field_0xce1[0xce8 - 0xce1];
};
STATIC_ASSERT(sizeof(daE_FB_c) == 0xce8);
-class daE_FB_HIO_c {
+class daE_FB_HIO_c : public JORReflexible {
+public:
/* 806B64AC */ daE_FB_HIO_c();
- /* 806B8EE4 */ ~daE_FB_HIO_c();
-};
+ /* 806B8EE4 */ virtual ~daE_FB_HIO_c();
+ void genMessage(JORMContext*);
+
+ /* 0x04 */ s8 field_0x4;
+ /* 0x08 */ f32 model_size;
+ /* 0x0C */ f32 player_detection_range;
+ /* 0x10 */ s16 next_attack_waiting_time;
+ /* 0x12 */ s16 maximum_rotation_width;
+ /* 0x14 */ s16 minimum_turning_range;
+ /* 0x16 */ s16 rotation_width_stairs; // ""Rotation width (speed) for stairs""
+ /* 0x18 */ s16 color_register_1r;
+ /* 0x1A */ s16 color_register_1g;
+ /* 0x1C */ s16 color_register_1b;
+ /* 0x1E */ s16 color_register_1a;
+ /* 0x20 */ s16 maximum_rotation_width_2;
+};
#endif /* D_A_E_FB_H */
diff --git a/include/d/actor/d_a_e_fk.h b/include/d/actor/d_a_e_fk.h
index 78ac4deb48..a4dc863052 100644
--- a/include/d/actor/d_a_e_fk.h
+++ b/include/d/actor/d_a_e_fk.h
@@ -1,5 +1,10 @@
#ifndef D_A_E_FK_H
#define D_A_E_FK_H
+
+#include "Z2AudioLib/Z2Creature.h"
+#include "d/d_bg_s_acch.h"
+#include "d/d_cc_d.h"
+#include "d/d_cc_uty.h"
#include "f_op/f_op_actor_mng.h"
/**
@@ -11,6 +16,7 @@
*
*/
class daE_FK_c : public fopEn_enemy_c {
+public:
/* 806B93CC */ void CreateHeap();
/* 806B9534 */ void initBodySph();
/* 806B95BC */ void initSwordSph();
@@ -46,14 +52,60 @@ class daE_FK_c : public fopEn_enemy_c {
/* 806BAF74 */ void CreateChk();
/* 806BB004 */ void Create();
private:
- /* 0x5ac */ u8 field_0x5ac[0xf6c - 0x5ac];
+ /* 0x5AC */ u8 field_0x5AC[0x5B1 - 0x5AC];
+ /* 0x5B1 */ u8 field_0x5b1;
+ /* 0x5B2 */ u8 field_0x5B2[0x5B6 - 0x5B2];
+ /* 0x5B6 */ s16 field_0x5b6[2];
+ /* 0x5BA */ u8 field_0x5BA[0x5C0 - 0x5BA];
+ /* 0x5C0 */ s32 field_0x5c0;
+ /* 0x5C4 */ s16 field_0x5c4[4];
+ /* 0x5CC */ f32 field_0x5cc;
+ /* 0x5D0 */ s16 field_0x5d0;
+ /* 0x5D2 */ s16 field_0x5d2;
+ /* 0x5D4 */ s16 field_0x5d4;
+ /* 0x5D6 */ u8 field_0x5D6[0x5D8 - 0x5D6];
+ /* 0x5D8 */ s16 field_0x5d8;
+ /* 0x5DC */ f32 field_0x5dc;
+ /* 0x5E0 */ u8 field_0x5E0[0x5E4 - 0x5E0];
+ /* 0x5E4 */ f32 field_0x5e4;
+ /* 0x5E8 */ f32 field_0x5e8;
+ /* 0x5EC */ u8 field_0x5EC[0x604 - 0x5EC];
+ /* 0x604 */ f32 field_0x604;
+ /* 0x608 */ u8 field_0x608[0x60C - 0x608];
+ /* 0x60C */ f32 field_0x60c;
+ /* 0x610 */ u8 field_0x610[0x615 - 0x610];
+ /* 0x615 */ u8 field_0x615;
+ /* 0x616 */ u8 field_0x616;
+ /* 0x617 */ u8 field_0x617[0x618 - 0x617];
+ /* 0x618 */ dCcD_Sph mBodySpheres[2];
+ /* 0x888 */ dCcD_Sph mSwordSpheres[3];
+ /* 0xC30 */ mDoExt_McaMorfSO* mpMorfSO;
+ /* 0xC34 */ mDoExt_invisibleModel mInvisibleModel;
+ /* 0xC3C */ J3DModel* mpModel;
+ /* 0xC40 */ request_of_phase_process_class mPhaseReq;
+ /* 0xC48 */ u8 field_0xC48[0xC4C - 0xC48];
+ /* 0xC4C */ Z2CreatureEnemy mCreatureSound;
+ /* 0xCF0 */ dBgS_AcchCir mAcchCir;
+ /* 0xD30 */ dBgS_ObjAcch mObjAcch;
+ /* 0xF08 */ dCcD_Stts mStts;
+ /* 0xF44 */ dCcU_AtInfo mAtInfo;
+ /* 0xF68 */ u8 mHIOInit;
};
STATIC_ASSERT(sizeof(daE_FK_c) == 0xf6c);
-class daE_FK_HIO_c {
+class daE_FK_HIO_c : public JORReflexible {
+public:
/* 806B938C */ daE_FK_HIO_c();
- /* 806BB594 */ ~daE_FK_HIO_c();
+ /* 806BB594 */ virtual ~daE_FK_HIO_c();
+
+ void genMessage(JORMContext*);
+
+ /* 0x04 */ s8 field_0x4;
+ /* 0x08 */ f32 model_size;
+ /* 0x0C */ f32 alpha; // "α"
+ /* 0x10 */ s16 effect_alpha; // "Effectα"
+ /* 0x12 */ s16 generation_time;
};
diff --git a/include/d/actor/d_a_e_gi.h b/include/d/actor/d_a_e_gi.h
index 659351a0c7..8848fd491f 100644
--- a/include/d/actor/d_a_e_gi.h
+++ b/include/d/actor/d_a_e_gi.h
@@ -1,6 +1,10 @@
#ifndef D_A_E_GI_H
#define D_A_E_GI_H
+#include "Z2AudioLib/Z2Creature.h"
+#include "d/d_bg_s_acch.h"
+#include "d/d_cc_d.h"
+#include "d/d_cc_uty.h"
#include "f_op/f_op_actor_mng.h"
/**
@@ -12,6 +16,7 @@
*
*/
class daE_GI_c : public fopEn_enemy_c {
+public:
/* 806CD4F4 */ void ctrlJoint(J3DJoint*, J3DModel*);
/* 806CD594 */ void JointCallBack(J3DJoint*, int);
/* 806CD5E0 */ void draw();
@@ -38,15 +43,72 @@ class daE_GI_c : public fopEn_enemy_c {
/* 806D0054 */ void _delete();
/* 806D00E8 */ void CreateHeap();
/* 806D027C */ void create();
+
private:
- /* 0x5ac */ u8 field_0x5ac[0x107c - 0x5ac];
+ /* 0x05AC */ request_of_phase_process_class mPhaseReq;
+ /* 0x05B4 */ mDoExt_McaMorfSO* mpMorfSO;
+ /* 0x05B8 */ J3DModel* mpModel;
+ /* 0x05BC */ Z2CreatureEnemy mCreatureSound;
+ /* 0x0660 */ f32 field_0x0660;
+ /* 0x0664 */ f32 field_0x0664;
+ /* 0x0668 */ f32 field_0x0668;
+ /* 0x066C */ s16 field_0x066c;
+ /* 0x066E */ u8 field_0x066E[0x0670 - 0x066E];
+ /* 0x0670 */ s32 mActionMode;
+ /* 0x0674 */ s32 mMoveMode;
+ /* 0x0678 */ u32 mShadowKey;
+ /* 0x067C */ u8 field_0x067C[0x067E - 0x067C];
+ /* 0x067E */ s16 field_0x067e;
+ /* 0x0680 */ s32 field_0x0680;
+ /* 0x0684 */ s32 field_0x0684;
+ /* 0x0688 */ s32 field_0x0688;
+ /* 0x068C */ s32 field_0x068c;
+ /* 0x0690 */ s32 field_0x0690;
+ /* 0x0694 */ s32 field_0x0694;
+ /* 0x0698 */ u8 field_0x0698;
+ /* 0x0699 */ u8 field_0x0699;
+ /* 0x069A */ u8 field_0x069a;
+ /* 0x069B */ u8 field_0x069b;
+ /* 0x069C */ u8 field_0x069c;
+ /* 0x069D */ u8 field_0x069d;
+ /* 0x069E */ u8 field_0x069e;
+ /* 0x069F */ u8 field_0x069f;
+ /* 0x06A0 */ u8 field_0x06a0;
+ /* 0x06A1 */ u8 field_0x06A1[0x06A2 - 0x06A1];
+ /* 0x06A2 */ s16 field_0x06a2;
+ /* 0x06A4 */ u8 field_0x06a4;
+ /* 0x06A5 */ u8 field_0x06a5;
+ /* 0x06A6 */ s16 field_0x06a6;
+ /* 0x06A8 */ s32 field_0x06a8;
+ /* 0x06AC */ dBgS_AcchCir mAcchCir;
+ /* 0x06EC */ dBgS_ObjAcch mObjAcch;
+ /* 0x08C4 */ dCcD_Stts mStts;
+ /* 0x0900 */ dCcD_Sph mSpheres[2];
+ /* 0x0B70 */ dCcD_Sph mAttSpheres[4];
+ /* 0x1050 */ dCcU_AtInfo mAtInfo;
+ /* 0x1074 */ u32 mPolyColorKey;
+ /* 0x1078 */ u8 mHIOInit;
};
STATIC_ASSERT(sizeof(daE_GI_c) == 0x107c);
-class daE_GI_HIO_c {
+class daE_GI_HIO_c : public JORReflexible {
+public:
/* 806CD48C */ daE_GI_HIO_c();
- /* 806D098C */ ~daE_GI_HIO_c();
+ /* 806D098C */ virtual ~daE_GI_HIO_c();
+
+ void genMessage(JORMContext*);
+
+ /* 0x04 */ s8 field_0x4;
+ /* 0x08 */ f32 model_size;
+ /* 0x0C */ f32 move_speed;
+ /* 0x10 */ f32 player_detect_range;
+ /* 0x14 */ f32 player_attack_distance;
+ /* 0x18 */ f32 attack_angle;
+ /* 0x1C */ f32 link_down_time;
+ /* 0x20 */ f32 wolf_stop_time;
+ /* 0x24 */ f32 scream_prevention_time;
+ /* 0x28 */ f32 lever_spin_time;
};