summaryrefslogtreecommitdiff
path: root/include/d/actor/d_a_swtact.h
blob: 7f98149d9215d160b4f48ea5b72e321b73435502 (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
#ifndef D_A_SWTACT_H
#define D_A_SWTACT_H

#include "f_op/f_op_actor.h"
#include "SSystem/SComponent/c_phase.h"
#include "f_op/f_op_actor_mng.h"

class daSwTact_c : public fopAc_ac_c {
public:
    f32 getR() { return mRadius * scale.x; }

    bool _delete();
    BOOL CreateHeap();
    void CreateInit();
    void set_mtx();
    s32 getAnswer();
    cPhs_State _create();
    bool _execute();
    bool _draw();

    static const char * m_arcname;
    static const f32 mDefaultR;
    static const f32 mDefaultRwM;
    static const u32 m_heapsize;

public:
    /* 0x290 */ request_of_phase_process_class mPhs;
    /* 0x298 */ J3DModel * model;
    /* 0x29C */ f32 mRadius;
    /* 0x2A0 */ u32 mSwitchNo;
    /* 0x2A4 */ u8 mAnswer;
    /* 0x2A5 */ bool mTrigger;
    /* 0x2A6 */ u8 mPlayerStatus;
};

namespace daSwTact_prm {
    inline u32 getSwitchNo(daSwTact_c * i_this)  { return (fopAcM_GetParam(i_this) >> 0) & 0xFF; }
    inline u32 getAnswer(daSwTact_c * i_this)  { return (fopAcM_GetParam(i_this) >> 8) & 0xFF; }
    inline u32 getModel(daSwTact_c * i_this) { return (fopAcM_GetParam(i_this) >> 16) & 0x0F; }
}

#endif /* D_A_SWTACT_H */