#ifndef D_A_B_GM_H #define D_A_B_GM_H #include "f_op/f_op_actor_mng.h" #include "d/d_bg_s_acch.h" #include "d/d_cc_d.h" #include "d/d_cc_uty.h" struct b_gm_foot { /* 0x00 */ f32 field_0x0; /* 0x04 */ f32 field_0x4; /* 0x08 */ s16 field_0x8[1]; /* 0x0A */ s16 field_0xa; /* 0x0C */ s16 field_0xc; /* 0x10 */ cXyz field_0x10; /* 0x1C */ cXyz field_0x1c; }; /** * @ingroup actors-enemies * @class b_gm_class * @brief Armogohma * * @details Temple of Time dungeon boss. * */ class b_gm_class : public fopEn_enemy_c { public: /* 0x05AC */ request_of_phase_process_class mPhase; /* 0x05B4 */ u8 field_0x5B4[0x05B6 - 0x05B4]; /* 0x05B6 */ u8 field_0x5b6; /* 0x05B8 */ cXyz mTargetMovePos; /* 0x05C4 */ s16 mAngleToPlayer; /* 0x05C8 */ f32 mPlayerDistance; /* 0x05CC */ s16 unk_0x5cc; /* 0x05CE */ s16 field_0x5ce; /* 0x05D0 */ u8 field_0x5D0[0x05D4 - 0x05D0]; /* 0x05D4 */ f32 field_0x5d4; /* 0x05D8 */ f32 field_0x5d8; /* 0x05DC */ mDoExt_McaMorfSO* mpModelMorf; /* 0x05E0 */ Z2CreatureEnemy mCreatureSound; /* 0x0684 */ Z2SoundObjSimple mBeamSound; /* 0x06A4 */ int mAnmID; /* 0x06A8 */ mDoExt_btkAnm* mpZoomBtk; /* 0x06AC */ f32 mZoomBtkFrame; /* 0x06B0 */ u32 mShadowID; /* 0x06B4 */ u8 mIsDisappear; /* 0x06B8 */ mDoExt_McaMorf* mpBeamModelMorf; /* 0x06BC */ mDoExt_btkAnm* mpBeamBtk; /* 0x06C0 */ f32 field_0x6c0; /* 0x06C4 */ f32 field_0x6c4; /* 0x06C8 */ s16 field_0x6c8; /* 0x06CC */ cXyz field_0x6cc; /* 0x06D8 */ cXyz field_0x6d8; /* 0x06E4 */ u32 mBeamEmitterIDs[4]; /* 0x06F4 */ u8 field_0x6f4; /* 0x06F5 */ s8 field_0x6f5; /* 0x06F8 */ J3DModel* mpSpotLightModel[4]; /* 0x0708 */ mDoExt_btkAnm* mpSpotLightBtk; /* 0x070C */ f32 mSpotLightSize[4]; /* 0x071C */ s16 mCounter; /* 0x071E */ s16 mAction; /* 0x0720 */ s16 mMode; /* 0x0722 */ s16 mTimers[4]; /* 0x072A */ s16 mInvincibilityTimer; /* 0x072C */ u8 field_0x72C[0x0730 - 0x072C]; /* 0x0730 */ cXyz field_0x730; /* 0x073C */ cXyz field_0x73c; /* 0x0748 */ dBgS_AcchCir mAcchCir; /* 0x0788 */ dBgS_ObjAcch mAcch; /* 0x0960 */ dCcD_Stts mCcStts; /* 0x099C */ dCcD_Sph mCoreSph; /* 0x0AD4 */ dCcD_Sph mBodySph[2]; /* 0x0D44 */ dCcD_Sph mHandSph[2]; /* 0x0FB4 */ dCcD_Sph mFootSph[8]; /* 0x1974 */ dCcD_Sph mBeamSph; /* 0x1AAC */ s8 field_0x1aac; /* 0x1AB0 */ dCcU_AtInfo mAtInfo; /* 0x1AD4 */ s8 mHitCount; /* 0x1AD5 */ s8 field_0x1ad5; /* 0x1AD6 */ s8 field_0x1ad6; /* 0x1AD8 */ s16 field_0x1ad8; /* 0x1ADA */ s16 field_0x1ada; /* 0x1ADC */ s16 field_0x1adc; /* 0x1ADE */ s16 field_0x1ade; /* 0x1AE0 */ f32 field_0x1ae0; /* 0x1AE4 */ f32 mBodyColorIntensity; /* 0x1AE8 */ b_gm_foot mFoot[10]; /* 0x1C78 */ u8 field_0x1C78[0x1C84 - 0x1C78]; /* 0x1C84 */ u32 field_0x1c84; /* 0x1C88 */ u32 field_0x1c88; /* 0x1C8C */ s16 mDemoMode; /* 0x1C8E */ s16 mDemoModeTimer; /* 0x1C90 */ cXyz mDemoCamEye; /* 0x1C9C */ cXyz mDemoCamCenter; /* 0x1CA8 */ cXyz mDemoCamEyeTarget; /* 0x1CB4 */ cXyz mDemoCamCenterTarget; /* 0x1CC0 */ cXyz mDemoCamEyeSpeed; /* 0x1CCC */ cXyz mDemoCamCenterSpeed; /* 0x1CD8 */ f32 mDemoCamFovy; /* 0x1CDC */ f32 field_0x1cdc; /* 0x1CE0 */ f32 field_0x1ce0; /* 0x1CE4 */ s16 field_0x1ce4; /* 0x1CE6 */ s16 field_0x1ce6; /* 0x1CE8 */ s16 field_0x1ce8; /* 0x1CEC */ cXyz field_0x1cec; /* 0x1CF8 */ u8 field_0x1cf8; /* 0x1CF9 */ u8 field_0x1cf9; /* 0x1CFA */ u8 field_0x1cfa; /* 0x1CFC */ int field_0x1cfc; /* 0x1D00 */ f32 mKankyoBlend; /* 0x1D04 */ u8 mInitHIO; }; STATIC_ASSERT(sizeof(b_gm_class) == 0x1d08); #endif /* D_A_B_GM_H */