tp/include/d/actor/d_a_obj_magLift.h

81 lines
1.7 KiB
C++

#ifndef D_A_OBJ_MAGLIFT_H
#define D_A_OBJ_MAGLIFT_H
#include "d/d_bg_s_movebg_actor.h"
#include "d/d_com_inf_game.h"
/**
* @ingroup actors-objects
* @class daMagLift_c
* @brief Magnetic Lift
*
* @details
*
*/
class daMagLift_c : public dBgS_MoveBgActor {
public:
enum Mode_e {
MODE_ACC_e,
MODE_MOVE_e,
MODE_BRK_e,
MODE_WAIT_e,
MODE_WAIT_INIT_e,
MODE_DEAD_e,
MODE_MOVE_WAIT_e
};
void setBaseMtx();
int CreateHeap();
int create();
int Execute(Mtx**);
void moveLift();
void modeAcc();
void init_modeMove();
void modeMove();
void init_modeBrk();
void modeBrk();
void init_modeWaitInit();
void modeWaitInit();
void init_modeWait();
void modeWait();
void init_modeMoveWait();
void modeMoveWait();
void modeDead();
void setNextPoint();
int Draw();
int Delete();
int getMoveSpeed() { return fopAcM_GetParamBit(this, 0x8, 4); }
static f32 const mSpeed[16];
private:
/* 0x5a0 */ request_of_phase_process_class mPhaseReq;
/* 0x5a8 */ J3DModel* mpModel;
/* 0x5ac */ u8 field_0x5ac [0x5ae - 0x5ac];
/* 0x5ae */ u8 field_0x5ae;
/* 0x5af */ s8 field_0x5af;
/* 0x5b0 */ s16 mPoint;
/* 0x5b4 */ cXyz field_0x5b4;
/* 0x5c0 */ cXyz field_0x5c0;
/* 0x5cc */ f32 mMoveSpeed;
/* 0x5d0 */ u8 mMode;
/* 0x5d1 */ u8 is_switch;
};
STATIC_ASSERT(sizeof(daMagLift_c) == 0x5d4);
class daMagLift_HIO_c : public mDoHIO_entry_c {
public:
daMagLift_HIO_c();
virtual ~daMagLift_HIO_c() {}
void genMessage(JORMContext*);
/* 0x4 */ u8 field_0x4;
/* 0x5 */ u8 field_0x5;
};
#endif /* D_A_OBJ_MAGLIFT_H */