tp/include/d/actor/d_a_obj_bmshutter.h

84 lines
2.1 KiB
C++

#ifndef D_A_OBJ_BMSHUTTER_H
#define D_A_OBJ_BMSHUTTER_H
#include "d/d_bg_s_movebg_actor.h"
#include "f_op/f_op_actor_mng.h"
/**
* @ingroup actors-objects
* @class daObjBmSh_c
* @brief Boomerang Shutter
*
* @details
*
*/
class daObjBmSh_c : public dBgS_MoveBgActor {
public:
void initBaseMtx();
void setBaseMtx();
int Create();
int CreateHeap();
int create();
int Execute(Mtx**);
int checkSw();
int checkAnySw();
int checkMySw();
void event_proc_call();
void actionWait();
void actionOrderEvent();
void actionEvent();
void actionDead();
void mode_proc_call();
void modeWait();
void modeMove();
void modeEnd();
int Draw();
int Delete();
u32 getEvNo() { return fopAcM_GetParamBit(this, 16, 8); }
u32 getSwbit() { return fopAcM_GetParamBit(this, 0, 8); }
u32 getSwbit2() { return fopAcM_GetParamBit(this, 8, 8); }
int getSwbit3() { return mHomeX & 0xff; }
u32 getSwNum() { return fopAcM_GetParamBit(this, 24, 4); }
u32 getShtrNum() { return fopAcM_GetParamBit(this, 28, 2); }
void setAction(u8 action) { mAction = action; }
void setMoveMode(u8 mode) { mMoveMode = mode; }
private:
/* 0x5a0 */ request_of_phase_process_class mPhase;
/* 0x5a8 */ J3DModel* mModel;
/* 0x5ac */ s16 mEventIdx;
/* 0x5ae */ u8 mEvent;
/* 0x5af */ u8 mAction;
/* 0x5b0 */ u8 mMoveMode;
/* 0x5b1 */ u8 mCurrentlyAnySw;
/* 0x5b4 */ f32 mHeight;
/* 0x5b8 */ f32 mShakeIntensity;
/* 0x5bc */ csXyz mRotation;
/* 0x5c4 */ int mTickCounter;
/* 0x5c8 */ u16 mHomeX;
/* 0x5ca */ u16 mHomeZ;
/* 0x5cc */ bool mIsInitialized;
/* 0x5cd */ u8 mCurrentlyMySw;
/* 0x5d0 */ cXyz mSoundPosition;
};
STATIC_ASSERT(sizeof(daObjBmSh_c) == 0x5dc);
enum daObjBmSh_Action {
daObjBmSh_Action_WAIT_e = 0,
daObjBmSh_Action_ORDER_EVENT_e = 1,
daObjBmSh_Action_EVENT_e = 2,
daObjBmSh_Action_DEAD_e = 3,
};
enum daObjBmSh_MoveMode {
daObjBmSh_MoveMode_WAIT_e = 0,
daObjBmSh_MoveMode_MOVE_e = 1,
daObjBmSh_MoveMode_END_e = 2,
};
#endif /* D_A_OBJ_BMSHUTTER_H */