summaryrefslogtreecommitdiff
path: root/include/d/actor/d_a_obj_gryw00.h
blob: 54b1eff3fa52d5eaf86d09b6a0e6bcdc3a0b0cdf (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
#ifndef D_A_OBJ_GRYW00_H
#define D_A_OBJ_GRYW00_H

#include "JSystem/JParticle/JPAEmitter.h"

#include "m_Do/m_Do_ext.h"
#include "f_op/f_op_actor.h"

#include "d/d_a_obj.h"
#include "d/d_bg_s_movebg_actor.h"

class daObjGryw00_c : public dBgS_MoveBgActor {
public:
    enum Param_e {
        PRM_SWSAVE_W = 0x08,
        PRM_SWSAVE_S = 0x00,
    };
    typedef void (daObjGryw00_c::*ModeFunc)();

    s32 param_get_swSave() const {
        return daObj::PrmAbstract<Param_e>(this, PRM_SWSAVE_W, PRM_SWSAVE_S);
    }

    f32 get_draw_water_lv(void*);
    BOOL setup_high_water_level_btk_anm();
    void particle_set();
    void particle_move();
    void particle_delete();
    void set_se();
    virtual BOOL CreateHeap();
    virtual BOOL Create();
    cPhs_State Mthd_Create();
    virtual BOOL Delete();
    BOOL Mthd_Delete();
    void switch_wait_act_proc();
    void spread_water_face_act_proc();
    void water_level_move_wait_act_proc();
    void anime_loop_start_wait_act_proc();
    void high_water_level_act_proc();
    virtual BOOL Execute(Mtx**);
    virtual BOOL Draw();

public:
    /* 0x2C8 */ request_of_phase_process_class mPhs;
    /* 0x2D0 */ J3DModel* mpModel;
    /* 0x2D4 */ Mtx mMtx;
    /* 0x304 */ mDoExt_btkAnm mBtk;
    /* 0x318 */ mDoExt_bckAnm mBck;
    /* 0x328 */ s32 mActivationSwitch;
    /* 0x32C */ void (daObjGryw00_c::*modeFunc)();
    /* 0x338 */ BOOL mIsHidden;
    /* 0x33C */ f32 mWaterLv;
    /* 0x340 */ f32 mWaterMaxLv;
    /* 0x344 */ f32 mWaterLvIncrement;
    /* 0x348 */ f32 mWaveAmplitude;
    /* 0x34C */ f32 mWaveMaxAmplitude;
    /* 0x350 */ f32 mWaveAmplitudeIncrement;
    /* 0x354 */ f32 mWaterLvFinalYPos;  // never read ? at least by this class
    /* 0x358 */ BOOL mShouldPlaySe;
    /* 0x35C */ s32 mGeyserSeRemaining;
    /* 0x360 */ JPABaseEmitter* mpEmitters[2];
};

#endif /* D_A_OBJ_GRYW00_H */