summaryrefslogtreecommitdiff
path: root/include/d/actor/d_a_ykgr.h
blob: a899a3716b7b3a4d8bba2a10bd1bf1d672e641fd (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
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
#ifndef D_A_YKGR_H
#define D_A_YKGR_H

#include "f_op/f_op_actor.h"
#include "JSystem/JParticle/JPAEmitter.h"
#include "f_op/f_op_camera_mng.h"
#include "d/d_com_inf_game.h"
#include "m_Do/m_Do_hostIO.h"

struct dPath;
class JPABaseEmitter;
class JPABaseParticle;

class daYkgr_c : public fopAc_ac_c {
public:
    static void init() {
        m_emitter = NULL;
        m_flag = 0;
        m_alpha_flag = 1;
        m_alpha = 0xFF;
    }

    static void stop() {
        if (m_emitter) {
            m_alpha_flag = 0;
        }
    };
    
    static u8 m_flag;
    static u8 m_alpha_flag;
    static u8 m_alpha;
    static f32 m_aim_rate;
    static dPath* m_path;
    static JPABaseEmitter* m_emitter;

    static void show() {
        if (m_emitter == NULL) {
            return;
        }
        m_emitter->playDrawParticle();
        return;
    }
    static void hide() {
        if (m_emitter == NULL) {
            return;
        }
        m_emitter->stopDrawParticle();
        return;
    }
    static void start() {
        if (m_emitter != NULL) {
            m_alpha_flag = 1;
        }
    }

    inline cPhs_State _create();
    inline bool _delete();
    inline bool _draw();
    inline bool _execute();
    void setAimRate(float) {}
    void setAlpha(unsigned char alpha) { m_alpha = alpha; }
    inline void set_mtx();

    f32 getPosRate();

public:
    /* 0x290 */ request_of_phase_process_class mPhase;
    /* 0x298 */ Mtx mMtx;
    /* 0x2C8 */ u8 m2C8[0x2CC - 0x2C8];
    /* 0x2CC */ f32 m2CC;
    /* 0x2D0 */ f32 m2D0;
}; // size = 0x2D4

class dPa_YkgrPcallBack : public JPACallBackBase2<JPABaseEmitter*, JPABaseParticle*> {
public:
    dPa_YkgrPcallBack() {
        m04 = 0.5f;
        m08 = 0.0f;
        m0C = 0.0f;
        m10 = 0.0f;
        m14 = 0.5f;
        m18 = 0.0f;
        m1C = true;
    }
    ~dPa_YkgrPcallBack() {}

    void draw(JPABaseEmitter*, JPABaseParticle*);
    void setParam(float);

public:
    /* 0x04 */ f32 m04;
    /* 0x08 */ f32 m08;
    /* 0x0C */ f32 m0C;
    /* 0x10 */ f32 m10;
    /* 0x14 */ f32 m14;
    /* 0x18 */ f32 m18;
    /* 0x1C */ s8 m1C;
}; // size = 0x20

#endif /* D_A_YKGR_H */