Loading [MathJax]/extensions/tex2jax.js
Twilight Princess
Decompilation of The Legend of Zelda: Twilight Princess
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Modules Pages
d_a_grass.h
Go to the documentation of this file.
1#ifndef D_A_GRASS_H
2#define D_A_GRASS_H
3
5
7class cCcD_Obj;
8
10public:
11 /* 8051D88C */ void WorkCo(fopAc_ac_c*, u32, int);
12 /* 8051DA20 */ void WorkAt_NoCutAnim(fopAc_ac_c*, u32, int, dCcMassS_HitInf*, cCcD_Obj*);
13 /* 8051DF54 */ void Direction_Set(fopAc_ac_c*, u32, int, dCcMassS_HitInf*, cCcD_Obj*, csXyz*);
14 /* 8051E1C8 */ void WorkAt(fopAc_ac_c*, u32, int, dCcMassS_HitInf*, u16);
15 /* 8051EB88 */ void hitCheck(int, u16);
16 /* 80520940 */ ~dGrass_data_c();
17 /* 8052097C */ dGrass_data_c();
18
19 /* 0x00 */ u8 m_state;
20 /* 0x01 */ u8 field_0x01;
21 /* 0x02 */ s8 field_0x02;
22 /* 0x03 */ u8 m_tableNo;
23 /* 0x04 */ u8 m_itemBitNo;
24 /* 0x05 */ u8 field_0x05;
25 /* 0x06 */ u8 field_0x06[0x08 - 0x06];
26 /* 0x08 */ s16 m_addCol;
27 /* 0x0C */ cXyz m_pos;
28 /* 0x18 */ Mtx m_modelMtx;
30};
31
33public:
34 /* 8051EDE0 */ void newData(dGrass_data_c*);
35 /* 8051EDF0 */ void deleteData();
36 /* 80520928 */ dGrass_room_c();
37
39
41};
42
44public:
45 /* 80520934 */ dGrass_anm_c();
46
47 /* 0x00 */ u8 m_state;
48 /* 0x02 */ s16 m_angY;
49 /* 0x04 */ s16 m_angX;
50 /* 0x08 */ Mtx m_animMtx;
51};
52
53class dGrass_packet_c : public J3DPacket {
54public:
55 /* 8051EE8C */ dGrass_packet_c();
56 /* 8051FABC */ void calc();
57 /* 80520030 */ void update();
58 /* 8052067C */ void setData(dGrass_data_c*, int, cXyz&, int, u8, u8, s16, u8);
59 /* 80520770 */ dGrass_data_c* newData(cXyz&, int, u8, u8, s16, u8);
60 /* 80520864 */ void deleteRoom(int);
61 /* 80520898 */ int newAnm();
62 /* 805208E4 */ void setAnm(int, s16);
63
64 /* 8051F03C */ virtual void draw();
65 /* 8051BFBC */ virtual ~dGrass_packet_c() {}
66
67 typedef void (dGrass_packet_c::*deleteFunc)(int);
69
70 dGrass_anm_c* getAnm() { return m_anm; }
71 dGrass_anm_c* getAnm(int i_no) { return &m_anm[i_no]; }
72
74
75 void deleteAnm(int i_idx) { m_anm[i_idx].m_state = 0; }
76
77 /* 0x00010 */ u16 m_dataNum;
78 /* 0x00014 */ dGrass_data_c m_data[1500];
79 /* 0x1BD64 */ dGrass_anm_c m_anm[112];
80 /* 0x1D5E4 */ dGrass_room_c m_room[64];
81 /* 0x1D6E4 */ Vec* mp_pos;
82 /* 0x1D6E8 */ Vec* mp_normal;
83 /* 0x1D6EC */ GXColor* mp_colors;
84 /* 0x1D6F0 */ Vec* mp_texCoords;
85 /* 0x1D6F4 */ u8* mp_kusa9q_DL;
86 /* 0x1D6F8 */ u32 m_kusa9q_DL_size;
87 /* 0x1D6FC */ u8* mp_kusa9q_14_DL;
88 /* 0x1D700 */ u32 m_kusa9q_DL_14_size;
89 /* 0x1D704 */ u8* mp_Mkusa_9q_DL;
90 /* 0x1D708 */ u32 m_Mkusa_9q_DL_size;
91 /* 0x1D70C */ u8* mp_Mkusa_9q_cDL;
92 /* 0x1D710 */ u32 m_Mkusa_9q_cDL_size;
93 /* 0x1D714 */ s16 field_0x1d714;
94}; // Size: 0x1D718
95
96STATIC_ASSERT(sizeof(dGrass_packet_c) == 0x1D718);
97
99public:
100 /* 80520988 */ void WorkCo(fopAc_ac_c*, u32, int);
101 /* 80520AD8 */ void deleteAnm();
102 /* 80520B34 */ void WorkAt_NoCutAnim(fopAc_ac_c*, u32, int, dCcMassS_HitInf*, cCcD_Obj*);
103 /* 80520CFC */ void WorkAt(fopAc_ac_c*, u32, int, dCcMassS_HitInf*);
104 /* 80521A3C */ void hitCheck(fopAc_ac_c*, int);
105 /* 80522FCC */ ~dFlower_data_c();
106 /* 80523008 */ dFlower_data_c();
107
108 /* 0x00 */ u8 m_state;
109 /* 0x01 */ s8 field_0x01;
110 /* 0x02 */ s8 m_tableNo;
111 /* 0x03 */ u8 field_0x03;
112 /* 0x04 */ s16 field_0x04;
113 /* 0x08 */ cXyz m_pos;
114 /* 0x14 */ Mtx m_modelMtx;
116};
117
119public:
120 /* 80521BF8 */ void newData(dFlower_data_c*);
121 /* 80521C08 */ void deleteData();
122 /* 80522FB4 */ dFlower_room_c();
123
125
127};
128
130public:
131 /* 80522FC0 */ dFlower_anm_c();
132
133 /* 0x00 */ u8 m_state;
134 /* 0x02 */ s16 m_angY;
135 /* 0x04 */ s16 m_angX;
136 /* 0x08 */ Mtx m_animMtx;
137};
138
140public:
141 /* 80521C64 */ dFlower_packet_c();
142 /* 80522774 */ void calc();
143 /* 80522A64 */ void update();
144 /* 80522CBC */ void setData(dFlower_data_c*, int, s8, cXyz&, int, s8, s16);
145 /* 80522E28 */ dFlower_data_c* newData(s8, cXyz&, int, s8, s16);
146 /* 80522F0C */ void deleteRoom(int);
147 /* 80522F40 */ int newAnm();
148 /* 80522F8C */ void setAnm(int, s16);
149
150 /* 80521DAC */ virtual void draw();
151 /* 8051C194 */ virtual ~dFlower_packet_c();
152
153 typedef void (dFlower_packet_c::*deleteFunc)(int);
155
156 dFlower_anm_c* getAnm(int i_idx) { return &m_anm[i_idx]; }
157 dFlower_anm_c* getAnm() { return &m_anm[0]; }
159
160 void deleteAnm(int i_idx) { m_anm[i_idx].m_state = 0; }
161
162 void setPlayerCutFlg(int i_flag) { m_playerCutFlg = i_flag != 0; }
163 void setPlayerSwordAngY(s16 i_angY) { m_playerSwordAngY = i_angY; }
165 void setPlayerSwordTop(cXyz& i_pos) { m_playerSwordTop = i_pos; }
167
168 /* 0x00010 */ u16 m_dataNum;
169 /* 0x00014 */ dFlower_data_c m_data[1000];
170 /* 0x11954 */ dFlower_anm_c m_anm[72];
171 /* 0x12914 */ dFlower_room_c m_room[64];
172 /* 0x12A14 */ u8 m_playerCutFlg;
173 /* 0x12A16 */ s16 m_playerSwordAngY;
175 /* 0x12A1C */ cXyz m_playerSwordTop;
176 /* 0x12A28 */ Vec* mp_pos;
177 /* 0x12A2C */ GXColor* mp_colors;
178 /* 0x12A30 */ Vec* mp_texCoords;
179 /* 0x12A34 */ u8* mp_mat2DL;
180 /* 0x12A38 */ u32 m_mat2DL_size;
181 /* 0x12A3C */ u8* mp_mat2Light4DL;
183 /* 0x12A44 */ u8* mp_Jhana01DL;
184 /* 0x12A48 */ u32 m_Jhana01DL_size;
185 /* 0x12A4C */ u8* mp_Jhana01_cDL;
186 /* 0x12A50 */ u32 m_Jhana01_cDL_size;
187}; // Size: 0x12A54
188
197class daGrass_c : public fopAc_ac_c {
198public:
199 /* 8051BEFC */ bool createGrass();
200 /* 8051BF68 */ void deleteGrass();
201 /* 8051C040 */ void executeGrass();
202 /* 8051C074 */ void drawGrass();
203 /* 8051C0A8 */ void newGrassData(cXyz&, int, u8, u8, s16, u8);
204 /* 8051C0D4 */ bool createFlower();
205 /* 8051C140 */ void deleteFlower();
206 /* 8051C218 */ void executeFlower();
207 /* 8051C24C */ void drawFlower();
208 /* 8051C280 */ void newFlowerData(s8, cXyz&, int, s8, s16);
209
210 /* 8051C304 */ inline int create();
211
212 inline int Delete();
213 inline int execute();
214 inline int draw();
215
216 static dGrass_packet_c* getGrass() { return m_grass; }
217 static dFlower_packet_c* getFlower() { return m_flower; }
218
219 /* 800319C8 */ static void deleteRoomGrass(int);
220 /* 80031A20 */ static void deleteRoomFlower(int);
221
225};
226
227namespace daGrass_prm {
228 inline u8 getKind(daGrass_c* i_this) { return (fopAcM_GetParam(i_this) >> 4) & 3; }
229 inline u8 getType(daGrass_c* i_this) { return fopAcM_GetParam(i_this) & 0xF; }
230 inline u8 getItemNo(daGrass_c* i_this) { return (fopAcM_GetParam(i_this) >> 0x10) & 0xFF; }
231 inline u8 getItemBitNo(daGrass_c* i_this) { return (fopAcM_GetParam(i_this) >> 8) & 0xFF; }
232};
233
235 /* 0x0 */ u8 num;
236 /* 0x4 */ csXyz* set_type;
237};
238
239
240#endif /* D_A_GRASS_H */
Definition J3DPacket.h:100
Definition d_cc_mass_s.h:30
Definition d_a_grass.h:129
Mtx m_animMtx
Definition d_a_grass.h:136
s16 m_angX
Definition d_a_grass.h:135
s16 m_angY
Definition d_a_grass.h:134
u8 m_state
Definition d_a_grass.h:133
Definition d_a_grass.h:98
u8 m_state
Definition d_a_grass.h:108
void WorkAt_NoCutAnim(fopAc_ac_c *, u32, int, dCcMassS_HitInf *, cCcD_Obj *)
s8 field_0x01
Definition d_a_grass.h:109
dFlower_data_c * mp_next
Definition d_a_grass.h:115
s16 field_0x04
Definition d_a_grass.h:112
cXyz m_pos
Definition d_a_grass.h:113
u8 field_0x03
Definition d_a_grass.h:111
void WorkAt(fopAc_ac_c *, u32, int, dCcMassS_HitInf *)
s8 m_tableNo
Definition d_a_grass.h:110
void WorkCo(fopAc_ac_c *, u32, int)
void hitCheck(fopAc_ac_c *, int)
Mtx m_modelMtx
Definition d_a_grass.h:114
Definition d_a_grass.h:139
void deleteRoom(int)
s16 m_playerSwordMoveAngY
Definition d_a_grass.h:174
Vec * mp_pos
Definition d_a_grass.h:176
u8 * mp_Jhana01_cDL
Definition d_a_grass.h:185
void setPlayerSwordAngY(s16 i_angY)
Definition d_a_grass.h:163
dFlower_data_c * newData(s8, cXyz &, int, s8, s16)
dFlower_anm_c m_anm[72]
Definition d_a_grass.h:170
u32 m_mat2Light4DL_size
Definition d_a_grass.h:182
void setData(dFlower_data_c *, int, s8, cXyz &, int, s8, s16)
void deleteAnm(int i_idx)
Definition d_a_grass.h:160
u8 * mp_Jhana01DL
Definition d_a_grass.h:183
dFlower_room_c m_room[64]
Definition d_a_grass.h:171
void setPlayerSwordTop(cXyz &i_pos)
Definition d_a_grass.h:165
dFlower_data_c m_data[1000]
Definition d_a_grass.h:169
u32 m_Jhana01DL_size
Definition d_a_grass.h:184
u32 m_Jhana01_cDL_size
Definition d_a_grass.h:186
Vec * mp_texCoords
Definition d_a_grass.h:178
void setPlayerCutFlg(int i_flag)
Definition d_a_grass.h:162
u8 * mp_mat2Light4DL
Definition d_a_grass.h:181
virtual ~dFlower_packet_c()
Definition d_a_grass.cpp:133
dFlower_data_c * getData()
Definition d_a_grass.h:158
void setPlayerSwordMoveAngY(s16 i_angY)
Definition d_a_grass.h:164
u32 m_mat2DL_size
Definition d_a_grass.h:180
static deleteFunc m_deleteRoom
Definition d_a_grass.h:154
dFlower_anm_c * getAnm()
Definition d_a_grass.h:157
u8 * mp_mat2DL
Definition d_a_grass.h:179
cXyz & getPlayerSwordTop()
Definition d_a_grass.h:166
u8 m_playerCutFlg
Definition d_a_grass.h:172
void setAnm(int, s16)
void(dFlower_packet_c::*) deleteFunc(int)
Definition d_a_grass.h:153
GXColor * mp_colors
Definition d_a_grass.h:177
virtual void draw()
cXyz m_playerSwordTop
Definition d_a_grass.h:175
dFlower_anm_c * getAnm(int i_idx)
Definition d_a_grass.h:156
u16 m_dataNum
Definition d_a_grass.h:168
s16 m_playerSwordAngY
Definition d_a_grass.h:173
Definition d_a_grass.h:118
dFlower_data_c * getData()
Definition d_a_grass.h:124
dFlower_data_c * mp_data
Definition d_a_grass.h:126
void newData(dFlower_data_c *)
Definition d_a_grass.h:43
Mtx m_animMtx
Definition d_a_grass.h:50
u8 m_state
Definition d_a_grass.h:47
s16 m_angX
Definition d_a_grass.h:49
s16 m_angY
Definition d_a_grass.h:48
Definition d_a_grass.h:9
u8 m_tableNo
Definition d_a_grass.h:22
void hitCheck(int, u16)
void WorkCo(fopAc_ac_c *, u32, int)
u8 field_0x01
Definition d_a_grass.h:20
dGrass_data_c * mp_next
Definition d_a_grass.h:29
void WorkAt_NoCutAnim(fopAc_ac_c *, u32, int, dCcMassS_HitInf *, cCcD_Obj *)
void WorkAt(fopAc_ac_c *, u32, int, dCcMassS_HitInf *, u16)
u8 field_0x05
Definition d_a_grass.h:24
u8 m_state
Definition d_a_grass.h:19
cXyz m_pos
Definition d_a_grass.h:27
s8 field_0x02
Definition d_a_grass.h:21
Mtx m_modelMtx
Definition d_a_grass.h:28
u8 field_0x06[0x08 - 0x06]
Definition d_a_grass.h:25
void Direction_Set(fopAc_ac_c *, u32, int, dCcMassS_HitInf *, cCcD_Obj *, csXyz *)
s16 m_addCol
Definition d_a_grass.h:26
u8 m_itemBitNo
Definition d_a_grass.h:23
Definition d_a_grass.h:53
void setAnm(int, s16)
void setData(dGrass_data_c *, int, cXyz &, int, u8, u8, s16, u8)
dGrass_data_c * getData()
Definition d_a_grass.h:73
dGrass_anm_c m_anm[112]
Definition d_a_grass.h:79
void deleteRoom(int)
dGrass_anm_c * getAnm()
Definition d_a_grass.h:70
static deleteFunc m_deleteRoom
Definition d_a_grass.h:68
void deleteAnm(int i_idx)
Definition d_a_grass.h:75
dGrass_room_c m_room[64]
Definition d_a_grass.h:80
GXColor * mp_colors
Definition d_a_grass.h:83
dGrass_anm_c * getAnm(int i_no)
Definition d_a_grass.h:71
u8 * mp_Mkusa_9q_DL
Definition d_a_grass.h:89
u32 m_kusa9q_DL_size
Definition d_a_grass.h:86
dGrass_data_c * newData(cXyz &, int, u8, u8, s16, u8)
virtual ~dGrass_packet_c()
Definition d_a_grass.h:65
u32 m_kusa9q_DL_14_size
Definition d_a_grass.h:88
u8 * mp_Mkusa_9q_cDL
Definition d_a_grass.h:91
u32 m_Mkusa_9q_DL_size
Definition d_a_grass.h:90
Vec * mp_texCoords
Definition d_a_grass.h:84
u16 m_dataNum
Definition d_a_grass.h:77
u8 * mp_kusa9q_14_DL
Definition d_a_grass.h:87
s16 field_0x1d714
Definition d_a_grass.h:93
Vec * mp_pos
Definition d_a_grass.h:81
Vec * mp_normal
Definition d_a_grass.h:82
virtual void draw()
void(dGrass_packet_c::*) deleteFunc(int)
Definition d_a_grass.h:67
u8 * mp_kusa9q_DL
Definition d_a_grass.h:85
dGrass_data_c m_data[1500]
Definition d_a_grass.h:78
u32 m_Mkusa_9q_cDL_size
Definition d_a_grass.h:92
Definition d_a_grass.h:32
dGrass_data_c * getData()
Definition d_a_grass.h:38
void deleteData()
void newData(dGrass_data_c *)
dGrass_data_c * mp_data
Definition d_a_grass.h:40
Grass.
Definition d_a_grass.h:197
static daGrass_c * m_myObj
Definition d_a_grass.h:222
static void deleteRoomFlower(int)
Definition d_com_static.cpp:411
static dFlower_packet_c * m_flower
Definition d_a_grass.h:224
void executeGrass()
Definition d_a_grass.cpp:91
void deleteFlower()
Definition d_a_grass.cpp:125
static dFlower_packet_c * getFlower()
Definition d_a_grass.h:217
bool createFlower()
Definition d_a_grass.cpp:111
int Delete()
Definition d_a_grass.cpp:373
void drawFlower()
Definition d_a_grass.cpp:143
static void deleteRoomGrass(int)
Definition d_com_static.cpp:396
static dGrass_packet_c * m_grass
Definition d_a_grass.h:223
void newFlowerData(s8, cXyz &, int, s8, s16)
Definition d_a_grass.cpp:150
int execute()
Definition d_a_grass.cpp:388
static dGrass_packet_c * getGrass()
Definition d_a_grass.h:216
bool createGrass()
Definition d_a_grass.cpp:69
void drawGrass()
Definition d_a_grass.cpp:98
void executeFlower()
Definition d_a_grass.cpp:136
void deleteGrass()
Definition d_a_grass.cpp:83
int draw()
Definition d_a_grass.cpp:406
void newGrassData(cXyz &, int, u8, u8, s16, u8)
Definition d_a_grass.cpp:105
int create()
Definition d_a_grass.cpp:164
STATIC_ASSERT(sizeof(dGrass_packet_c)==0x1D718)
u32 fopAcM_GetParam(const void *i_actor)
Definition f_op_actor_mng.h:186
f32 Mtx[3][4]
Definition mtx.h:22
Definition d_a_grass.h:227
u8 getItemBitNo(daGrass_c *i_this)
Definition d_a_grass.h:231
u8 getKind(daGrass_c *i_this)
Definition d_a_grass.h:228
u8 getItemNo(daGrass_c *i_this)
Definition d_a_grass.h:230
u8 getType(daGrass_c *i_this)
Definition d_a_grass.h:229
Definition d_a_hozelda.cpp:18
Definition d_menu_dmap_map.cpp:90
Definition d_a_npc_fguard.cpp:141
Definition d_a_hozelda.cpp:20
Definition d_a_hozelda.cpp:161
Definition d_a_grass.h:234
u8 num
Definition d_a_grass.h:235
csXyz * set_type
Definition d_a_grass.h:236
Definition d_a_hozelda.cpp:74
signed char s8
Definition types.h:4
unsigned long u32
Definition types.h:9
signed short int s16
Definition types.h:6
unsigned short int u16
Definition types.h:7
unsigned char u8
Definition types.h:5