summaryrefslogtreecommitdiff
path: root/include/d/actor/d_a_obj_tide.h
blob: d735c083c4bc13500415aac23a81df40dc2ced12 (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
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
#ifndef D_A_OBJ_TIDE_H
#define D_A_OBJ_TIDE_H

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

class mDoExt_bckAnm;
class mDoExt_btkAnm;
class mDoExt_brkAnm;

namespace daObjTide {
    enum Type_e {
        TYPE_0_e = 0,
        TYPE_1_e = 1,
        TYPE_2_e = 2,
        TYPE_3_e = 3,
        TYPE_4_e = 4,
        TYPE_5_e = 5,
    };

    namespace {
        struct Attr_c {
            /* 0x00 */ const char* arcName;
            /* 0x04 */ s16 bdl_res_index;
            /* 0x06 */ s16 dzb_res_index;
            /* 0x08 */ s16 bck_res_index;
            /* 0x0A */ s16 brk_res_index;
            /* 0x0C */ s16 btk_res_index;
            /* 0x10 */ u32 bdl_dlist_flags;
            /* 0x14 */ s16 nure_bdl_res_index;
            /* 0x16 */ s16 nure_brk_res_index;
            /* 0x18 */ u32 nure_bdl_dlist_flags;
            /* 0x1C */ u32 res_size;
            /* 0x20 */ s16 m20;
            /* 0x24 */ f32 m24;
            /* 0x28 */ f32 m28;
            /* 0x2C */ f32 m2C;
            /* 0x30 */ f32 m30;
            /* 0x34 */ s16 min_x;
            /* 0x36 */ s16 min_y;
            /* 0x38 */ s16 min_z;
            /* 0x3A */ s16 max_x;
            /* 0x3C */ s16 max_y;
            /* 0x3E */ s16 max_z;
            /* 0x40 */ bool sch_flag;
            /* 0x42 */ s16 m42;
            /* 0x44 */ f32 m44;
        }; // size = 0x48
    }

    class Hio_c : public JORReflexible {
        void genMessage(JORMContext* ctx) {}
    };

    class Act_c : public dBgS_MoveBgActor {
        enum Prm_e {
            PRM_SWSAVE_W = 8,
            PRM_SWSAVE_S = 24,

            PRM_TYPE_W = 3,
            PRM_TYPE_S = 16,
        };

    public:
        s32 prm_get_swSave() const { return daObj::PrmAbstract(this, PRM_SWSAVE_W, PRM_SWSAVE_S); }
        Type_e prm_get_type() const { return Type_e(daObj::PrmAbstract(this, PRM_TYPE_W, PRM_TYPE_S)); }
    
        virtual BOOL CreateHeap();
        virtual BOOL Create();
        cPhs_State Mthd_Create();
        virtual BOOL Delete();
        BOOL Mthd_Delete();
        void set_mtx();
        void init_mtx();
        void move_to_aim(float, bool);
        bool chk_demo_rescue() const;
        bool gmtw_demo_up_start() const;
        void mode_norm_init();
        void mode_norm();
        void mode_gmtw_pre_init();
        void mode_gmtw_pre();
        void mode_gmtw_init();
        void mode_gmtw();
        void mode_gmtw_demo_init();
        void mode_gmtw_demo();
        void se_init_gmtw();
        void se_set_gmtw();
        void se_start_gopo();
        void se_start_out();
        void se_start_up();
        void se_stop_gopo();
        void se_stop_out();
        void se_stop_up();
        void se_pos_up();
        virtual BOOL Execute(Mtx**);
        virtual BOOL Draw();

        static Mtx M_tmp_mtx;
    
    public:
        /* 0x2C8 */ request_of_phase_process_class mPhase;
        /* 0x2D0 */ J3DModel* mModel1;
        /* 0x2D4 */ mDoExt_bckAnm* mBck1;
        /* 0x2D8 */ mDoExt_brkAnm* mBrk1;
        /* 0x2DC */ mDoExt_btkAnm* mBtk;
        /* 0x2E0 */ J3DModel* mModel2;
        /* 0x2E4 */ mDoExt_brkAnm* mBrk2;
        /* 0x2E8 */ Type_e M_type;
        /* 0x2EC */ s32 m2EC;
        /* 0x2F0 */ f32 m2F0;
        /* 0x2F4 */ s16 m2F4;
        /* 0x2F6 */ u8 m2F6;
        /* 0x2F7 */ bool m2F7;
        /* 0x2F8 */ bool m2F8;
        /* 0x2F9 */ bool m2F9;
        /* 0x2FA */ bool m2FA;
        /* 0x2FB */ bool m2FB;
        /* 0x2FC */ fpc_ProcID M_id_gopo;
        /* 0x300 */ fpc_ProcID M_id_out;
        /* 0x304 */ fpc_ProcID M_id_up;
        /* 0x308 */ bool m308;
        /* 0x309 */ bool m309;
        /* 0x30A */ bool m30A;
        /* 0x30B */ bool m30B;
#if VERSION > VERSION_DEMO
        /* 0x30C */ s32 m30C;
#endif
    }; // size = 0x310
};

#endif /* D_A_OBJ_TIDE_H */