tp/include/d/actor/d_a_obj_lv8OptiLift.h

113 lines
3.3 KiB
C++

#ifndef D_A_OBJ_LV8OPTILIFT_H
#define D_A_OBJ_LV8OPTILIFT_H
#include "f_op/f_op_actor_mng.h"
#include "d/d_bg_s_movebg_actor.h"
/**
* @ingroup actors-objects
* @class daOptiLift_c
* @brief Palace of Twilight Optilift
*
* @details
*
*/
class daOptiLift_c : public dBgS_MoveBgActor {
public:
enum MODE_e {
MODE_ACC_e,
MODE_MOVE_e,
MODE_BRK_e,
MODE_WAIT_e,
MODE_MOVE_INIT_e,
MODE_MOVE_WAIT_e,
MODE_STOP_e,
MODE_INIT_SET_e,
MODE_INIT_SET2_e,
};
/* 80C8A3B0 */ void setBaseMtx();
/* 80C8A500 */ int create();
/* 80C8A780 */ void lightSet();
/* 80C8A7D0 */ static void rideCallBack(dBgW*, fopAc_ac_c*, fopAc_ac_c*);
/* 80C8A848 */ void moveLift();
/* 80C8AAC4 */ void init_modeAcc();
/* 80C8AAD0 */ void modeAcc();
/* 80C8ABB0 */ void init_modeMove();
/* 80C8ABBC */ void modeMove();
/* 80C8AED4 */ void init_modeBrk();
/* 80C8AEE0 */ void modeBrk();
/* 80C8B100 */ void init_modeMoveInit();
/* 80C8B1B0 */ void modeMoveInit();
/* 80C8B1F0 */ void init_modeMoveWait();
/* 80C8B230 */ void modeMoveWait();
/* 80C8B288 */ void init_modeWait();
/* 80C8B294 */ void modeWait();
/* 80C8B298 */ void init_modeStop();
/* 80C8B318 */ void modeStop();
/* 80C8B428 */ void init_modeInitSet();
/* 80C8B464 */ void modeInitSet();
/* 80C8B484 */ void init_modeInitSet2();
/* 80C8B4B8 */ void modeInitSet2();
/* 80C8B4D8 */ void liftReset();
/* 80C8B53C */ void setNextPoint();
/* 80C8A438 */ virtual int CreateHeap();
/* 80C8A7E8 */ virtual int Execute(f32 (**)[3][4]);
/* 80C8B66C */ virtual int Draw();
/* 80C8B824 */ virtual int Delete();
u8 getPthID() { return fopAcM_GetParamBit(this, 8, 8); }
int getMoveSpped() { return fopAcM_GetParamBit(this, 0x10, 4); }
int getSw() { return fopAcM_GetParamBit(this, 0, 8); }
int getArg1() { return fopAcM_GetParamBit(this, 0x14, 4); }
static f32 const mSpeed[];
/* 0x5A0 */ request_of_phase_process_class mPhase;
/* 0x5A8 */ J3DModel* mpModel;
/* 0x5AC */ mDoExt_btkAnm mBtk;
/* 0x5C4 */ u8 mSwBit;
/* 0x5C5 */ u8 field_0x5C5[0x5C8 - 0x5C5];
/* 0x5C8 */ u8 mPathID;
/* 0x5C9 */ s8 mPathDirection;
/* 0x5CA */ s16 mCurrentPoint;
/* 0x5CC */ cXyz mTargetPos;
/* 0x5D8 */ cXyz mPrevTargetPos;
/* 0x5E4 */ f32 mMoveSpeed;
/* 0x5E8 */ u8 mMode;
/* 0x5E9 */ u8 mIsSwitch;
/* 0x5EA */ u8 mStopDisappearTimer;
/* 0x5EB */ u8 mPlayerRide;
/* 0x5EC */ u8 mPrevPlayerRide;
/* 0x5ED */ u8 field_0x5ED[0x5F4 - 0x5ED];
/* 0x5F4 */ LIGHT_INFLUENCE mLight;
/* 0x614 */ u8 mLightSet;
/* 0x615 */ u8 mNoRideOffSwTimer;
/* 0x616 */ u8 field_0x616;
};
STATIC_ASSERT(sizeof(daOptiLift_c) == 0x618);
class daOptiLift_HIO_c : public mDoHIO_entry_c {
public:
/* 80C8A30C */ daOptiLift_HIO_c();
/* 80C8B900 */ virtual ~daOptiLift_HIO_c() {}
void genMessage(JORMContext*);
/* 0x04 */ u8 mStopDisappearTime;
/* 0x05 */ u8 mStartMoveTime;
/* 0x06 */ u8 mColorAnmFrame;
/* 0x07 */ u8 mColorR;
/* 0x08 */ u8 mColorG;
/* 0x09 */ u8 mColorB;
/* 0x0C */ f32 mLightRadius;
/* 0x10 */ u8 mLightColorR;
/* 0x11 */ u8 mLightColorG;
/* 0x12 */ u8 mLightColorB;
};
#endif /* D_A_OBJ_LV8OPTILIFT_H */