diff --git a/include/d/actor/d_a_e_ai.h b/include/d/actor/d_a_e_ai.h index 7303e564b08..71189347952 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 4590ff23fe8..fb66dd632c7 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 22cddedd581..76f0e6cad3a 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 67cbe4f3367..df0e8e7ab63 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 009ee1906b0..3681ab943ee 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 78ac4deb489..a4dc863052e 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 659351a0c7c..8848fd491f2 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; }; diff --git a/src/d/actor/d_a_e_bg.cpp b/src/d/actor/d_a_e_bg.cpp index ffce9db6d1f..14c915bb409 100644 --- a/src/d/actor/d_a_e_bg.cpp +++ b/src/d/actor/d_a_e_bg.cpp @@ -417,7 +417,7 @@ void daE_BG_c::setBck(int param_0, u8 param_1, f32 param_2, f32 param_3) { } /* 80685C14-80685C2C 0004F4 0018+00 7/7 0/0 0/0 .text setActionMode__8daE_BG_cFii */ -void daE_BG_c::setActionMode(int param_0, int param_1) { +void daE_BG_c::setActionMode(int i_action, int i_mode) { // NONMATCHING }