forked from zeldaret/tp
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathd_a_grass.h
More file actions
246 lines (205 loc) · 7.42 KB
/
d_a_grass.h
File metadata and controls
246 lines (205 loc) · 7.42 KB
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
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
#ifndef D_A_GRASS_H
#define D_A_GRASS_H
#include "f_op/f_op_actor_mng.h"
class dCcMassS_HitInf;
class cCcD_Obj;
class dGrass_data_c {
public:
/* 8051D88C */ void WorkCo(fopAc_ac_c*, u32, int);
/* 8051DA20 */ void WorkAt_NoCutAnim(fopAc_ac_c*, u32, int, dCcMassS_HitInf*, cCcD_Obj*);
/* 8051DF54 */ void Direction_Set(fopAc_ac_c*, u32, int, dCcMassS_HitInf*, cCcD_Obj*, csXyz*);
/* 8051E1C8 */ void WorkAt(fopAc_ac_c*, u32, int, dCcMassS_HitInf*, u16);
/* 8051EB88 */ void hitCheck(int, u16);
/* 80520940 */ ~dGrass_data_c() {}
/* 8052097C */ dGrass_data_c() {
m_state = 0;
}
/* 0x00 */ u8 m_state;
/* 0x01 */ u8 field_0x01;
/* 0x02 */ s8 field_0x02;
/* 0x03 */ u8 m_tableNo;
/* 0x04 */ u8 m_itemBitNo;
/* 0x05 */ u8 field_0x05;
/* 0x06 */ u8 field_0x06[0x08 - 0x06];
/* 0x08 */ s16 m_addCol;
/* 0x0C */ cXyz m_pos;
/* 0x18 */ Mtx m_modelMtx;
/* 0x48 */ dGrass_data_c* mp_next;
};
class dGrass_room_c {
public:
/* 8051EDE0 */ void newData(dGrass_data_c*);
/* 8051EDF0 */ void deleteData();
/* 80520928 */ dGrass_room_c() {
mp_data = NULL;
}
dGrass_data_c* getData() { return mp_data; }
/* 0x0 */ dGrass_data_c* mp_data;
};
class dGrass_anm_c {
public:
/* 80520934 */ dGrass_anm_c() {
m_state = 0;
}
/* 0x00 */ u8 m_state;
/* 0x02 */ s16 m_angY;
/* 0x04 */ s16 m_angX;
/* 0x08 */ Mtx m_animMtx;
};
class dGrass_packet_c : public J3DPacket {
public:
/* 8051EE8C */ dGrass_packet_c();
/* 8051FABC */ void calc();
/* 80520030 */ void update();
/* 8052067C */ void setData(dGrass_data_c*, int, cXyz&, int, u8, u8, s16, u8);
/* 80520770 */ dGrass_data_c* newData(cXyz&, int, u8, u8, s16, u8);
/* 80520864 */ void deleteRoom(int);
/* 80520898 */ int newAnm();
/* 805208E4 */ void setAnm(int, s16);
/* 8051F03C */ virtual void draw();
/* 8051BFBC */ virtual ~dGrass_packet_c();
typedef void (dGrass_packet_c::*deleteFunc)(int);
static deleteFunc m_deleteRoom;
dGrass_anm_c* getAnm() { return m_anm; }
dGrass_anm_c* getAnm(int i_no) { return &m_anm[i_no]; }
dGrass_data_c* getData() { return m_data; }
void deleteAnm(int i_idx) { m_anm[i_idx].m_state = 0; }
/* 0x00010 */ u16 m_dataNum;
/* 0x00014 */ dGrass_data_c m_data[1500];
/* 0x1BD64 */ dGrass_anm_c m_anm[112];
/* 0x1D5E4 */ dGrass_room_c m_room[64];
/* 0x1D6E4 */ Vec* mp_pos;
/* 0x1D6E8 */ Vec* mp_normal;
/* 0x1D6EC */ GXColor* mp_colors;
/* 0x1D6F0 */ Vec* mp_texCoords;
/* 0x1D6F4 */ u8* mp_kusa9q_DL;
/* 0x1D6F8 */ u32 m_kusa9q_DL_size;
/* 0x1D6FC */ u8* mp_kusa9q_14_DL;
/* 0x1D700 */ u32 m_kusa9q_DL_14_size;
/* 0x1D704 */ u8* mp_Mkusa_9q_DL;
/* 0x1D708 */ u32 m_Mkusa_9q_DL_size;
/* 0x1D70C */ u8* mp_Mkusa_9q_cDL;
/* 0x1D710 */ u32 m_Mkusa_9q_cDL_size;
/* 0x1D714 */ s16 field_0x1d714;
}; // Size: 0x1D718
STATIC_ASSERT(sizeof(dGrass_packet_c) == 0x1D718);
class dFlower_data_c {
public:
/* 80520988 */ void WorkCo(fopAc_ac_c*, u32, int);
/* 80520AD8 */ void deleteAnm();
/* 80520B34 */ void WorkAt_NoCutAnim(fopAc_ac_c*, u32, int, dCcMassS_HitInf*, cCcD_Obj*);
/* 80520CFC */ void WorkAt(fopAc_ac_c*, u32, int, dCcMassS_HitInf*);
/* 80521A3C */ void hitCheck(fopAc_ac_c*, int);
/* 80522FCC */ ~dFlower_data_c();
/* 80523008 */ dFlower_data_c();
/* 0x00 */ u8 m_state;
/* 0x01 */ s8 field_0x01;
/* 0x02 */ s8 m_tableNo;
/* 0x03 */ u8 field_0x03;
/* 0x04 */ s16 field_0x04;
/* 0x08 */ cXyz m_pos;
/* 0x14 */ Mtx m_modelMtx;
/* 0x44 */ dFlower_data_c* mp_next;
};
class dFlower_room_c {
public:
/* 80521BF8 */ void newData(dFlower_data_c*);
/* 80521C08 */ void deleteData();
/* 80522FB4 */ dFlower_room_c();
dFlower_data_c* getData() { return mp_data; }
/* 0x0 */ dFlower_data_c* mp_data;
};
class dFlower_anm_c {
public:
/* 80522FC0 */ dFlower_anm_c();
/* 0x00 */ u8 m_state;
/* 0x02 */ s16 m_angY;
/* 0x04 */ s16 m_angX;
/* 0x08 */ Mtx m_animMtx;
};
class dFlower_packet_c : public J3DPacket {
public:
/* 80521C64 */ dFlower_packet_c();
/* 80522774 */ void calc();
/* 80522A64 */ void update();
/* 80522CBC */ void setData(dFlower_data_c*, int, s8, cXyz&, int, s8, s16);
/* 80522E28 */ dFlower_data_c* newData(s8, cXyz&, int, s8, s16);
/* 80522F0C */ void deleteRoom(int);
/* 80522F40 */ int newAnm();
/* 80522F8C */ void setAnm(int, s16);
/* 80521DAC */ virtual void draw();
/* 8051C194 */ virtual ~dFlower_packet_c();
typedef void (dFlower_packet_c::*deleteFunc)(int);
static deleteFunc m_deleteRoom;
dFlower_anm_c* getAnm(int i_idx) { return &m_anm[i_idx]; }
dFlower_anm_c* getAnm() { return &m_anm[0]; }
dFlower_data_c* getData() { return m_data; }
void deleteAnm(int i_idx) { m_anm[i_idx].m_state = 0; }
void setPlayerCutFlg(int i_flag) { m_playerCutFlg = i_flag != 0; }
void setPlayerSwordAngY(s16 i_angY) { m_playerSwordAngY = i_angY; }
void setPlayerSwordMoveAngY(s16 i_angY) { m_playerSwordMoveAngY = i_angY; }
void setPlayerSwordTop(cXyz& i_pos) { m_playerSwordTop = i_pos; }
cXyz& getPlayerSwordTop() { return m_playerSwordTop; }
/* 0x00010 */ u16 m_dataNum;
/* 0x00014 */ dFlower_data_c m_data[1000];
/* 0x11954 */ dFlower_anm_c m_anm[72];
/* 0x12914 */ dFlower_room_c m_room[64];
/* 0x12A14 */ u8 m_playerCutFlg;
/* 0x12A16 */ s16 m_playerSwordAngY;
/* 0x12A18 */ s16 m_playerSwordMoveAngY;
/* 0x12A1C */ cXyz m_playerSwordTop;
/* 0x12A28 */ Vec* mp_pos;
/* 0x12A2C */ GXColor* mp_colors;
/* 0x12A30 */ Vec* mp_texCoords;
/* 0x12A34 */ u8* mp_mat2DL;
/* 0x12A38 */ u32 m_mat2DL_size;
/* 0x12A3C */ u8* mp_mat2Light4DL;
/* 0x12A40 */ u32 m_mat2Light4DL_size;
/* 0x12A44 */ u8* mp_Jhana01DL;
/* 0x12A48 */ u32 m_Jhana01DL_size;
/* 0x12A4C */ u8* mp_Jhana01_cDL;
/* 0x12A50 */ u32 m_Jhana01_cDL_size;
}; // Size: 0x12A54
/**
* @ingroup actors-unsorted
* @class daGrass_c
* @brief Grass
*
* @details
*
*/
class daGrass_c : public fopAc_ac_c {
public:
/* 8051BEFC */ bool createGrass();
/* 8051BF68 */ void deleteGrass();
/* 8051C040 */ void executeGrass();
/* 8051C074 */ void drawGrass();
/* 8051C0A8 */ void newGrassData(cXyz&, int, u8, u8, s16, u8);
/* 8051C0D4 */ bool createFlower();
/* 8051C140 */ void deleteFlower();
/* 8051C218 */ void executeFlower();
/* 8051C24C */ void drawFlower();
/* 8051C280 */ void newFlowerData(s8, cXyz&, int, s8, s16);
/* 8051C304 */ inline int create();
inline int Delete();
inline int execute();
inline int draw();
static dGrass_packet_c* getGrass() { return m_grass; }
static dFlower_packet_c* getFlower() { return m_flower; }
/* 800319C8 */ static void deleteRoomGrass(int);
/* 80031A20 */ static void deleteRoomFlower(int);
static daGrass_c* m_myObj;
static dGrass_packet_c* m_grass;
static dFlower_packet_c* m_flower;
};
namespace daGrass_prm {
inline u8 getKind(daGrass_c* i_this) { return (fopAcM_GetParam(i_this) >> 4) & 3; }
inline u8 getType(daGrass_c* i_this) { return fopAcM_GetParam(i_this) & 0xF; }
inline u8 getItemNo(daGrass_c* i_this) { return (fopAcM_GetParam(i_this) >> 0x10) & 0xFF; }
inline u8 getItemBitNo(daGrass_c* i_this) { return (fopAcM_GetParam(i_this) >> 8) & 0xFF; }
};
struct daGrass_offsetData {
/* 0x0 */ u8 num;
/* 0x4 */ csXyz* set_type;
};
#endif /* D_A_GRASS_H */