summaryrefslogtreecommitdiff
path: root/include/d/actor/d_a_leaflift.h
blob: 9c699b07080f48fe4fc715f6951d474a7a5bb7b8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
#ifndef D_A_LEAFLIFT_H
#define D_A_LEAFLIFT_H

#include "f_op/f_op_actor.h"
#include "f_op/f_op_actor_mng.h"
#include "d/d_cc_d.h"
#include "d/d_bg_w.h"
#include "d/d_particle.h"

class dBgW;

class daLlift_c : public fopAc_ac_c {
public:
    bool _delete();
    BOOL CreateHeap();
    void CreateInit();
    cPhs_State _create();
    void set_mtx();
    void setMoveBGMtx();
    bool _execute();
    void emitterCtrl();
    BOOL MoveDownLift();
    bool _draw();

    BOOL checkEndDownLift();
    BOOL MoveUpLift();

    static const f32 m_height;
    static const f32 m_max_speed;
    static const f32 m_min_speed;

    static const char m_arcname[6];

public:
    /* 0x290 */ request_of_phase_process_class mPhs;
    /* 0x298 */ J3DModel* mpModel;
    /* 0x29C */ dCcD_Stts mStts;
    /* 0x2D8 */ dCcD_Cyl mCyl;
    /* 0x408 */ dBgW* mpBgW;
    /* 0x40C */ Mtx mMtx;
    /* 0x43C */ bool m43C;
    /* 0x43D */ bool m43D;
    /* 0x43E */ bool m43E;
    /* 0x43F */ u8 m43F;
    /* 0x440 */ s16 mTiltAngle;
    /* 0x442 */ u8 m442[0x444-0x442];
    /* 0x444 */ s16 mActorLifetimeFrameCount;
    /* 0x446 */ u8 m446[0x448-0x446];
    /* 0x448 */ Quaternion mCurrentRotation;
    /* 0x458 */ Quaternion mTargetRotation;
    /* 0x468 */ bool mbIsDescending;
    /* 0x469 */ bool mbIsAscending;
    /* 0x46A */ u8 m46A[0x46C-0x46A];
    /* 0x46C */ Mtx mBGMtx;
    /* 0x49C */ s32 mEmitterTimer;
    /* 0x4A0 */ JPABaseEmitter* mEmitter1;
    /* 0x4A4 */ JPABaseEmitter* mEmitter2;
    /* 0x4A8 */ JPABaseEmitter* mEmitter3;
    /* 0x4AC */ JPABaseEmitter* mEmitter4;
    /* 0x4B0 */ f32 mWaterY;
};

namespace daLlift_prm {
    inline u8 getPos(daLlift_c* item) { return fopAcM_GetParam(item) & 0x0F; }
}

#endif /* D_A_LEAFLIFT_H */