#ifndef D_A_B_GND_H #define D_A_B_GND_H #include "d/d_msg_flow.h" #include "f_op/f_op_actor_mng.h" #include "Z2AudioLib/Z2Creature.h" #include "d/d_cc_d.h" #include "d/d_cc_uty.h" #include "d/d_bg_s_acch.h" struct g_himo_s { /* 80601D40 */ ~g_himo_s(); /* 80601DA0 */ g_himo_s(); /* 0x0 */ cXyz field_0x0[16]; }; /** * @ingroup actors-enemies * @class b_gnd_class * @brief Ganondorf * * @details Hyrule Castle dungeon boss. * */ class b_gnd_class : public fopEn_enemy_c { public: /* 80601960 */ b_gnd_class(); bool checkAttackChance() { return field_0x2740 != 0; } private: /* 0x05AC */ request_of_phase_process_class mPhaseReq; /* 0x05B4 */ request_of_phase_process_class mHorsePhaseReq; /* 0x05BC */ s16 field_0x05bc; /* 0x05BE */ u8 field_0x05be; /* 0x05BF */ u8 field_0x05BF[0x05C0 - 0x05BF]; /* 0x05C0 */ cXyz field_0x05c0; /* 0x05CC */ s16 field_0x05cc; /* 0x05CE */ u8 field_0x05CE[0x05D0 - 0x05CE]; /* 0x05D0 */ mDoExt_McaMorfSO* mpMorf; /* 0x05D4 */ mDoExt_McaMorfSO* mpHorseMorf; /* 0x05D8 */ mDoExt_McaMorf* field_0x05d8; /* 0x05DC */ Z2CreatureEnemy mZ2Creature; /* 0x0680 */ Z2CreatureEnemy field_0x0680; /* 0x0724 */ mDoExt_brkAnm* field_0x0724; /* 0x0728 */ mDoExt_btkAnm* field_0x0728[6]; /* 0x0740 */ u8 field_0x0740[0x0744 - 0x0740]; /* 0x0744 */ mDoExt_btpAnm* field_0x0744; /* 0x0748 */ int field_0x0748; /* 0x074C */ mDoExt_btpAnm* field_0x074c; /* 0x0750 */ mDoExt_btkAnm* field_0x0750; /* 0x0754 */ u8 field_0x0754[0x0758 - 0x0754]; /* 0x0758 */ int mAnmID; /* 0x075C */ int mHorseAnmID; /* 0x0760 */ f32 field_0x0760; /* 0x0764 */ u8 field_0x0764[0x0768 - 0x0764]; /* 0x0768 */ J3DModel* field_0x0768; /* 0x076C */ J3DModel* field_0x076c; /* 0x0770 */ u8 field_0x0770[0x0772 - 0x0770]; /* 0x0772 */ s16 field_0x0772; /* 0x0774 */ dKy_tevstr_c field_0x0774; /* 0x0AFC */ s16 field_0x0afc; /* 0x0AFE */ s16 mActionID; /* 0x0B00 */ s16 field_0x0b00; /* 0x0B02 */ u8 field_0x0B02[0x0B94 - 0x0B02]; /* 0x0B94 */ J3DModel* field_0x0b94[36]; /* 0x0C24 */ s16 field_0x0c24; /* 0x0C26 */ s16 field_0x0c26; /* 0x0C28 */ s16 field_0x0c28; /* 0x0C2A */ u8 field_0x0C2A[0x0C2C - 0x0C2A]; /* 0x0C2C */ J3DModel* field_0x0c2c[2]; /* 0x0C34 */ u8 field_0x0C34[0x0C38 - 0x0C34]; /* 0x0C38 */ f32 field_0x0c38; /* 0x0C3C */ s16 field_0x0c3c; /* 0x0C3E */ u8 field_0x0C3E[0x0C40 - 0x0C3E]; /* 0x0C40 */ u32 field_0x0c40; /* 0x0C44 */ s16 field_0x0c44[10]; /* 0x0C58 */ s16 field_0x0c58; /* 0x0C5A */ s16 field_0x0c5a; /* 0x0C5C */ u8 field_0x0C5C[0x0C60 - 0x0C5C]; /* 0x0C60 */ int field_0x0c60; /* 0x0C64 */ int field_0x0c64; /* 0x0C68 */ s16 field_0x0c68; /* 0x0C6A */ s16 field_0x0c6a; /* 0x0C6C */ f32 field_0x0c6c; /* 0x0C70 */ s16 field_0x0c70; /* 0x0C72 */ s16 field_0x0c72; /* 0x0C74 */ s16 field_0x0c74; /* 0x0C76 */ u8 field_0x0C76[0x0C7D - 0x0C76]; /* 0x0C7D */ u8 field_0x0c7d; /* 0x0C7E */ u8 field_0x0C7E[0x0C80 - 0x0C7E]; /* 0x0C80 */ cXyz field_0x0c80; /* 0x0C8C */ s16 field_0x0c8c; /* 0x0C8E */ s16 field_0x0c8e; /* 0x0C90 */ s16 field_0x0c90; /* 0x0C92 */ s16 field_0x0c92; /* 0x0C94 */ dBgS_AcchCir field_0x0c94; /* 0x0CD4 */ dBgS_ObjAcch field_0x0cd4; /* 0x0EAC */ s16 field_0x0eac; /* 0x0EAE */ u8 field_0x0EAE[0x0EB0 - 0x0EAE]; /* 0x0EB0 */ f32 field_0x0eb0; /* 0x0EB4 */ cXyz field_0x0eb4; /* 0x0EC0 */ csXyz field_0x0ec0; /* 0x0EC6 */ u8 field_0x0EC6[0x0EC8 - 0x0EC6]; /* 0x0EC8 */ dCcD_Stts field_0x0ec8; /* 0x0F04 */ dCcD_Sph field_0x0f04[2]; /* 0x1174 */ dCcD_Sph field_0x1174[4]; /* 0x1654 */ dCcD_Stts field_0x1654; /* 0x1690 */ dCcD_Sph field_0x1690[3]; /* 0x1A38 */ dCcD_Sph field_0x1a38; /* 0x1B70 */ dCcD_Sph field_0x1b70; /* 0x1CA8 */ dCcD_Cyl field_0x1ca8; /* 0x1DE4 */ dCcU_AtInfo mAtInfo; /* 0x1E08 */ u8 field_0x1E08[0x1E0A - 0x1E08]; /* 0x1E0A */ u16 field_0x1e0a; /* 0x1E0C */ u16 field_0x1e0c; /* 0x1E0E */ u8 field_0x1E0E[0x1E0F - 0x1E0E]; /* 0x1E0F */ s8 field_0x1e0f; /* 0x1E10 */ f32 field_0x1e10; /* 0x1E14 */ cXyz field_0x1e14; /* 0x1E20 */ cXyz field_0x1e20; /* 0x1E2C */ Z2SoundObjSimple field_0x1e2c; /* 0x1E4C */ f32 field_0x1e4c; /* 0x1E50 */ csXyz field_0x1e50; /* 0x1E56 */ u8 field_0x1e56[5]; /* 0x1E5B */ u8 field_0x1E5B[0x1E5C - 0x1E5B]; /* 0x1E5C */ cXyz field_0x1e5c[5]; /* 0x1E98 */ cXyz field_0x1e98[5]; /* 0x1ED4 */ cXyz field_0x1ed4[5]; /* 0x1F10 */ Z2SoundObjSimple field_0x1f10[5]; /* 0x1FB0 */ u8 field_0x1FB0[0x1FB4 - 0x1FB0]; /* 0x1FB4 */ fopAc_ac_c* mMantChild; /* 0x1FB8 */ cXyz field_0x1fb8; /* 0x1FC4 */ int field_0x1fc4; /* 0x1FC8 */ s16 field_0x1fc8; /* 0x1FCA */ s16 field_0x1fca; /* 0x1FCC */ s16 field_0x1fcc; /* 0x1FCE */ u8 field_0x1FCE[0x1FD0 - 0x1FCE]; /* 0x1FD0 */ f32 field_0x1fd0; /* 0x1FD4 */ s16 field_0x1fd4; /* 0x1FD6 */ s16 field_0x1fd6; /* 0x1FD8 */ cXyz field_0x1fd8[2]; /* 0x1FF0 */ g_himo_s field_0x1ff0[2]; /* 0x2170 */ mDoExt_3DlineMat1_c field_0x2170[2]; /* 0x21E8 */ mDoExt_3DlineMat1_c field_0x21e8; /* 0x2224 */ dKy_tevstr_c field_0x2224; /* 0x25AC */ u32 field_0x25ac; /* 0x25B0 */ u32 field_0x25b0; /* 0x25B4 */ u32 field_0x25b4; /* 0x25B8 */ u32 field_0x25b8; /* 0x25BC */ u32 field_0x25bc; /* 0x25C0 */ u32 field_0x25c0; /* 0x25C4 */ u32 field_0x25c4; /* 0x25C8 */ u32 field_0x25c8; /* 0x25CC */ u32 field_0x25cc; /* 0x25D0 */ u32 field_0x25d0; /* 0x25D4 */ u8 field_0x25D4[0x25D8 - 0x25D4]; /* 0x25D8 */ u32 field_0x25d8; /* 0x25DC */ u32 field_0x25dc; /* 0x25E0 */ u32 field_0x25e0; /* 0x25E4 */ u32 field_0x25e4[3]; /* 0x25F0 */ u8 field_0x25F0[0x2688 - 0x25F0]; /* 0x2688 */ u32 field_0x2688; /* 0x268C */ u32 field_0x268c[3]; /* 0x2698 */ u8 field_0x2698[0x269C - 0x2698]; /* 0x269C */ cXyz field_0x269c; /* 0x26A8 */ cXyz field_0x26a8[2]; /* 0x26C0 */ s16 field_0x26c0; /* 0x26C2 */ s16 field_0x26c2; /* 0x26C4 */ s16 field_0x26c4; /* 0x26C6 */ s16 field_0x26c6; /* 0x26C8 */ cXyz field_0x26c8; /* 0x26D4 */ cXyz field_0x26d4; /* 0x26E0 */ cXyz field_0x26e0; /* 0x26EC */ cXyz field_0x26ec; /* 0x26F8 */ cXyz field_0x26f8; /* 0x2704 */ cXyz field_0x2704; /* 0x2710 */ cXyz field_0x2710; /* 0x271C */ s16 field_0x271c; /* 0x271E */ u8 field_0x271E[0x272C - 0x271E]; /* 0x272C */ s16 field_0x272c; /* 0x272E */ u8 field_0x272E[0x2730 - 0x272E]; /* 0x2730 */ f32 field_0x2730; /* 0x2734 */ f32 field_0x2734; /* 0x2738 */ u8 field_0x2738; /* 0x2739 */ u8 field_0x2739[0x273C - 0x2739]; /* 0x273C */ f32 field_0x273c; /* 0x2740 */ u8 field_0x2740; /* 0x2741 */ u8 field_0x2741[0x2744 - 0x2741]; /* 0x2744 */ dMsgFlow_c mMsgFlow; }; STATIC_ASSERT(sizeof(b_gnd_class) == 0x2790); class daB_GND_HIO_c { public: /* 805F4A4C */ daB_GND_HIO_c(); /* 80602230 */ ~daB_GND_HIO_c(); }; #endif /* D_A_B_GND_H */