Files
tp/include/d/actor/d_a_obj_amiShutter.h
T
TakaRikka 5867eaf68b general cleanup, d_menu_quit / d_a_obj_testcube mostly done, d_msg_scrn_explain debug (#3065)
* typedef for cPhs_Step

* make sdk includes consistent

* d_menu_quit / d_msg_scrn_explain debug

* d_a_obj_testcube mostly done

* d_debug_pad mostly done

* jstudio tool library headers

* some JStudioCameraEditor headers

* d_jcam_editor mostly done

* try fixing some shield regressions

* d_bg_parts mostly done

* fix merge errors

* debug fix
2026-01-24 23:36:23 -08:00

81 lines
1.8 KiB
C++

#ifndef D_A_OBJ_AMISHUTTER_H
#define D_A_OBJ_AMISHUTTER_H
#include "d/d_bg_s_movebg_actor.h"
#include "d/d_event_lib.h"
#include "f_op/f_op_actor_mng.h"
/**
* @ingroup actors-objects
* @class daAmiShutter_c
* @brief Drain Gate
*
* @details
*
*/
class daAmiShutter_c : public dBgS_MoveBgActor, public request_of_phase_process_class, public dEvLib_callback_c {
public:
typedef void (daAmiShutter_c::*modeProc)();
enum Mode {
MODE_WAIT = 0,
MODE_WAIT_EVENT = 1,
MODE_CLOSE = 2,
MODE_CLOSE_EVENT = 3,
MODE_CLOSE_END = 4,
MODE_OPEN = 5
};
daAmiShutter_c(): dEvLib_callback_c(this) {}
~daAmiShutter_c() {}
void setBaseMtx();
int CreateHeap();
cPhs_Step create();
int Execute(Mtx**);
void moveShutter();
BOOL playerAreaCheck();
void init_modeWait();
void modeWait();
void init_modeWaitEvent();
void modeWaitEvent();
bool eventStart();
void init_modeClose();
void modeClose();
void init_modeCloseEvent();
void modeCloseEvent();
void init_modeCloseEnd();
void modeCloseEnd();
void init_modeOpen();
void modeOpen();
int Draw();
int Delete();
u8 getType() { return fopAcM_GetParamBit(this, 16, 4); }
u8 getSwBit() { return fopAcM_GetParamBit(this, 8, 8); }
int getEvent() { return fopAcM_GetParamBit(this, 0, 8); }
bool isShutterOpen() { return mOpen; }
private:
/* 0x5b8 */ request_of_phase_process_class mPhaseReq;
/* 0x5c0 */ J3DModel* mpModel;
/* 0x5c4 */ u8 mMode;
/* 0x5c5 */ u8 mType;
/* 0x5c6 */ u8 mSwBit;
/* 0x5c7 */ u8 mSwitch;
/* 0x5c8 */ f32 mPosZ;
/* 0x5cc */ cXyz mPos;
/* 0x5d8 */ u8 mWaitTime;
/* 0x5d9 */ bool mOpen;
};
STATIC_ASSERT(sizeof(daAmiShutter_c) == 0x5dc);
#endif /* D_A_OBJ_AMISHUTTER_H */