Skip to content

Commit 7f689a5

Browse files
authored
d_a_obj_lv8Lift almost matching (#2376)
* Initial Work * General work * d_a_obj_lv8Lift almost matching
1 parent d640fb8 commit 7f689a5

File tree

2 files changed

+433
-606
lines changed

2 files changed

+433
-606
lines changed

include/d/actor/d_a_obj_lv8Lift.h

Lines changed: 74 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
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
/**
@@ -11,14 +13,27 @@
1113
* @details
1214
*
1315
*/
14-
class daL8Lift_c : public fopAc_ac_c {
16+
class daL8Lift_c : public dBgS_MoveBgActor {
1517
public:
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

4968
private:
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

53103
STATIC_ASSERT(sizeof(daL8Lift_c) == 0x830);
54104

55-
class daL8Lift_HIO_c {
105+
class daL8Lift_HIO_c : public mDoHIO_entry_c {
56106
public:
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

Comments
 (0)