11#ifndef D_A_OBJ_LV8LIFT_H
22#define D_A_OBJ_LV8LIFT_H
33
4+ #include " d/d_bg_s_acch.h"
5+ #include " d/d_bg_s_movebg_actor.h"
46#include " f_op/f_op_actor_mng.h"
57
68/* *
1113 * @details
1214 *
1315 */
14- class daL8Lift_c : public fopAc_ac_c {
16+ class daL8Lift_c : public dBgS_MoveBgActor {
1517public:
18+ enum MODE_e {
19+ MODE_ACC_e,
20+ MODE_MOVE_e,
21+ MODE_BRK_e,
22+ MODE_WAIT_e,
23+ MODE_WAIT_INIT_e,
24+ MODE_ON_ANM_e,
25+ MODE_MOVE_WAIT_e,
26+ MODE_STOP_e,
27+ MODE_INIT_SET_e,
28+ MODE_INIT_SET2_e
29+ };
30+
1631 /* 80C887D8 */ void setBaseMtx ();
17- /* 80C88860 */ void CreateHeap ();
18- /* 80C88928 */ void create ();
32+ /* 80C88860 */ int CreateHeap ();
33+ /* 80C88928 */ int create ();
1934 /* 80C88D6C */ void lightSet ();
20- /* 80C88DBC */ void rideCallBack (dBgW*, fopAc_ac_c*, fopAc_ac_c*);
21- /* 80C88DD4 */ void Execute (f32 (**)[3][4]);
35+ /* 80C88DBC */ static void rideCallBack (dBgW*, fopAc_ac_c*, fopAc_ac_c*);
36+ /* 80C88DD4 */ int Execute (f32 (**)[3][4]);
2237 /* 80C88E34 */ void moveLift ();
2338 /* 80C890B8 */ void modeAcc ();
2439 /* 80C89198 */ void init_modeMove ();
@@ -41,21 +56,69 @@ class daL8Lift_c : public fopAc_ac_c {
4156 /* 80C89A58 */ void modeInitSet2 ();
4257 /* 80C89A78 */ void liftReset ();
4358 /* 80C89ADC */ void setNextPoint ();
44- /* 80C89C10 */ void Draw ();
45- /* 80C89DC8 */ void Delete ();
59+ /* 80C89C10 */ int Draw ();
60+ /* 80C89DC8 */ int Delete ();
61+
62+ u8 getPthID () { return fopAcM_GetParamBit (this , 0 , 8 ); }
63+ u8 getMoveSpeed () { return fopAcM_GetParamBit (this , 8 , 4 ); }
64+ int getSw () { return fopAcM_GetParamBit (this , 12 , 8 ); }
4665
47- static u8 const mSpeed [64 ];
66+ static f32 const mSpeed [16 ];
4867
4968private:
50- /* 0x568 */ u8 field_0x568[0x830 - 0x568 ];
69+ /* 0x5A0 */ request_of_phase_process_class mPhase ;
70+ /* 0x5A8 */ J3DModel* mpModel;
71+ /* 0x5AC */ mDoExt_btkAnm mBtk ;
72+ /* 0x5C4 */ u8 field_0x5c4;
73+ /* 0x5C5 */ u8 field_0x5c5;
74+ /* 0x5C6 */ u8 mPathID ;
75+ /* 0x5C7 */ s8 mPathDirection ;
76+ /* 0x5C8 */ s16 mCurrentPoint ;
77+ /* 0x5CA */ u8 field_0x5ca;
78+ /* 0x5CB */ u8 field_0x5cb;
79+ /* 0x5CC */ cXyz mTargetPos ;
80+ /* 0x5D8 */ cXyz mPrevTargetPos ;
81+ /* 0x5E4 */ f32 mMoveSpeed ;
82+ /* 0x5E8 */ u8 mMode ;
83+ /* 0x5E9 */ u8 mSwbit ;
84+ /* 0x5EA */ u8 mIsSwitch ;
85+ /* 0x5EB */ u8 field_0x5eb;
86+ /* 0x5EC */ dBgS_AcchCir mAcchCir ;
87+ /* 0x62C */ dBgS_ObjAcch mAcch ;
88+ /* 0x804 */ u8 field_0x804;
89+ /* 0x805 */ u8 field_0x805;
90+ /* 0x806 */ u8 field_0x806;
91+ /* 0x807 */ u8 field_0x807;
92+ /* 0x808 */ u8 field_0x808;
93+ /* 0x809 */ u8 mStopDisappearTimer ;
94+ /* 0x80A */ u8 mPlayerRide ;
95+ /* 0x80B */ u8 mPrevPlayerRide ;
96+ /* 0x80C */ u8 mNoRideOffSwTimer ;
97+ /* 0x80D */ u8 mLightSet ;
98+ /* 0x80E */ u8 field_0x80e;
99+ /* 0x80F */ u8 field_0x80f;
100+ /* 0x810 */ LIGHT_INFLUENCE mLight ;
51101};
52102
53103STATIC_ASSERT (sizeof (daL8Lift_c) == 0x830);
54104
55- class daL8Lift_HIO_c {
105+ class daL8Lift_HIO_c : public mDoHIO_entry_c {
56106public:
57107 /* 80C8872C */ daL8Lift_HIO_c();
58- /* 80C89EA4 */ ~daL8Lift_HIO_c ();
108+ /* 80C89EA4 */ virtual ~daL8Lift_HIO_c () {}
109+
110+ void genMessage (JORMContext*);
111+
112+ /* 0x04 */ u8 mStopDisappearTime ;
113+ /* 0x05 */ u8 mStartMoveTime ;
114+ /* 0x06 */ u8 mColorAnmFrame ;
115+ /* 0x07 */ u8 mColorR ;
116+ /* 0x08 */ u8 mColorG ;
117+ /* 0x09 */ u8 mColorB ;
118+ /* 0x0C */ f32 mLightRadius ;
119+ /* 0x10 */ u8 mLightColorR ;
120+ /* 0x11 */ u8 mLightColorG ;
121+ /* 0x12 */ u8 mLightColorB ;
59122};
60123
61124
0 commit comments