tp/include/d/actor/d_a_obj_cdoor.h

77 lines
1.7 KiB
C++

#ifndef D_A_OBJ_CDOOR_H
#define D_A_OBJ_CDOOR_H
#include "SSystem/SComponent/c_phase.h"
#include "d/d_bg_s_movebg_actor.h"
/**
* @ingroup actors-objects
* @class daObjCdoor_c
* @brief Chain Door
*
* @details
*
*/
class daObjCdoor_c : public dBgS_MoveBgActor {
public:
enum Mode {
/* 0 */ MODE_WAIT,
/* 1 */ MODE_OPEN,
/* 2 */ MODE_CLOSE,
};
enum Action {
/* 0 */ ACT_WAIT,
/* 1 */ ACT_ORDER_EVENT,
/* 2 */ ACT_EVENT,
/* 3 */ ACT_DEAD,
};
virtual ~daObjCdoor_c();
int CreateHeap();
cPhs__Step create();
void setMatrix();
int Execute(Mtx**);
void execCdoor();
void execWgate();
void init_modeWait();
void modeWait();
void init_modeOpen();
void modeOpen();
void init_modeClose();
void modeClose();
void event_proc_call();
void actionWait();
void actionOrderEvent();
void actionEvent();
void actionDead();
int Draw();
void setAction(u8 i_action) { mAction = i_action; }
int getSwitchNum() { return mSw; }
void setChainID(u32 i_id) { mChainID = i_id; }
private:
/* 0x5A0 */ request_of_phase_process_class mPhaseReq;
/* 0x5A8 */ J3DModel* mpModel;
/* 0x5AC */ bool mEnd;
/* 0x5AD */ bool mCamLock;
/* 0x5AE */ u8 mType;
/* 0x5AF */ u8 field_0x5af;
/* 0x5B0 */ u8 mIsOpen;
/* 0x5B1 */ u8 field_0x5b1[3];
/* 0x5B4 */ s16 mEventID;
/* 0x5B6 */ u8 mMapToolID;
/* 0x5B7 */ u8 mAction;
/* 0x5B8 */ u32 mChainID;
/* 0x5BC */ int mSw;
/* 0x5C0 */ mDoExt_bckAnm mOpenAnm;
/* 0x5DC */ mDoExt_bckAnm mCloseAnm;
/* 0x5F8 */ u8 field_0x5f8;
/* 0x5F9 */ u8 mMode;
};
STATIC_ASSERT(sizeof(daObjCdoor_c) == 0x5FC);
#endif /* D_A_OBJ_CDOOR_H */