summaryrefslogtreecommitdiff
path: root/include/d/actor/d_a_obj_canon.h
blob: 0cbd26ca99a79c1c738f813efec4980898e58b4e (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
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
#ifndef D_A_OBJ_CANON_H
#define D_A_OBJ_CANON_H

#include "d/d_cc_d.h"
#include "d/d_npc.h"
#include "d/d_particle.h"
#include "f_op/f_op_actor.h"
#include "m_Do/m_Do_hostIO.h"

class J3DNode;
class dCcD_SrcSph;

class daObj_Canon_c : public fopAc_ac_c {
public:
    enum Proc_e {
        PROC_INIT_e = 0,
        PROC_EXEC_e = 1
    };

    void modeProcInit(int newMode) { modeProc(PROC_INIT_e, newMode); }

    void _nodeControl(J3DNode*, J3DModel*);
    BOOL _createHeap();
    void setEffect(u16);
    bool checkTgHit();
    void attackCannon();
    void lockonCannon();
    void setAttention();
    void setCollision();
    void setMtx();
    void modeWaitInit();
    void modeWait();
    void modeAttackInit();
    void modeAttack();
    void modeDeleteInit();
    void modeDelete();
    void modeSwWaitInit();
    void modeSwWait();
    void modeAppearInit();
    void modeAppear();
    void modeProc(Proc_e, int);
    bool _execute();
    void debugDraw();
    bool _draw();
    void createInit();
    void getArg();
    cPhs_State _create();
    bool _delete();

    static const u32 m_heapsize;
    static const char m_arc_name[];
    static const dCcD_SrcSph m_sph_src;

public:
    /* 0x290 */ s32 mCurMode;
    /* 0x294 */ u8 field_0x294;
    /* 0x295 */ u8 field_0x295;
    /* 0x296 */ u8 field_0x296;
    /* 0x297 */ u8 field_0x297;
    /* 0x298 */ dNpc_PathRun_c field_0x298;
    /* 0x2A0 */ u8 field_0x2A0[0x2B0 - 0x2A0];
    /* 0x2B0 */ dPath* field_0x2B0;
    /* 0x2B0 */ u8 field_0x2B4[0x2B8 - 0x2B4];
    /* 0x2B8 */ request_of_phase_process_class mPhs;
    /* 0x2C0 */ J3DModel* mpModel;
    /* 0x2C4 */ s16 field_0x2C4;
    /* 0x2C6 */ s16 field_0x2C6;
    /* 0x2C8 */ s16 field_0x2C8;
    /* 0x2CA */ s16 field_0x2CA;
    /* 0x2CC */ cXyz field_0x2CC;
    /* 0x2D8 */ dCcD_Sph mSph;
    /* 0x420 */ dCcD_Stts mStts;
    /* 0x444 */ int field_0x440;
    /* 0x444 */ int field_0x444;
    /* 0x448 */ u8 field_0x448[0x450 - 0x448];
    /* 0x450 */ cXyz field_0x450;
    /* 0x45C */ cXyz field_0x45C;
    /* 0x468 */ s16 field_0x468;
    /* 0x46A */ s16 field_0x46A;
    /* 0x46C */ f32 field_0x46C;
    /* 0x470 */ dPa_followEcallBack field_0x470;
    /* 0x484 */ int field_0x484;
    /* 0x488 */ s32 field_0x488;
}; // Size: 0x48C

class daObj_Canon_HIO_c : public mDoHIO_entry_c {
public:
    daObj_Canon_HIO_c();
    void genMessage(JORMContext*) {}

public:
    /* 0x04 */ bool debug_draw;
    /* 0x05 */ u8 field_0x05;
    /* 0x08 */ f32 field_0x08;
    /* 0x0C */ f32 field_0x0C;
    /* 0x10 */ f32 field_0x10;
    /* 0x14 */ f32 field_0x14;
    /* 0x18 */ f32 field_0x18;
    /* 0x1C */ f32 field_0x1C;
    /* 0x20 */ f32 field_0x20;
    /* 0x24 */ f32 field_0x24;
    /* 0x28 */ s16 field_0x28;
    /* 0x2C */ f32 field_0x2C;
    /* 0x30 */ s16 field_0x30;
    /* 0x32 */ s16 field_0x32;
    /* 0x34 */ s16 field_0x34;
    /* 0x36 */ s16 field_0x36;
    /* 0x38 */ s16 field_0x38;
    /* 0x3A */ s16 field_0x3A;
    /* 0x3C */ s16 field_0x3C;
    /* 0x3E */ s16 field_0x3E;
    /* 0x40 */ f32 field_0x40;
    /* 0x44 */ f32 field_0x44;
    /* 0x48 */ s16 field_0x48;
}; // Size: 0x4C

#endif /* D_A_OBJ_CANON_H */