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