mirror of https://github.com/zeldaret/tp.git
126 lines
3.6 KiB
C++
126 lines
3.6 KiB
C++
#ifndef D_A_OBJ_LV8LIFT_H
|
|
#define D_A_OBJ_LV8LIFT_H
|
|
|
|
#include "d/d_bg_s_acch.h"
|
|
#include "d/d_bg_s_movebg_actor.h"
|
|
#include "f_op/f_op_actor_mng.h"
|
|
|
|
/**
|
|
* @ingroup actors-objects
|
|
* @class daL8Lift_c
|
|
* @brief Palace of Twilight Platform Lift
|
|
*
|
|
* @details
|
|
*
|
|
*/
|
|
class daL8Lift_c : public dBgS_MoveBgActor {
|
|
public:
|
|
enum MODE_e {
|
|
MODE_ACC_e,
|
|
MODE_MOVE_e,
|
|
MODE_BRK_e,
|
|
MODE_WAIT_e,
|
|
MODE_WAIT_INIT_e,
|
|
MODE_ON_ANM_e,
|
|
MODE_MOVE_WAIT_e,
|
|
MODE_STOP_e,
|
|
MODE_INIT_SET_e,
|
|
MODE_INIT_SET2_e
|
|
};
|
|
|
|
/* 80C887D8 */ void setBaseMtx();
|
|
/* 80C88860 */ int CreateHeap();
|
|
/* 80C88928 */ int create();
|
|
/* 80C88D6C */ void lightSet();
|
|
/* 80C88DBC */ static void rideCallBack(dBgW*, fopAc_ac_c*, fopAc_ac_c*);
|
|
/* 80C88DD4 */ int Execute(f32 (**)[3][4]);
|
|
/* 80C88E34 */ void moveLift();
|
|
/* 80C890B8 */ void modeAcc();
|
|
/* 80C89198 */ void init_modeMove();
|
|
/* 80C891A4 */ void modeMove();
|
|
/* 80C894BC */ void init_modeBrk();
|
|
/* 80C894C8 */ void modeBrk();
|
|
/* 80C896C8 */ void init_modeWaitInit();
|
|
/* 80C896D4 */ void modeWaitInit();
|
|
/* 80C89708 */ void init_modeWait();
|
|
/* 80C89714 */ void modeWait();
|
|
/* 80C89720 */ void init_modeMoveWait();
|
|
/* 80C8972C */ void modeMoveWait();
|
|
/* 80C89770 */ void init_modeOnAnm();
|
|
/* 80C89820 */ void modeOnAnm();
|
|
/* 80C89874 */ void init_modeStop();
|
|
/* 80C898DC */ void modeStop();
|
|
/* 80C899D0 */ void init_modeInitSet();
|
|
/* 80C89A04 */ void modeInitSet();
|
|
/* 80C89A24 */ void init_modeInitSet2();
|
|
/* 80C89A58 */ void modeInitSet2();
|
|
/* 80C89A78 */ void liftReset();
|
|
/* 80C89ADC */ void setNextPoint();
|
|
/* 80C89C10 */ int Draw();
|
|
/* 80C89DC8 */ int Delete();
|
|
|
|
u8 getPthID() { return fopAcM_GetParamBit(this, 0, 8); }
|
|
u8 getMoveSpeed() { return fopAcM_GetParamBit(this, 8, 4); }
|
|
int getSw() { return fopAcM_GetParamBit(this, 12, 8); }
|
|
|
|
static f32 const mSpeed[16];
|
|
|
|
private:
|
|
/* 0x5A0 */ request_of_phase_process_class mPhase;
|
|
/* 0x5A8 */ J3DModel* mpModel;
|
|
/* 0x5AC */ mDoExt_btkAnm mBtk;
|
|
/* 0x5C4 */ u8 field_0x5c4;
|
|
/* 0x5C5 */ u8 field_0x5c5;
|
|
/* 0x5C6 */ u8 mPathID;
|
|
/* 0x5C7 */ s8 mPathDirection;
|
|
/* 0x5C8 */ s16 mCurrentPoint;
|
|
/* 0x5CA */ u8 field_0x5ca;
|
|
/* 0x5CB */ u8 field_0x5cb;
|
|
/* 0x5CC */ cXyz mTargetPos;
|
|
/* 0x5D8 */ cXyz mPrevTargetPos;
|
|
/* 0x5E4 */ f32 mMoveSpeed;
|
|
/* 0x5E8 */ u8 mMode;
|
|
/* 0x5E9 */ u8 mSwbit;
|
|
/* 0x5EA */ u8 mIsSwitch;
|
|
/* 0x5EB */ u8 field_0x5eb;
|
|
/* 0x5EC */ dBgS_AcchCir mAcchCir;
|
|
/* 0x62C */ dBgS_ObjAcch mAcch;
|
|
/* 0x804 */ u8 field_0x804;
|
|
/* 0x805 */ u8 field_0x805;
|
|
/* 0x806 */ u8 field_0x806;
|
|
/* 0x807 */ u8 field_0x807;
|
|
/* 0x808 */ u8 field_0x808;
|
|
/* 0x809 */ u8 mStopDisappearTimer;
|
|
/* 0x80A */ u8 mPlayerRide;
|
|
/* 0x80B */ u8 mPrevPlayerRide;
|
|
/* 0x80C */ u8 mNoRideOffSwTimer;
|
|
/* 0x80D */ u8 mLightSet;
|
|
/* 0x80E */ u8 field_0x80e;
|
|
/* 0x80F */ u8 field_0x80f;
|
|
/* 0x810 */ LIGHT_INFLUENCE mLight;
|
|
};
|
|
|
|
STATIC_ASSERT(sizeof(daL8Lift_c) == 0x830);
|
|
|
|
class daL8Lift_HIO_c : public mDoHIO_entry_c {
|
|
public:
|
|
/* 80C8872C */ daL8Lift_HIO_c();
|
|
/* 80C89EA4 */ virtual ~daL8Lift_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_LV8LIFT_H */
|