mirror of https://github.com/zeldaret/tp.git
84 lines
2.1 KiB
C++
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 */
|