tp/include/d/actor/d_a_obj_ladder.h

100 lines
2.2 KiB
C++

#ifndef D_A_OBJ_LADDER_H
#define D_A_OBJ_LADDER_H
#include "d/d_bg_s_movebg_actor.h"
#include "d/d_a_obj.h"
/**
* @ingroup actors-objects
* @class daObjLadder
* @brief Ladder
*
* @details
*
*/
namespace daObjLadder {
class Act_c : public dBgS_MoveBgActor {
public:
enum Prm_e {
PRM_0 = 0,
PRM_3 = 3,
PRM_8 = 8,
PRM_16 = 16,
};
enum Type_e {
TYPE_0,
TYPE_1,
TYPE_2,
TYPE_3,
TYPE_4,
TYPE_5,
};
enum Mode {
MODE_WAIT,
MODE_DEMOREQ,
MODE_VIB,
MODE_DROP,
MODE_FELL,
};
typedef void (Act_c::*modeProc)();
int CreateHeap();
int Create();
int Mthd_Create();
int Delete();
int Mthd_Delete();
void demo_end_reset();
void mode_wait_init();
void mode_wait();
void mode_demoreq_init();
void mode_demoreq();
void mode_vib_init();
void mode_vib();
void mode_drop_init();
void mode_drop();
void mode_fell_init();
void mode_fell();
void set_mtx();
void init_mtx();
int Execute(Mtx**);
int Draw();
u8 prm_get_evId() {
return daObj::PrmAbstract(this, PRM_8, PRM_16);
}
int prm_get_swSave() {
return daObj::PrmAbstract(this,PRM_8, PRM_8);
}
Type_e prm_get_type() {
return(Type_e)daObj::PrmAbstract(this,PRM_3, PRM_0);
}
static char const M_arcname[5];
static Mtx M_tmp_mtx;
private:
/* 0x5A0 */ request_of_phase_process_class mPhase;
/* 0x5A8 */ J3DModel* mModel;
/* 0x5AC */ Type_e mType;
/* 0x5B0 */ Mode mMode;
/* 0x5B4 */ s16 mVibrationTimer;
/* 0x5B6 */ s16 field_0x5b6;
/* 0x5B8 */ f32 mHeight;
/* 0x5BC */ dBgS_ObjGndChk mGndChk;
/* 0x610 */ s16 field_0x610;
/* 0x612 */ s16 field_0x612;
/* 0x614 */ f32 field_0x614;
/* 0x618 */ f32 field_0x618;
/* 0x61C */ s16 mEventIdx;
/* 0x61E */ bool mInDemo;
};
};
STATIC_ASSERT(sizeof(daObjLadder::Act_c) == 0x620);
#endif /* D_A_OBJ_LADDER_H */