#ifndef D_A_AM_H #define D_A_AM_H #include "f_op/f_op_actor.h" #include "d/d_cc_d.h" #include "d/d_bg_s_acch.h" #include "d/d_particle.h" #include "c/c_damagereaction.h" #include "SSystem/SComponent/c_phase.h" struct am_class { /* 0x0000 */ fopEn_enemy_c actor; /* 0x02AC */ request_of_phase_process_class mPhase; /* 0x02B4 */ JntHit_c* mEyeJntHit; /* 0x02B8 */ mDoExt_McaMorf* mpMorf; /* 0x02BC */ u8 m02BC[0x02C0 - 0x02BC]; /* 0x02C0 */ u8 mType; /* 0x02C1 */ u8 mPrmAreaRadius; /* 0x02C2 */ u8 mStartsInactive; /* 0x02C3 */ u8 mSwitch; /* 0x02C4 */ u8 mAction; /* 0x02C5 */ u8 mMode; /* 0x02C6 */ u8 mHugeKnockback; /* 0x02C7 */ bool mbIsBodyBeingHit; /* 0x02C8 */ s16 mCountDownTimers[4]; /* 0x02D0 */ s16 mCountUpTimers[5]; /* 0x02DA */ s16 mTargetAngleY; /* 0x02DC */ s16 mSpawnRotY; /* 0x02DE */ u8 m02DE[0x02E0 - 0x02DE]; /* 0x02E0 */ int mCurrBckIdx; /* 0x02E4 */ fpc_ProcID mSwallowedActorPID; /* 0x02E8 */ f32 mAreaRadius; /* 0x02EC */ f32 mCorrectionOffsetY; /* 0x02F0 */ f32 mSpawnPosY; /* 0x02F4 */ cXyz mEyeballPos; /* 0x0300 */ cXyz mMouthPos; /* 0x030C */ cXyz mWaistPos; /* 0x0318 */ cXyz mJawPos; /* 0x0324 */ cXyz mSpawnPos; /* 0x0330 */ csXyz mEyeRot; /* 0x0336 */ csXyz mTargetEyeRot; #if VERSION == VERSION_DEMO /* 0x033C */ JPABaseEmitter* m033C_demo; #endif /* 0x033C */ JPABaseEmitter* m033C; /* 0x0340 */ JPABaseEmitter* m0340; /* 0x0344 */ dPa_smokeEcallBack mSmokeCbs[4]; /* 0x03C4 */ dBgS_AcchCir mAcchCir; /* 0x0404 */ dBgS_ObjAcch mAcch; /* 0x05C8 */ dCcD_Stts mStts; /* 0x0604 */ dCcD_Sph mEyeSph; /* 0x0730 */ dCcD_Sph mMouthSph; /* 0x085C */ dCcD_Cyl mBodyCyl; /* 0x098C */ dCcD_Cyl mNeedleCyl; /* 0x0ABC */ enemyice mEnemyIce; /* 0x0E74 */ enemyfire mEnemyFire; }; #endif /* D_A_AM_H */