#ifndef D_A_OBJ_LV6BEMOS2_H #define D_A_OBJ_LV6BEMOS2_H #include "d/d_bg_s_movebg_actor.h" #include "d/d_cc_d.h" #include "f_op/f_op_actor_mng.h" /** * @ingroup actors-objects * @class daObjLv6Bm_c * @brief Temple of Time Beamos * * @details * */ class daObjLv6Bm_c : public dBgS_MoveBgActor { public: typedef void (daObjLv6Bm_c::*actionFunc)(); typedef void (daObjLv6Bm_c::*effectFunc)(); /* 80C7E30C */ void initBaseMtx(); /* 80C7E374 */ void setBaseMtx(); /* 80C7E448 */ int Create(); /* 80C7E764 */ int CreateHeap(); /* 80C7EB7C */ cPhs__Step create1st(); /* 80C7EC6C */ int Execute(Mtx**); /* 80C7EE50 */ void action(); /* 80C7F2A4 */ void calcBeam(); /* 80C7F904 */ int checkFindPlayer(); /* 80C7FA54 */ s8 checkSearchPlayer(); /* 80C7FBA4 */ f32 getSearchDistance(); /* 80C7FBFC */ f32 getBeamSearchDistance(); /* 80C7FC54 */ void effect_proc(); /* 80C7FD8C */ void effectWait(); /* 80C7FD90 */ void initEffectSet0(); /* 80C7FEC4 */ void effectSet0(); /* 80C7FF78 */ void initActionSwWait(); /* 80C7FFB8 */ void actionSwWait(); /* 80C802AC */ void initActionWarning(); /* 80C802C0 */ void actionWarning(); /* 80C803D8 */ void initActionFindPlayer(); /* 80C80538 */ void actionFindPlayer(); /* 80C80684 */ void initActionAttack(); /* 80C8082C */ void actionAttack(); /* 80C80F48 */ void initActionDead(); /* 80C81154 */ void actionDead(); /* 80C81428 */ void initActionEnd(); /* 80C814FC */ void actionEnd(); /* 80C81500 */ int Draw(); /* 80C816A8 */ int Delete(); u8 getSwNo() { return fopAcM_GetParamBit(this, 0, 8); } u8 getSwNo2() { return fopAcM_GetParamBit(this, 8, 8); } u8 getSwNo3() { return fopAcM_GetParamBit(this, 16, 8); } s16 getHeadJoint() { return mJoints[0]; } s16 getBigGearJoint() { return mJoints[1]; } s16 getSmallGear0Joint() { return mJoints[2]; } s16 getSmallGear1Joint() { return mJoints[3]; } s16 getSmallGear2Joint() { return mJoints[4]; } u8 getSearchDist() { return fopAcM_GetParamBit(this, 0x1C, 4); } u16 getBeamSearchDist() { return field_0xa32 & 15; } u8 checkLockOnCamera() { return (field_0xa32 & 0x8000) >> 15; } /* 0x568 */ request_of_phase_process_class mPhase; /* 0x5A8 */ J3DModel* mBeamosModel; /* 0x5AC */ mDoExt_brkAnm* mpBrkAnm; /* 0x5B0 */ mDoExt_bckAnm* mpBckAnm; /* 0x5B4 */ J3DModel* mBeamEffectModel; /* 0x5B8 */ mDoExt_btkAnm* mpBtkAnm; /* 0x5BC */ mDoExt_btkAnm* mpBtkAnm2; /* 0x5C0 */ mDoExt_bckAnm* mpBckAnm2; /* 0x5C4 */ dCcD_Stts mStts; /* 0x600 */ dCcD_Sph field_0x600; /* 0x738 */ dCcD_Cps field_0x738; /* 0x87C */ dCcD_Cyl field_0x87c; /* 0x9B8 */ s16 mJoints[5]; /* 0x9C2 */ s16 field_0x9c2; /* 0x9C4 */ s16 field_0x9c4; /* 0x9C6 */ s16 field_0x9c6; /* 0x9C8 */ s16 field_0x9c8; /* 0x9CA */ s16 field_0x9ca; /* 0x9CC */ s16 field_0x9cc; /* 0x9CE */ s16 field_0x9ce; /* 0x9D0 */ s16 field_0x9d0; /* 0x9D2 */ s16 field_0x9d2; /* 0x9D4 */ s16 field_0x9d4; /* 0x9D6 */ s16 field_0x9d6; /* 0x9D8 */ s16 field_0x9d8; /* 0x9DA */ s16 field_0x9da; /* 0x9DC */ s16 field_0x9dc; /* 0x9DE */ s16 field_0x9de; /* 0x9E0 */ J3DMaterial* mEyeMaterial; /* 0x9E4 */ cXyz field_0x9e4; /* 0x9F0 */ csXyz field_0x9f0; /* 0x9F8 */ cXyz field_0x9f8; /* 0xA04 */ u8 field_0xa04[0xa0c - 0xa04]; /* 0xA0C */ f32 field_0xa0c; /* 0xA10 */ u8 field_0xa10; /* 0xA11 */ u8 field_0xa11; /* 0xA12 */ u8 field_0xa12; /* 0xA13 */ u8 field_0xa13; /* 0xA14 */ s8 field_0xa14; /* 0xA15 */ u8 field_0xa15; /* 0xA16 */ u8 mMode; /* 0xA17 */ u8 field_0xa17; /* 0xA18 */ u8 field_0xa18; /* 0xA19 */ s8 field_0xa19; /* 0xA1A */ u8 field_0xa1a; /* 0xA1B */ u8 field_0xa1b; /* 0xA1C */ u8 field_0xa1c; /* 0xA20 */ int field_0xa20; /* 0XA24 */ JPABaseEmitter* field_0xa24; /* 0xA28 */ f32 field_0xa28; /* 0xA2C */ f32 field_0xa2c; /* 0xA30 */ u16 field_0xa30; /* 0xA32 */ u16 field_0xa32; /* 0xA34 */ s16 field_0xa34; /* 0xA36 */ u8 field_0xa36; /* 0xA37 */ u8 field_0xa37; /* 0xA38 */ JPABaseEmitter* field_0xa38[2]; /* 0xA40 */ JPABaseEmitter* field_0xa40[4]; /* 0xA50 */ JPABaseEmitter* field_0xa50; /* 0xA54 */ JPABaseEmitter* field_0xa54; /* 0xA58 */ cXyz field_0xa58; /* 0xA64 */ cXyz field_0xa64; /* 0xA70 */ cXyz field_0xa70; /* 0xA7C */ Z2SoundObjSimple field_0xa7c; /* 0xA9C */ Z2SoundObjSimple field_0xa9c; }; STATIC_ASSERT(sizeof(daObjLv6Bm_c) == 0xabc); #endif /* D_A_OBJ_LV6BEMOS2_H */