Paper Mario DX
Paper Mario (N64) modding
 
Loading...
Searching...
No Matches
effects.h
Go to the documentation of this file.
1#ifndef _EFFECTS_H_
2#define _EFFECTS_H_
3
4#include "types.h"
5#include "common_structs.h"
6
7typedef struct BigSmokePuffFXData {
8 /* 0x00 */ s16 unk_00;
9 /* 0x02 */ s16 unk_02;
10 /* 0x04 */ s16 unk_04;
11 /* 0x06 */ s16 unk_06;
12 /* 0x08 */ s32 unk_08;
13 /* 0x0C */ f32 x;
14 /* 0x10 */ f32 y;
15 /* 0x14 */ f32 z;
16 /* 0x18 */ f32 partX;
17 /* 0x1C */ f32 partY;
18 /* 0x20 */ f32 unk_20;
19 /* 0x24 */ f32 unk_24;
20 /* 0x28 */ char unk_28[0x4];
21} BigSmokePuffFXData; // size = 0x2C
22
23typedef struct LandingDustFXData {
24 /* 0x00 */ u16 type;
25 /* 0x02 */ char unk_02[0x2];
26 /* 0x04 */ f32 x;
27 /* 0x08 */ f32 y;
28 /* 0x0C */ f32 z;
29 /* 0x10 */ f32 unk_10;
30 /* 0x14 */ f32 unk_14;
31 /* 0x18 */ f32 unk_18;
32 /* 0x1C */ f32 unk_1C;
33 /* 0x20 */ f32 unk_20;
34 /* 0x24 */ f32 unk_24;
35 /* 0x28 */ f32 unk_28;
36 /* 0x2C */ f32 unk_2C;
37 /* 0x30 */ f32 unk_30;
38 /* 0x34 */ f32 unk_34;
39 /* 0x38 */ s32 unk_38;
40 /* 0x3C */ s32 unk_3C;
41 /* 0x40 */ s32 unk_40;
42} LandingDustFXData; // size = 0x44
43
44typedef struct WalkingDustFXData {
45 /* 0x00 */ s32 unk_00;
46 /* 0x04 */ u16 unk_04;
47 /* 0x08 */ f32 unk_08;
48 /* 0x0C */ f32 unk_0C;
49 /* 0x10 */ f32 unk_10;
50 /* 0x14 */ char unk_14[0x44];
51 /* 0x58 */ f32 unk_58;
52 /* 0x5C */ f32 unk_5C;
53 /* 0x60 */ f32 unk_60;
54 /* 0x64 */ f32 unk_64;
55 /* 0x68 */ f32 unk_68;
56 /* 0x6C */ s32 unk_6C;
57 /* 0x70 */ s32 unk_70;
58 /* 0x74 */ s32 unk_74;
59} WalkingDustFXData; // size = 0x78
60
61// Used by both flower_splash and flower_trail
62typedef struct FlowerFXData {
63 /* 0x00 */ s32 alive;
64 /* 0x04 */ u16 triggeredByNpc;
65 /* 0x06 */ s16 timeLeft;
66 /* 0x08 */ u8 primAlpha;
67 /* 0x09 */ s8 useAltColor;
68 /* 0x0A */ char unk_0A[0x2];
69 /* 0x0C */ Vec3f pos;
70 /* 0x18 */ Vec3f scale;
71 /* 0x24 */ Vec3f rot;
72 /* 0x30 */ Mtx transformMtx;
73 /* 0x70 */ f32 velScaleA;
74 /* 0x74 */ f32 velScaleB;
75 /* 0x78 */ f32 visibilityAmt; // when this is zero, the flower can vanish. may have once controlled alpha.
76 /* 0x7C */ f32 unk_7C;
77 /* 0x80 */ f32 integrator[4];
78 /* 0x90 */ VecXZf vel;
79} FlowerFXData; // size = 0x98
80
81typedef struct CloudPuffFXData {
82 /* 0x00 */ s32 alive;
83 /* 0x04 */ char unk_04[0x2];
84 /* 0x06 */ s16 timeLeft;
85 /* 0x08 */ u8 alpha;
86 /* 0x09 */ char unk_09[0x3];
87 /* 0x0C */ Vec3f pos;
88 /* 0x18 */ Vec3f scale;
89 /* 0x24 */ f32 rescaleX;
90 /* 0x28 */ f32 rescaleY;
91 /* 0x2C */ f32 rescalePhase;
92 /* 0x30 */ f32 radialVel;
93 /* 0x34 */ f32 velY;
94 /* 0x38 */ f32 accelY;
95 /* 0x3C */ f32 jerkY;
96 /* 0x40 */ s32 unk_40;
97 /* 0x44 */ f32 dirX;
98 /* 0x48 */ f32 dirZ;
99} CloudPuffFXData; // size = 0x4C
100
101typedef struct CloudTrailFXData {
102 /* 0x00 */ s32 alive;
103 /* 0x04 */ u16 unk_04;
104 /* 0x06 */ s16 lifetime;
105 /* 0x08 */ u8 alpha;
106 /* 0x09 */ char unk_09[0x3];
107 /* 0x0C */ f32 unk_0C;
108 /* 0x10 */ f32 unk_10;
109 /* 0x14 */ f32 unk_14;
110 /* 0x18 */ f32 unk_18;
111 /* 0x1C */ f32 unk_1C;
112 /* 0x20 */ f32 unk_20;
113 /* 0x24 */ f32 unk_24;
114 /* 0x28 */ f32 unk_28;
115 /* 0x2C */ f32 unk_2C;
116 /* 0x30 */ f32 unk_30;
117 /* 0x34 */ char unk_34[0x4];
118 /* 0x38 */ f32 unk_38;
119 /* 0x3C */ f32 unk_3C;
120 /* 0x40 */ f32 unk_40;
121 /* 0x44 */ s32 unk_44;
122 /* 0x48 */ char unk_48[0x8];
123} CloudTrailFXData; // size = 0x50
124
125typedef struct FootprintFXData {
126 /* 0x00 */ s32 alive;
127 /* 0x04 */ char unk_04[0x2];
128 /* 0x06 */ s16 lifetime;
129 /* 0x08 */ u8 alpha;
130 /* 0x09 */ char unk_09[0x3];
131 /* 0x0C */ Vec3f pos;
132 /* 0x18 */ Vec3f scale; /* unused */
133 /* 0x24 */ Vec3f rot;
134 /* 0x30 */ Mtx mtx;
135 /* 0x70 */ s32 unk_70;
136 /* 0x74 */ char unk_74[0x8];
137 /* 0x7C */ s32 unk_7C;
138 /* 0x80 */ s32 unk_80;
139 /* 0x84 */ s32 unk_84;
140 /* 0x88 */ char unk_88[0x8];
141 /* 0x90 */ f32 unk_90;
142 /* 0x94 */ f32 unk_94;
143} FootprintFXData; // size = 0x98
144
145typedef struct FloatingFlowerFXData {
146 /* 0x00 */ s32 type;
147 /* 0x04 */ Vec3f pos;
148 /* 0x10 */ Vec3f vel;
149 /* 0x1C */ f32 accelY;
150 /* 0x20 */ f32 jerkY;
151 /* 0x24 */ Vec2f rot;
152 /* 0x2C */ Vec2f angularVel;
153 /* 0x34 */ s32 timeLeft;
154 /* 0x38 */ s32 lifetime;
155 /* 0x3C */ s32 unk_3C;
156 /* 0x40 */ s32 unk_40;
157 /* 0x44 */ s32 unk_44;
158} FloatingFlowerFXData; // size = 0x48
159
160typedef struct SnowflakeFXData {
161 /* 0x00 */ Vec3f pos;
162 /* 0x0C */ f32 unk_0C;
163 /* 0x10 */ f32 unk_10;
164 /* 0x14 */ f32 unk_14;
165 /* 0x18 */ f32 unk_18;
166 /* 0x1C */ f32 unk_1C;
167 /* 0x20 */ f32 unk_20;
168 /* 0x24 */ f32 unk_24;
169 /* 0x28 */ s32 unk_28;
170} SnowflakeFXData; // size = 0x2C
171
178
179typedef struct StarFXData {
180 /* 0x000 */ b32 canBounce;
181 /* 0x004 */ Vec3f pos;
182 /* 0x010 */ Vec3f vel;
183 /* 0x01C */ f32 bounceTime;
184 /* 0x020 */ f32 trailAngle;
185 /* 0x024 */ f32 starAngle;
186 /* 0x028 */ f32 unk_28;
187 /* 0x02C */ f32 starAngleVel;
188 /* 0x030 */ s32 timeLeft;
189 /* 0x034 */ f32 projVel;
190 /* 0x038 */ s32 type;
191 /* 0x03C */ s32 trailMatrixPos;
192 /* 0x040 */ Mtx trailMatrices[8];
193 /* 0x240 */ f32 scale;
194 /* 0x244 */ s32 primR;
195 /* 0x248 */ s32 primG;
196 /* 0x24C */ s32 primB;
197} StarFXData; // size = 0x250
198
199typedef struct EmoteFXData {
200 /* 0x00 */ s32 unk_00;
201 /* 0x04 */ f32 unk_04;
202 /* 0x08 */ f32 unk_08;
203 /* 0x0C */ f32 unk_0C;
204 /* 0x10 */ f32 unk_10;
205 /* 0x14 */ f32 unk_14;
206 /* 0x18 */ f32 unk_18;
207 /* 0x1C */ f32 unk_1C;
208 /* 0x20 */ f32 unk_20;
209 /* 0x24 */ f32 unk_24;
210 /* 0x28 */ f32 unk_28;
211 /* 0x2C */ s32 unk_2C;
212 /* 0x30 */ s32 unk_30;
213 /* 0x34 */ s32 unk_34;
214 /* 0x38 */ s32 unk_38;
215 /* 0x3C */ Npc* unk_3C;
216} EmoteFXData; // size = 0x40
217
218typedef struct SparklesFXData {
219 /* 0x00 */ s32 unk_00;
220 /* 0x04 */ f32 unk_04;
221 /* 0x08 */ f32 unk_08;
222 /* 0x0C */ f32 unk_0C;
223 /* 0x10 */ f32 unk_10;
224 /* 0x14 */ f32 unk_14;
225 /* 0x18 */ f32 unk_18;
226 /* 0x1C */ f32 unk_1C;
227 /* 0x20 */ s32 unk_20;
228 /* 0x24 */ s32 unk_24;
229 /* 0x28 */ s32 unk_28;
230 /* 0x2C */ s32 unk_2C;
231} SparklesFXData; // size = 0x30
232
240
241typedef struct ShapeSpellFXData {
242 /* 0x00 */ b32 isChild;
243 /* 0x04 */ Vec3f pos;
244 /* 0x10 */ f32 unk_10;
245 /* 0x14 */ f32 unk_14;
246 /* 0x18 */ f32 unk_18;
247 /* 0x1C */ f32 unk_1C;
248 /* 0x20 */ f32 unk_20;
249 /* 0x24 */ f32 unk_24;
250 /* 0x28 */ f32 unk_28;
251 /* 0x2C */ s32 unk_2C;
252 /* 0x30 */ s32 timeLeft;
253 /* 0x34 */ s32 unk_34;
254} ShapeSpellFXData; // size = 0x38
255
257 /* 0x00 */ s32 unk_00;
258 /* 0x04 */ Vec3f posA;
259 /* 0x10 */ Vec3f posB;
260 /* 0x1C */ f32 unk_1C;
261 /* 0x20 */ f32 unk_20;
262 /* 0x24 */ s32 unk_24;
263 /* 0x28 */ s32 unk_28;
264 /* 0x2C */ s32 unk_2C;
265 /* 0x30 */ s32 unk_30;
266 /* 0x34 */ s32 unk_34;
267 /* 0x38 */ s32 unk_38;
268 /* 0x3C */ s32 unk_3C;
269 /* 0x40 */ s32 unk_40;
270 /* 0x44 */ s32 unk_44;
271 /* 0x48 */ s32 unk_48;
272 /* 0x4C */ s32 unk_4C;
273 /* 0x50 */ f32 unk_50;
274 /* 0x54 */ f32 unk_54;
275 /* 0x58 */ f32 unk_58;
276 /* 0x5C */ f32 unk_5C;
277} GatherEnergyPinkFXData; // size = 0x60
278
279typedef struct DropLeavesFXData {
280 /* 0x00 */ s32 unk_00;
281 /* 0x04 */ f32 unk_04;
282 /* 0x08 */ f32 unk_08;
283 /* 0x0C */ f32 unk_0C;
284 /* 0x10 */ f32 unk_10;
285 /* 0x14 */ f32 unk_14;
286 /* 0x18 */ f32 unk_18;
287 /* 0x1C */ f32 unk_1C;
288 /* 0x20 */ f32 unk_20;
289 /* 0x24 */ s32 unk_24;
290 /* 0x28 */ s32 unk_28;
291 /* 0x2C */ s32 unk_2C;
292} DropLeavesFXData; // size = 0x30
293
294typedef struct DustFXData {
295 /* 0x00 */ s32 unk_00;
296 /* 0x04 */ f32 unk_04;
297 /* 0x08 */ f32 unk_08;
298 /* 0x0C */ f32 unk_0C;
299 /* 0x10 */ f32 unk_10;
300 /* 0x14 */ f32 unk_14;
301 /* 0x18 */ s32 unk_18;
302 /* 0x1C */ f32 unk_1C;
303 /* 0x20 */ f32 unk_20;
304 /* 0x24 */ f32 unk_24;
305 /* 0x28 */ f32 unk_28;
306 /* 0x2C */ s32 unk_2C;
307 /* 0x30 */ s32 unk_30;
308 /* 0x34 */ s32 unk_34;
309 /* 0x38 */ s32 unk_38;
310 /* 0x3C */ s32 unk_3C;
311 /* 0x40 */ s32 unk_40;
312 /* 0x44 */ s32 unk_44;
313} DustFXData; // size = 0x48
314
316 /* 0x00 */ f32 unk_00;
317 /* 0x04 */ f32 unk_04;
318 /* 0x08 */ f32 unk_08;
319 /* 0x0C */ f32 unk_0C;
320 /* 0x10 */ f32 unk_10;
321 /* 0x14 */ f32 unk_14;
322 /* 0x18 */ f32 unk_18;
323 /* 0x1C */ f32 unk_1C;
324 /* 0x20 */ s32 unk_20;
325 /* 0x24 */ s32 unk_24;
326 /* 0x28 */ s32 unk_28;
327 /* 0x2C */ f32 unk_2C;
328 /* 0x30 */ f32 unk_30;
329 /* 0x34 */ f32 unk_34;
330 /* 0x38 */ f32 unk_38;
331 /* 0x3C */ f32 unk_3C;
332} ShatteringStonesFXData; // size = 0x40
333
334typedef struct SmokeRingFXData {
335 /* 0x00 */ u16 unk_00;
336 /* 0x02 */ char unk_02[2];
337 /* 0x04 */ f32 unk_04;
338 /* 0x08 */ f32 unk_08;
339 /* 0x0C */ f32 unk_0C;
340 /* 0x10 */ f32 unk_10;
341 /* 0x14 */ f32 unk_14;
342 /* 0x18 */ f32 unk_18;
343 /* 0x1C */ f32 unk_1C;
344 /* 0x20 */ f32 unk_20;
345 /* 0x24 */ f32 unk_24;
346 /* 0x28 */ s32 unk_28;
347 /* 0x2C */ s32 unk_2C;
348 /* 0x30 */ f32 unk_30;
349 /* 0x34 */ f32 unk_34;
350 /* 0x38 */ s32 unk_38;
351 /* 0x3C */ s32 unk_3C;
352 /* 0x40 */ s32 unk_40;
353} SmokeRingFXData; // size = 0x44
354
362
363typedef struct DamageStarsFXData {
364 /* 0x00 */ s32 type;
365 /* 0x14 */ Vec3f pos;
366 /* 0x10 */ Vec3f vel;
367 /* 0x1C */ f32 rollAngle;
368 /* 0x20 */ f32 rollAngleVel;
369 /* 0x24 */ s32 alpha;
370 /* 0x28 */ s32 timeLeft;
371 /* 0x2C */ s32 lifetime;
372} DamageStarsFXData; // size = 0x30
373
374typedef struct ExplosionFXData {
375 /* 0x00 */ s32 unk_00;
376 /* 0x04 */ Vec3f pos;
377 /* 0x10 */ char unk_10[0x10];
378 /* 0x20 */ f32 unk_20;
379 /* 0x24 */ f32 unk_24;
380 /* 0x28 */ f32 unk_28;
381 /* 0x2C */ f32 unk_2C;
382 /* 0x30 */ s32 unk_30;
383 /* 0x34 */ s32 unk_34;
384 /* 0x38 */ s32 unk_38;
385} ExplosionFXData; // size = 0x3C
386
387typedef struct LensFlareFXData {
388 /* 0x00 */ s32 type;
389 /* 0x04 */ Vec3f pos;
390 /* 0x10 */ f32 largeFlareRot;
391 /* 0x14 */ f32 largeFlareRotVel;
392 /* 0x18 */ f32 largeFlareScale;
393 /* 0x1C */ f32 largeFlareScaleVel;
394 /* 0x20 */ f32 smallFlareScale;
395 /* 0x24 */ s32 largeFlareAlpha;
396 /* 0x28 */ s32 smallFlareAlpha;
397 /* 0x2C */ s32 timeLeft;
398 /* 0x30 */ s32 lifetime;
399} LensFlareFXData; // size = 0x34
400
401typedef struct GotItemOutlineFXData {
402 /* 0x00 */ s32 type;
403 /* 0x04 */ Vec3f pos;
404 /* 0x10 */ s32 lifetime;
405 /* 0x14 */ s32 timeLeft;
406 /* 0x18 */ f32 scale;
407 /* 0x1C */ s32 alpha;
408} GotItemOutlineFXData; // size = 0x20
409
410typedef struct SpikyWhiteAuraFXData {
411 /* 0x00 */ s32 unk_00;
412 /* 0x04 */ f32 unk_04;
413 /* 0x08 */ f32 unk_08;
414 /* 0x0C */ f32 unk_0C;
415 /* 0x10 */ f32 unk_10;
416 /* 0x14 */ f32 unk_14;
417 /* 0x18 */ f32 unk_18;
418 /* 0x1C */ f32 unk_1C;
419 /* 0x20 */ f32 unk_20;
420 /* 0x24 */ s32 unk_24;
421 /* 0x28 */ s32 unk_28;
422 /* 0x2C */ s32 unk_2C;
423} SpikyWhiteAuraFXData; // size = 0x30
424
425typedef struct SmokeImpactFXData {
426 /* 0x00 */ u16 unk_00;
427 /* 0x02 */ char unk_02[2];
428 /* 0x04 */ f32 unk_04;
429 /* 0x08 */ f32 unk_08;
430 /* 0x0C */ f32 unk_0C;
431 /* 0x10 */ f32 unk_10;
432 /* 0x14 */ f32 unk_14;
433 /* 0x18 */ f32 unk_18;
434 /* 0x1C */ f32 unk_1C;
435 /* 0x20 */ f32 unk_20;
436 /* 0x24 */ s32 unk_24;
437 /* 0x28 */ s32 unk_28;
438 /* 0x2C */ s32 unk_2C;
439 /* 0x30 */ f32 unk_30;
440} SmokeImpactFXData; // size = 0x34
441
442typedef struct DamageIndicatorFXData {
443 /* 0x00 */ s32 unk_00;
444 /* 0x04 */ Vec3f basePos;
445 /* 0x10 */ Vec3f curPos;
446 /* 0x1C */ Vec3f relPos;
447 /* 0x28 */ f32 radius;
448 /* 0x2C */ s32 alpha;
449 /* 0x30 */ s32 timeLeft;
450 /* 0x34 */ s32 lifetime;
451 /* 0x38 */ f32 scale;
452 /* 0x3C */ s32 damageAmt;
453} DamageIndicatorFXData; // size = 0x40
454
455typedef struct PurpleRingFXData {
456 /* 0x00 */ s32 unk_00;
457 /* 0x04 */ f32 unk_04;
458 /* 0x08 */ f32 unk_08;
459 /* 0x0C */ f32 unk_0C;
460 /* 0x10 */ f32 unk_10;
461 /* 0x14 */ f32 unk_14;
462 /* 0x18 */ f32 unk_18;
463 /* 0x1C */ Matrix4f unk_1C;
464 /* 0x5C */ f32 unk_5C;
465 /* 0x60 */ f32 unk_60;
466 /* 0x64 */ f32 unk_64;
467 /* 0x68 */ s32 unk_68;
468 /* 0x6C */ s32 unk_6C;
469 /* 0x70 */ s32 unk_70;
470 /* 0x74 */ u8 unk_74;
471 /* 0x75 */ u8 unk_75;
472 /* 0x76 */ u8 unk_76;
473 /* 0x77 */ u8 unk_77;
474 /* 0x78 */ u8 unk_78;
475 /* 0x79 */ u8 unk_79;
476 /* 0x7A */ char unk_7A[2];
477} PurpleRingFXData; // size = 0x7C
478
485
486typedef struct FlameFXData {
487 /* 0x00 */ s32 type;
488 /* 0x04 */ Vec3f pos;
489 /* 0x10 */ f32 baseScale;
490 /* 0x14 */ f32 unk_14;
491 /* 0x18 */ s32 unk_18;
492 /* 0x1C */ f32 unk_1C;
493 /* 0x20 */ f32 unk_20;
494 /* 0x24 */ f32 unk_24;
495 /* 0x28 */ f32 unk_28;
496 /* 0x2C */ f32 scaleH;
497 /* 0x30 */ f32 scaleW;
498} FlameFXData; // size = 0x34
499
500typedef struct StarsBurstFXData {
501 /* 0x00 */ s32 unk_00;
502 /* 0x04 */ f32 unk_04;
503 /* 0x08 */ f32 unk_08;
504 /* 0x0C */ f32 unk_0C;
505 /* 0x10 */ f32 unk_10;
506 /* 0x14 */ f32 unk_14;
507 /* 0x18 */ f32 unk_18;
508 /* 0x1C */ char unk_1C[8];
509 /* 0x24 */ f32 unk_24;
510 /* 0x28 */ f32 unk_28;
511 /* 0x2C */ s32 unk_2C;
512 /* 0x30 */ s32 unk_30;
513 /* 0x34 */ s32 unk_34;
514} StarsBurstFXData; // size = 0x38
515
516typedef struct StarsShimmerFXData {
517 /* 0x00 */ s16 unk_00;
518 /* 0x02 */ s16 state;
519 /* 0x04 */ Vec3f pos;
520 /* 0x10 */ f32 unk_10;
521 /* 0x14 */ f32 unk_14;
522 /* 0x18 */ f32 unk_18;
523 /* 0x1C */ f32 unk_1C;
524 /* 0x20 */ s32 lifeTime;
525 /* 0x24 */ s32 timeLeft;
526 /* 0x28 */ s32 unk_28;
527} StarsShimmerFXData; // size = 0x2C
528
529typedef struct RisingBubbleFXData {
530 /* 0x00 */ s32 unk_00;
531 /* 0x04 */ Vec3f pos;
532 /* 0x10 */ f32 unk_10;
533 /* 0x14 */ s32 unk_14;
534 /* 0x18 */ s32 timeLeft;
535 /* 0x1C */ s32 lifeTime;
536 /* 0x20 */ s32 unk_20;
537 /* 0x24 */ f32 unk_24;
538} RisingBubbleFXData; // size = 0x28
539
540typedef struct RingBlastFXData {
541 /* 0x00 */ u16 unk_00;
542 /* 0x04 */ Vec3f pos;
543 /* 0x10 */ f32 unk_10;
544 /* 0x14 */ s32 timeLeft;
545 /* 0x18 */ s32 lifeTime;
546 /* 0x1C */ s32 unk_1C;
547 /* 0x20 */ f32 unk_20;
548 /* 0x24 */ f32 unk_24;
549 /* 0x28 */ f32 unk_28;
550} RingBlastFXData; // size = 0x2C
551
552// Likely to be the same as GreenImpactFXData and RedImpactFXData
553typedef struct ShockwaveFXData {
554 /* 0x00 */ u16 unk_00;
555 /* 0x02 */ char unk_02[2]; // likely padding
556 /* 0x04 */ Vec3f pos;
557 /* 0x10 */ f32 unk_10;
558 /* 0x14 */ f32 unk_14;
559 /* 0x18 */ s32 unk_18;
560 /* 0x1C */ f32 unk_1C;
561 /* 0x20 */ f32 unk_20;
562 /* 0x24 */ f32 unk_24;
563 /* 0x28 */ s32 unk_28;
564 /* 0x2C */ s32 unk_2C;
565 /* 0x30 */ f32 unk_30;
566 /* 0x34 */ f32 unk_34;
567 /* 0x38 */ s32 alpha;
568 /* 0x3C */ f32 unk_3C;
569 /* 0x40 */ f32 unk_40;
570 /* 0x44 */ f32 unk_44;
571 /* 0x48 */ f32 unk_48;
572 /* 0x4C */ s32 unk_4C;
573 /* 0x50 */ Color_RGB8 prim;
574 /* 0x53 */ Color_RGB8 env;
575 /* 0x56 */ char unk_56[2]; // likely padding
576} ShockwaveFXData; // size = 0x58
577
578typedef struct MusicNoteFXData {
579 /* 0x00 */ s32 type;
580 /* 0x04 */ Vec3f pos;
581 /* 0x10 */ f32 scale;
582 /* 0x14 */ s32 alpha;
583 /* 0x18 */ s32 timeLeft;
584 /* 0x1C */ s32 lifetime;
585 /* 0x20 */ s32 noteType;
586 /* 0x24 */ f32 velX;
587 /* 0x28 */ f32 velY;
588 /* 0x2C */ f32 finalVelX;
589 /* 0x30 */ f32 finalVelY;
590} MusicNoteFXData; // size = 0x34
591
592typedef struct SmokeBurstFXData {
593 /* 0x00 */ u16 unk_00;
594 /* 0x04 */ Vec3f pos;
595 /* 0x10 */ f32 unk_10;
596 /* 0x14 */ s32 timeLeft;
597 /* 0x18 */ s32 lifeTime;
598 /* 0x1C */ s32 unk_1C;
599 /* 0x20 */ f32 unk_20;
600 /* 0x24 */ Color_RGBA8 rgba;
601} SmokeBurstFXData; // size = 0x28
602
603typedef struct SweatFXData {
604 /* 0x00 */ s32 unk_00;
605 /* 0x04 */ Vec3f pos;
606 /* 0x10 */ f32 unk_10;
607 /* 0x14 */ char unk_14[0x04];
608 /* 0x18 */ f32 unk_18;
609 /* 0x1C */ f32 unk_1C;
610 /* 0x20 */ f32 unk_20;
611 /* 0x24 */ s32 timeLeft;
612} SweatFXData; // size = 0x28
613
614typedef struct SleepBubbleFXData {
615 /* 0x00 */ s32 unk_00;
616 /* 0x04 */ Vec3f pos;
617 /* 0x10 */ f32 unk_10;
618 /* 0x14 */ f32 unk_14;
619 /* 0x18 */ f32 unk_18;
620 /* 0x1C */ s32 timeLeft;
621 /* 0x20 */ s32 unk_20;
622 /* 0x24 */ Vec2f points[20];
623 /* 0xC4 */ f32 unk_C4;
624 /* 0xC8 */ f32 unk_C8;
625} SleepBubbleFXData; // size = 0xCC
626
627typedef struct WindyLeavesFXData {
628 /* 0x00 */ s32 type;
629 /* 0x04 */ Vec3f unk_04;
630 /* 0x10 */ f32 unk_10;
631 /* 0x14 */ f32 unk_14;
632 /* 0x18 */ f32 unk_18;
633 /* 0x1C */ f32 unk_1C;
634 /* 0x20 */ f32 unk_20;
635 /* 0x24 */ s32 alpha;
636 /* 0x28 */ s32 unk_28;
637 /* 0x2C */ s32 unk_2C;
638 /* 0x30 */ f32 unk_30;
639 /* 0x34 */ f32 unk_34;
640 /* 0x38 */ f32 unk_38;
641} WindyLeavesFXData; // size = 0x3C
642
643typedef struct FallingLeavesFXData {
644 /* 0x00 */ s32 unk_00;
645 /* 0x04 */ f32 unk_04;
646 /* 0x08 */ f32 unk_08;
647 /* 0x0C */ f32 unk_0C;
648 /* 0x10 */ f32 unk_10;
649 /* 0x14 */ f32 unk_14;
650 /* 0x18 */ f32 unk_18;
651 /* 0x1C */ f32 unk_1C;
652 /* 0x20 */ f32 unk_20;
653 /* 0x24 */ s32 unk_24;
654 /* 0x28 */ s32 unk_28;
655 /* 0x2C */ s32 unk_2C;
656 /* 0x30 */ char unk_30[4];
657} FallingLeavesFXData; // size = 0x34
658
659typedef struct StarsSpreadFXData {
660 /* 0x00 */ s16 unk_00;
661 /* 0x02 */ char unk_02[2];
662 /* 0x04 */ f32 unk_04;
663 /* 0x08 */ f32 unk_08;
664 /* 0x0C */ f32 unk_0C;
665 /* 0x10 */ f32 unk_10;
666 /* 0x14 */ f32 unk_14;
667 /* 0x18 */ f32 unk_18;
668 /* 0x1C */ f32 unk_1C;
669 /* 0x20 */ f32 unk_20;
670 /* 0x24 */ s32 unk_24;
671 /* 0x28 */ s32 unk_28;
672 /* 0x2C */ s32 unk_2C;
673 /* 0x30 */ f32 unk_30;
674} StarsSpreadFXData; // size = 0x34
675
676typedef struct SteamBurstFXData {
677 /* 0x00 */ u16 unk_00;
678 /* 0x02 */ char unk_02[2];
679 /* 0x04 */ f32 unk_04;
680 /* 0x08 */ f32 unk_08;
681 /* 0x0C */ f32 unk_0C;
682 /* 0x10 */ f32 unk_10;
683 /* 0x14 */ f32 unk_14;
684 /* 0x18 */ f32 unk_18;
685 /* 0x1C */ f32 unk_1C;
686 /* 0x20 */ f32 unk_20;
687 /* 0x24 */ s32 unk_24;
688 /* 0x28 */ s32 unk_28;
689 /* 0x2C */ s32 unk_2C;
690 /* 0x30 */ f32 unk_30;
691} SteamBurstFXData; // size = 0x34
692
693typedef struct StarsOrbitingFXData {
694 /* 0x00 */ s32 type;
695 /* 0x04 */ Vec3f pos;
696 /* 0x10 */ f32 orbitRadius;
697 /* 0x14 */ f32 targetRadius;
698 /* 0x18 */ f32 roll;
699 /* 0x1C */ f32 rollSpinRate;
700 /* 0x20 */ f32 pitch;
701 /* 0x24 */ s32 yaw;
702 /* 0x28 */ s32 enabled;
703} StarsOrbitingFXData; // size = 0x2C
704
705typedef struct BigSnowflakesFXData {
706 /* 0x00 */ s32 unk_00;
707 /* 0x04 */ f32 unk_04;
708 /* 0x08 */ f32 unk_08;
709 /* 0x0C */ f32 unk_0C;
710 /* 0x10 */ f32 unk_10;
711 /* 0x14 */ f32 unk_14;
712 /* 0x18 */ f32 unk_18;
713 /* 0x1C */ f32 unk_1C;
714 /* 0x20 */ f32 unk_20;
715 /* 0x24 */ s32 unk_24;
716 /* 0x28 */ s32 unk_28;
717 /* 0x2C */ s32 unk_2C;
718} BigSnowflakesFXData; // size = 0x30
719
720typedef struct DebuffFXData {
721 /* 0x00 */ s16 type;
722 /* 0x02 */ char unk_02[2];
723 /* 0x04 */ Vec3f pos;
724 /* 0x10 */ f32 unk_10;
725 /* 0x14 */ f32 unk_14;
726 /* 0x18 */ f32 unk_18;
727 /* 0x1C */ f32 scaleY;
728 /* 0x20 */ f32 scaleX;
729 /* 0x24 */ s32 timeLeft;
730 /* 0x28 */ s32 lifetime;
731 /* 0x2C */ f32 rotZ;
732 /* 0x30 */ f32 unk_30;
733 /* 0x34 */ s32 alpha;
734 /* 0x38 */ Color_RGB8 primCol;
735 /* 0x3B */ Color_RGB8 envCol;
736 /* 0x3E */ char unk_3E[2];
737} DebuffFXData; // size = 0x40
738
739// Likely to be the same as RedImpactFXData and ShockwaveFXData
740typedef struct GreenImpactFXData {
741 /* 0x00 */ u16 unk_00;
742 /* 0x02 */ char unk_02[2]; // likely padding
743 /* 0x04 */ f32 unk_04;
744 /* 0x08 */ f32 unk_08;
745 /* 0x0C */ f32 unk_0C;
746 /* 0x10 */ f32 unk_10;
747 /* 0x14 */ f32 unk_14;
748 /* 0x18 */ s32 unk_18;
749 /* 0x1C */ f32 unk_1C;
750 /* 0x20 */ f32 unk_20;
751 /* 0x24 */ f32 unk_24;
752 /* 0x28 */ s32 unk_28;
753 /* 0x2C */ s32 unk_2C;
754 /* 0x30 */ f32 unk_30;
755 /* 0x34 */ f32 unk_34;
756 /* 0x38 */ s32 unk_38;
757 /* 0x3C */ f32 unk_3C;
758 /* 0x40 */ f32 unk_40;
759 /* 0x44 */ f32 unk_44;
760 /* 0x48 */ f32 unk_48;
761 /* 0x4C */ s32 unk_4C;
762 /* 0x50 */ Color_RGB8 unk_50;
763 /* 0x53 */ Color_RGB8 unk_53;
764 /* 0x56 */ char unk_56[2]; // likely padding
765} GreenImpactFXData; // size = 0x58
766
767typedef struct RadialShimmerFXData {
768 /* 0x00 */ s32 unk_00;
769 /* 0x04 */ f32 unk_04;
770 /* 0x08 */ f32 unk_08;
771 /* 0x0C */ f32 unk_0C;
772 /* 0x10 */ f32 unk_10;
773 /* 0x14 */ f32 unk_14;
774 /* 0x18 */ f32 unk_18;
775 /* 0x1C */ f32 unk_1C;
776 /* 0x20 */ f32 unk_20;
777 /* 0x24 */ s32 unk_24;
778 /* 0x28 */ s32 timeLeft;
779 /* 0x2C */ s32 lifeTime;
780 /* 0x30 */ f32 unk_30;
781 /* 0x34 */ f32 unk_34;
782 /* 0x38 */ f32 unk_38;
783 /* 0x3C */ f32 unk_3C;
784 /* 0x40 */ f32 unk_40;
785 /* 0x44 */ f32 unk_44;
786 /* 0x48 */ f32 unk_48;
787 /* 0x4C */ f32 unk_4C;
788 /* 0x50 */ f32 unk_50;
789 /* 0x54 */ f32 unk_54;
790 /* 0x58 */ f32 unk_58;
791 /* 0x5C */ f32 unk_5C;
792 /* 0x60 */ f32 unk_60;
793 /* 0x64 */ f32 unk_64;
794 /* 0x68 */ u8 unk_68;
795 /* 0x69 */ u8 unk_69;
796 /* 0x6A */ u8 unk_6A;
797 /* 0x6B */ u8 unk_6B;
798 /* 0x6C */ u8 unk_6C;
799 /* 0x6D */ u8 unk_6D;
800 /* 0x6E */ char unk_6E[2];
801} RadialShimmerFXData; // size = 0x70
802
803typedef struct EndingDecalsFXData {
804 /* 0x00 */ s32 type;
805 /* 0x04 */ Vec3f pos;
806 /* 0x10 */ f32 scale;
807 /* 0x14 */ f32 unk_14;
808 /* 0x18 */ s32 haloAlpha;
809 /* 0x1C */ s32 unk_1C;
810 /* 0x20 */ s32 unk_20;
811 /* 0x24 */ u8 unk_24;
812 /* 0x25 */ u8 unk_25;
813 /* 0x26 */ u8 unk_26;
814 /* 0x27 */ u8 unk_27;
815 /* 0x28 */ u8 unk_28;
816 /* 0x29 */ u8 unk_29;
817 /* 0x2A */ char unk_2A[2];
818} EndingDecalsFXData; // size = 0x2C
819
820typedef struct LightRaysFXData {
821 /* 0x00 */ s32 type;
822 /* 0x04 */ char unk_04[0xC];
823 /* 0x10 */ Vec3f pos;
824 /* 0x1C */ f32 unk_1C;
825 /* 0x20 */ f32 unk_20;
826 /* 0x24 */ s32 alpha;
827 /* 0x28 */ s32 timeLeft;
828 /* 0x2C */ s32 lifetime;
829 /* 0x30 */ char unk_30[4];
830 /* 0x34 */ f32 unk_34;
831 /* 0x38 */ f32 unk_38;
832 /* 0x3C */ f32 unk_3C;
833 /* 0x40 */ f32 unk_40;
834 /* 0x44 */ char unk_44[4];
835 /* 0x48 */ f32 unk_48;
836 /* 0x4C */ f32 unk_4C;
837 /* 0x50 */ f32 unk_50;
838 /* 0x54 */ f32 unk_54;
839 /* 0x58 */ f32 unk_58;
840 /* 0x5C */ Vec3f rot;
841 /* 0x68 */ f32 unk_68;
842 /* 0x6C */ f32 unk_6C;
843 /* 0x70 */ Vec3f initialRot;
844 /* 0x7C */ s32 unk_7C;
845 /* 0x80 */ f32 unk_80;
846 /* 0x84 */ f32 unk_84;
847 /* 0x88 */ f32 unk_88;
848 /* 0x8C */ f32 unk_8C;
849 /* 0x90 */ s32 unk_90;
850} LightRaysFXData; // size = 0x94
851
852typedef struct LightningFXData {
853 /* 0x00 */ s32 unk_00;
854 /* 0x04 */ f32 unk_04;
855 /* 0x08 */ f32 unk_08;
856 /* 0x0C */ f32 unk_0C;
857 /* 0x10 */ s32 unk_10;
858 /* 0x14 */ s32 unk_14;
859 /* 0x18 */ s32 unk_18;
860 /* 0x1C */ f32 unk_1C;
861 /* 0x20 */ f32 unk_20;
862 /* 0x24 */ f32 unk_24;
863 /* 0x28 */ f32 unk_28;
864 /* 0x2C */ f32 unk_2C;
865 /* 0x30 */ f32 unk_30;
866 /* 0x34 */ f32 unk_34;
867 /* 0x38 */ f32 unk_38;
868 /* 0x3C */ s32 unk_3C;
869 /* 0x40 */ s32 unk_40;
870 /* 0x44 */ struct EffectInstance* unk_44;
871 /* 0x48 */ struct EffectInstance* unk_48;
872} LightningFXData; // size = 0x4C
873
874typedef struct FireBreathFXData {
875 /* 0x00 */ s32 type;
876 /* 0x04 */ s32 numChildren;
877 /* 0x08 */ s32 spawnDelay;
878 /* 0x0C */ Vec3f pos;
879 /* 0x18 */ Vec3f initPos;
880 /* 0x24 */ Vec3f endPos;
881 /* 0x30 */ f32 initialScale;
882 /* 0x34 */ f32 targetScale;
883 /* 0x38 */ f32 scale;
884 /* 0x3C */ f32 scaleChangeRate;
885 /* 0x40 */ s32 alpha;
886 /* 0x44 */ s32 duration;
887 /* 0x48 */ s32 timeLeft;
888 /* 0x4C */ s32 lifetime;
889 /* 0x50 */ Vec3f offsetPos;
890 /* 0x5C */ f32 animTime; // each integer value corresponds to a new frame
891 /* 0x60 */ f32 velY;
892 /* 0x64 */ s32 primR;
893 /* 0x68 */ s32 primG;
894 /* 0x6C */ s32 primB;
895 /* 0x70 */ s32 envR;
896 /* 0x74 */ s32 envG;
897 /* 0x78 */ s32 envB;
898} FireBreathFXData; // size = 0x7C
899
900typedef struct ShimmerBurstFXData {
901 /* 0x00 */ s32 unk_00;
902 /* 0x04 */ f32 unk_04;
903 /* 0x08 */ f32 unk_08;
904 /* 0x0C */ f32 unk_0C;
905 /* 0x10 */ f32 unk_10;
906 /* 0x14 */ f32 unk_14;
907 /* 0x18 */ f32 unk_18;
908 /* 0x1C */ f32 unk_1C;
909 /* 0x20 */ f32 unk_20;
910 /* 0x24 */ f32 unk_24;
911 /* 0x28 */ f32 unk_28;
912 /* 0x2C */ f32 unk_2C;
913 /* 0x30 */ s32 unk_30;
914 /* 0x34 */ f32 unk_34;
915 /* 0x38 */ s32 unk_38;
916 /* 0x3C */ s32 unk_3C;
917 /* 0x40 */ s32 unk_40;
918 /* 0x44 */ s32 unk_44;
919 /* 0x48 */ s32 unk_48;
920 /* 0x4C */ s32 unk_4C;
921 /* 0x50 */ s32 unk_50;
922 /* 0x54 */ s32 unk_54;
923 /* 0x58 */ s32 unk_58;
924 /* 0x5C */ s32 unk_5C;
925 /* 0x60 */ f32 unk_60;
926 /* 0x64 */ f32 unk_64;
927 /* 0x68 */ f32 unk_68;
928} ShimmerBurstFXData; // size = 0x6C
929
930typedef struct EnergyShockwaveFXData {
931 /* 0x00 */ s32 unk_00;
932 /* 0x04 */ f32 unk_04;
933 /* 0x08 */ f32 unk_08;
934 /* 0x0C */ f32 unk_0C;
935 /* 0x10 */ char unk_10[0xC];
936 /* 0x1C */ f32 unk_1C;
937 /* 0x20 */ f32 unk_20;
938 /* 0x24 */ s32 unk_24;
939 /* 0x28 */ s32 unk_28;
940 /* 0x2C */ s32 unk_2C;
941 /* 0x30 */ f32 unk_30;
942 /* 0x34 */ f32 unk_34;
943 /* 0x38 */ f32 unk_38;
944 /* 0x3C */ f32 unk_3C;
945 /* 0x40 */ f32 unk_40;
946 /* 0x44 */ f32 unk_44;
947 /* 0x48 */ f32 unk_48;
948 /* 0x4C */ f32 unk_4C;
949 /* 0x50 */ u8 unk_50;
950 /* 0x51 */ u8 unk_51;
951 /* 0x52 */ s8 unk_52;
952 /* 0x53 */ char unk_53[1];
953} EnergyShockwaveFXData; // size = 0x54
954
955typedef struct ShimmerWaveFXData {
956 /* 0x00 */ s32 unk_00;
957 /* 0x04 */ f32 unk_04;
958 /* 0x08 */ f32 unk_08;
959 /* 0x0C */ f32 unk_0C;
960 /* 0x10 */ f32 unk_10;
961 /* 0x14 */ f32 unk_14;
962 /* 0x18 */ f32 unk_18;
963 /* 0x1C */ f32 unk_1C;
964 /* 0x20 */ f32 unk_20;
965 /* 0x24 */ f32 unk_24;
966 /* 0x28 */ f32 unk_28;
967 /* 0x2C */ f32 unk_2C;
968 /* 0x30 */ s32 unk_30;
969 /* 0x34 */ f32 unk_34;
970 /* 0x38 */ s32 unk_38;
971 /* 0x3C */ s32 unk_3C;
972 /* 0x40 */ s32 unk_40;
973 /* 0x44 */ s32 unk_44;
974 /* 0x48 */ s32 unk_48;
975 /* 0x4C */ s32 unk_4C;
976 /* 0x50 */ s32 unk_50;
977 /* 0x54 */ s32 unk_54;
978 /* 0x58 */ s32 unk_58;
979 /* 0x5C */ s32 unk_5C;
980 /* 0x60 */ f32 unk_60;
981 /* 0x64 */ f32 unk_64;
982 /* 0x68 */ f32 unk_68;
983} ShimmerWaveFXData; // size = 0x6C
984
986 FX_AURA_CAPTURE = 0, // star spirit being captured in the intro
987 FX_AURA_RED = 1, // used by Kooper's Fire Shell
988 FX_AURA_BLUE = 2, // used by Final Bowser
989 FX_AURA_GOLD = 3, // used by The Master (final form)
990};
991
992typedef struct AuraFXData {
993 /* 0x00 */ s32 type;
994 /* 0x04 */ Vec3f posA;
995 /* 0x10 */ Vec3f posB;
996 /* 0x1C */ Vec2f scale;
997 /* 0x24 */ f32 unk_24;
998 /* 0x28 */ s32 primA;
999 /* 0x2C */ s32 fadeTime;
1000 /* 0x30 */ s32 lifeTime;
1001 /* 0x34 */ f32 unk_34;
1002 /* 0x38 */ f32 unk_38;
1003 /* 0x3C */ f32 unk_3C;
1004 /* 0x40 */ f32 unk_40;
1005 /* 0x44 */ f32 unk_44;
1006 /* 0x48 */ f32 unk_48;
1007 /* 0x4C */ f32 unk_4C;
1008 /* 0x50 */ f32 unk_50;
1009 /* 0x54 */ f32 unk_54;
1010 /* 0x58 */ f32 unk_58;
1011 /* 0x5C */ f32 unk_5C;
1012 /* 0x60 */ f32 unk_60;
1013 /* 0x64 */ f32 renderYaw;
1014 /* 0x68 */ u8 primR;
1015 /* 0x69 */ u8 primG;
1016 /* 0x6A */ u8 primB;
1017 /* 0x6B */ u8 envR;
1018 /* 0x6C */ u8 envG;
1019 /* 0x6D */ u8 engB;
1020 /* 0x6E */ u8 engA;
1021} AuraFXData; // size = 0x70
1022
1023typedef struct BulbGlowFXData {
1024 /* 0x00 */ s32 type;
1025 /* 0x04 */ Vec3f pos;
1026 /* 0x10 */ s32 brightness;
1027 /* 0x14 */ s32 timeLeft;
1028 /* 0x18 */ s32 lifetime;
1029 /* 0x1C */ s32 depthQueryID;
1030 /* 0x20 */ s32 unk_20;
1031} BulbGlowFXData; // size = 0x24
1032
1033typedef struct Effect3DFXData {
1034 /* 0x00 */ s32 unk_00;
1035 /* 0x04 */ s32 unk_04;
1036 /* 0x08 */ Vec3f pos;
1037 /* 0x14 */ f32 unk_14;
1038 /* 0x18 */ f32 unk_18;
1039 /* 0x1C */ f32 unk_1C;
1040 /* 0x20 */ f32 unk_20;
1041 /* 0x24 */ f32 unk_24;
1042 /* 0x28 */ f32 unk_28;
1043 /* 0x2C */ f32 unk_2C;
1044 /* 0x30 */ f32 unk_30;
1045 /* 0x34 */ f32 unk_34;
1046 /* 0x38 */ f32 unk_38;
1047 /* 0x3C */ f32 unk_3C;
1048 /* 0x40 */ f32 unk_40;
1049 /* 0x44 */ f32 unk_44;
1050 /* 0x48 */ f32 unk_48;
1051 /* 0x4C */ f32 unk_4C;
1052 /* 0x50 */ f32 unk_50;
1053 /* 0x54 */ f32 unk_54;
1054 /* 0x58 */ s32 unk_58;
1055 /* 0x5C */ s32 unk_5C;
1056 /* 0x60 */ s32 unk_60;
1057 /* 0x64 */ s32 unk_64;
1058} Effect3DFXData; // size = 0x68
1059
1060typedef struct BlastFXData {
1061 /* 0x00 */ s16 unk_00;
1062 /* 0x04 */ Vec3f pos;
1063 /* 0x10 */ f32 unk_10;
1064 /* 0x14 */ s32 timeLeft;
1065 /* 0x18 */ s32 unk_18;
1066 /* 0x1C */ s32 unk_1C;
1067 /* 0x20 */ f32 unk_20;
1068 /* 0x24 */ f32 unk_24;
1069 /* 0x28 */ f32 unk_28;
1070} BlastFXData; // size = 0x2C
1071
1072typedef struct FireFlowerFXData {
1073 /* 0x00 */ s32 unk_00;
1074 /* 0x04 */ s32 unk_04;
1075 /* 0x08 */ Vec3f pos;
1076 /* 0x14 */ f32 unk_14;
1077 /* 0x18 */ f32 unk_18;
1078 /* 0x1C */ f32 unk_1C;
1079 /* 0x20 */ f32 unk_20;
1080 /* 0x24 */ f32 unk_24;
1081 /* 0x28 */ f32 unk_28;
1082 /* 0x2C */ f32 unk_2C;
1083 /* 0x30 */ f32 unk_30;
1084 /* 0x34 */ s32 unk_34;
1085 /* 0x38 */ s32 unk_38;
1086 /* 0x3C */ s32 unk_3C;
1087 /* 0x40 */ Vec3i unk_40;
1088} FireFlowerFXData; // size = 0x4C
1089
1090typedef struct RecoverFXData {
1091 /* 0x00 */ s32 type;
1092 /* 0x04 */ Vec3f pos;
1093 /* 0x10 */ Vec3f vel;
1094 /* 0x1C */ f32 angle;
1095 /* 0x20 */ s32 unk_20;
1096 /* 0x24 */ f32 offsetX;
1097 /* 0x28 */ s32 alpha;
1098 /* 0x2C */ s32 timeLeft;
1099 /* 0x30 */ s32 lifetime;
1100 /* 0x34 */ s32 unk_34;
1101 /* 0x38 */ f32 scaleX;
1102 /* 0x3C */ f32 scaleY;
1103 /* 0x40 */ s32 unk_40;
1104 /* 0x44 */ s32 unk_44;
1105} RecoverFXData; // size = 0x48
1106
1107typedef struct DisableXFXData {
1108 /* 0x00 */ s32 type;
1109 /* 0x04 */ s32 unk_04;
1110 /* 0x08 */ Vec3f pos;
1111 /* 0x14 */ f32 unk_14;
1112 /* 0x18 */ f32 unk_18;
1113 /* 0x1C */ f32 unk_1C;
1114 /* 0x20 */ f32 unk_20;
1115 /* 0x24 */ s32 alpha;
1116 /* 0x28 */ s32 unk_28;
1117 /* 0x2C */ s32 unk_2C;
1118 /* 0x30 */ f32 unk_30;
1119 /* 0x34 */ f32 scale;
1120 /* 0x38 */ s32 unk_38;
1121 /* 0x3C */ s32 koDuration;
1122 /* 0x40 */ f32 unk_40;
1123 /* 0x44 */ s32 unk_44;
1124} DisableXFXData; // size = 0x48
1125
1127 /* 0x00 */ s16 type;
1128 /* 0x02 */ s16 treeIndex;
1129 /* 0x04 */ f32 unk_04;
1130 /* 0x08 */ Vec3f center;
1131 /* 0x14 */ Vec3f unk_14;
1132 /* 0x20 */ Vec3f unk_20;
1133 /* 0x2C */ Vec3f unk_2C;
1134 /* 0x38 */ f32 unk_38;
1135 /* 0x3C */ f32 unk_3C;
1136 /* 0x40 */ f32 unk_40;
1137 /* 0x44 */ s32 timeLeft;
1138 /* 0x48 */ s32 unk_48;
1139 /* 0x4C */ s32 alpha;
1141
1142typedef struct FireworkFXData {
1143 /* 0x00 */ s32 unk_00;
1144 /* 0x04 */ f32 unk_04;
1145 /* 0x08 */ f32 unk_08;
1146 /* 0x0C */ f32 unk_0C;
1147 /* 0x10 */ s32 unk_10;
1148 /* 0x14 */ s32 unk_14;
1149 /* 0x18 */ char unk_18[4];
1150 /* 0x1C */ f32 unk_1C;
1151 /* 0x20 */ s32 unk_20;
1152 /* 0x24 */ f32 unk_24;
1153 /* 0x28 */ f32 unk_28;
1154 /* 0x2C */ s32 unk_2C;
1155 /* 0x30 */ s32 unk_30;
1156 /* 0x34 */ s32 unk_34;
1157 /* 0x38 */ f32 unk_38;
1158 /* 0x3C */ u8 unk_3C;
1159 /* 0x3D */ u8 unk_3D;
1160 /* 0x3E */ u8 unk_3E;
1161 /* 0x3F */ u8 unk_3F;
1162 /* 0x40 */ u8 unk_40;
1163 /* 0x41 */ u8 unk_41;
1164 /* 0x42 */ char unk_42[2];
1165} FireworkFXData; // size = 0x44
1166
1167typedef struct ConfettiFXData {
1168 /* 0x00 */ s32 unk_00;
1169 /* 0x04 */ f32 unk_04;
1170 /* 0x08 */ f32 unk_08;
1171 /* 0x0C */ f32 unk_0C;
1172 /* 0x10 */ f32 unk_10;
1173 /* 0x14 */ f32 unk_14;
1174 /* 0x18 */ f32 unk_18;
1175 /* 0x1C */ f32 unk_1C;
1176 /* 0x20 */ s32 unk_20;
1177 /* 0x24 */ s32 unk_24;
1178 /* 0x28 */ s32 unk_28;
1179 /* 0x2C */ s32 unk_2C;
1180 /* 0x30 */ s32 unk_30;
1181} ConfettiFXData; // size = 0x34
1182
1183typedef struct SnowfallFXData {
1184 /* 0x00 */ s32 unk_00;
1185 /* 0x04 */ s32 unk_04;
1186 /* 0x08 */ f32 unk_08;
1187 /* 0x0C */ f32 unk_0C;
1188 /* 0x10 */ f32 unk_10;
1189 /* 0x14 */ f32 unk_14;
1190 /* 0x18 */ f32 unk_18;
1191 /* 0x1C */ f32 unk_1C;
1192 /* 0x20 */ s32 timeLeft;
1193 /* 0x24 */ s32 lifeTime;
1194 /* 0x28 */ s32 unk_28;
1195 /* 0x2C */ s32 unk_2C;
1196 /* 0x30 */ s32 unk_30;
1197} SnowfallFXData; // size = 0x34
1198
1199typedef struct SpinFXData {
1200 /* 0x00 */ s32 type;
1202 /* 0x08 */ Vec3f pos;
1203 /* 0x14 */ f32 scale;
1204 /* 0x18 */ f32 initialScale;
1205 /* 0x1C */ s32 alpha;
1206 /* 0x20 */ s32 duration;
1207 /* 0x24 */ s32 timeLeft;
1208 /* 0x28 */ s32 lifetime;
1209 /* 0x2C */ Vec3f rot;
1210 /* 0x38 */ Vec3f rotVel;
1211 /* 0x44 */ Color_RGB8 color;
1212 /* 0x47 */ char unk_47;
1213} SpinFXData; // size = 0x48
1214
1215typedef struct GatherMagicFXData {
1216 /* 0x00 */ s32 unk_00;
1217 /* 0x04 */ s32 unk_04;
1218 /* 0x08 */ f32 unk_08;
1219 /* 0x0C */ f32 unk_0C;
1220 /* 0x10 */ f32 unk_10;
1221 /* 0x14 */ s32 unk_14;
1222 /* 0x18 */ s32 unk_18;
1223 /* 0x1C */ s32 unk_1C;
1224 /* 0x20 */ f32 unk_20;
1225 /* 0x24 */ f32 unk_24;
1226 /* 0x28 */ f32 unk_28;
1227 /* 0x2C */ f32 unk_2C;
1228 /* 0x30 */ s32 unk_30;
1229 /* 0x34 */ s32 unk_34;
1230 /* 0x38 */ s32 unk_38;
1231 /* 0x3C */ s32 unk_3C;
1232 /* 0x40 */ s32 unk_40;
1233 /* 0x44 */ s32 unk_44;
1235
1237 /* 0x00 */ s32 type;
1238 /* 0x04 */ s32 unk_04;
1239 /* 0x08 */ Vec3f pos;
1240 /* 0x14 */ s32 alpha;
1241 /* 0x18 */ s32 timeLeft;
1242 /* 0x1C */ s32 lifetime;
1243 /* 0x20 */ s32 unk_20;
1244 /* 0x24 */ b32 isVisible;
1245 /* 0x28 */ f32 scale;
1246 /* 0x2C */ char unk_2C[0x4];
1247 /* 0x30 */ Vec2f vel;
1248} AttackResultTextFXData; // size = 0x38
1249
1251 /* 0x00 */ s32 unk_00;
1252 /* 0x04 */ s32 unk_04;
1253 /* 0x08 */ f32 unk_08;
1254 /* 0x0C */ f32 unk_0C;
1255 /* 0x10 */ f32 unk_10;
1256 /* 0x14 */ s32 unk_14;
1257 /* 0x18 */ s32 unk_18;
1258 /* 0x1C */ f32 unk_1C;
1259 /* 0x20 */ s32 unk_20;
1260} SmallGoldSparkleFXData; // size = 0x24
1261
1268
1269typedef struct ShockOverlayFXData {
1270 /* 0x00 */ s32 type;
1271 /* 0x04 */ Vec3f pos;
1272 /* 0x10 */ s32 unk_10;
1273 /* 0x14 */ s32 unk_14;
1274 /* 0x18 */ s32 unk_18;
1275 /* 0x1C */ s32 timeLeft;
1276 /* 0x20 */ s32 lifetime;
1277 /* 0x24 */ f32 unk_24;
1278 /* 0x28 */ f32 scaleX;
1279 /* 0x2C */ f32 scaleY;
1280 /* 0x30 */ Color3i primCol;
1281 /* 0x3C */ Color3i envCol;
1282} ShockOverlayFXData; // size = 0x48
1283
1284typedef struct BalloonFXData {
1285 /* 0x00 */ s32 unk_00;
1286 /* 0x04 */ f32 unk_04;
1287 /* 0x08 */ f32 unk_08;
1288 /* 0x0C */ f32 unk_0C;
1289 /* 0x10 */ f32 unk_10;
1290 /* 0x14 */ f32 unk_14;
1291 /* 0x18 */ f32 unk_18;
1292 /* 0x1C */ s32 unk_1C;
1293 /* 0x20 */ s32 unk_20;
1294} BalloonFXData; // size = 0x24
1295
1296typedef struct FloatingRockFXData {
1297 /* 0x00 */ s32 type;
1298 /* 0x04 */ Vec3f pos;
1299 /* 0x10 */ f32 floorY;
1300 /* 0x14 */ Vec3f vel;
1301 /* 0x20 */ f32 fallAccel;
1302 /* 0x24 */ Vec3f rot;
1303 /* 0x30 */ Vec3f rotVel;
1304 /* 0x3C */ f32 scale;
1305 /* 0x40 */ s32 unk_40;
1306 /* 0x44 */ s32 alpha;
1307 /* 0x48 */ s32 timeLeft;
1308 /* 0x4C */ s32 lifetime;
1309} FloatingRockFXData; // size = 0x50
1310
1311typedef struct ChompDropFXData {
1312 /* 0x00 */ s32 unk_00;
1313 /* 0x04 */ f32 unk_04;
1314 /* 0x08 */ f32 unk_08;
1315 /* 0x0C */ f32 unk_0C;
1316 /* 0x10 */ f32 unk_10;
1317 /* 0x14 */ f32 unk_14;
1318 /* 0x18 */ f32 unk_18;
1319 /* 0x1C */ s32 unk_1C;
1320 /* 0x20 */ s32 unk_20;
1321 /* 0x24 */ f32 unk_24;
1322 /* 0x28 */ f32 unk_28;
1323 /* 0x2C */ s32 unk_2C;
1324 /* 0x30 */ s32 unk_30;
1325 /* 0x34 */ f32 unk_34;
1326 /* 0x38 */ s32 unk_38;
1327 /* 0x3C */ s32 unk_3C;
1328 /* 0x40 */ s32 unk_40;
1329 /* 0x44 */ s32 unk_44;
1330} ChompDropFXData; // size = 0x48
1331
1332typedef struct QuizmoStageFXData {
1333 /* 0x00 */ s32 unk_00;
1334 /* 0x04 */ s32 vanishTimer;
1335 /* 0x08 */ s32 lifetime;
1336 /* 0x0C */ Vec3f origin;
1337 /* 0x18 */ s32 microphoneRaiseAmt;
1338 /* 0x1C */ s32 rearWallRaiseAmt;
1339 /* 0x20 */ s32 leftWallRaiseAmt;
1340 /* 0x24 */ s32 rightWallRaiseAmt;
1341 /* 0x28 */ s32 podiumRaiseAmt;
1342 /* 0x2C */ s32 lightScrollAmt;
1343 /* 0x30 */ s32 lightScrollIncrement;
1344 /* 0x34 */ s32 lightScrollDelay;
1345 /* 0x38 */ s32 unkEffectMode;
1346 /* 0x3C */ s32 unk_3C; // stage hidden when == 0xFF
1347 /* 0x40 */ char unk_40[0x04];
1348} QuizmoStageFXData; // size 0x44
1349
1351 /* 0x00 */ char unk_00[4];
1352 /* 0x04 */ s32 unk_04;
1353 /* 0x08 */ f32 unk_08;
1354 /* 0x0C */ f32 unk_0C;
1355 /* 0x10 */ f32 unk_10;
1356 /* 0x14 */ s32 unk_14;
1357 /* 0x18 */ s32 unk_18;
1358 /* 0x1C */ s32 unk_1C;
1359 /* 0x20 */ f32 unk_20;
1360 /* 0x24 */ char unk_24[4];
1361 /* 0x28 */ f32 unk_28;
1362 /* 0x2C */ f32 unk_2C;
1363 /* 0x30 */ f32 unk_30;
1364} RadiatingEnergyOrbFXData; // size = 0x34
1365
1366#define UNK_ARRAY_SIZE_1 4
1367
1369 /* 0x00 */ s32 unk_00;
1370 /* 0x04 */ f32 unk_04;
1371 /* 0x08 */ f32 unk_08;
1372 /* 0x0C */ f32 unk_0C;
1373 /* 0x10 */ Vec3f pos;
1374 /* 0x1C */ f32 unk_1C[UNK_ARRAY_SIZE_1];
1375 /* 0x2C */ f32 unk_2C[UNK_ARRAY_SIZE_1];
1376 /* 0x3C */ f32 unk_3C[UNK_ARRAY_SIZE_1];
1377 /* 0x4C */ s32 unk_4C;
1378 /* 0x50 */ s32 unk_50;
1379 /* 0x54 */ s32 unk_54;
1380 /* 0x58 */ char unk_58[4];
1381 /* 0x5C */ s32 unk_5C;
1382 /* 0x60 */ s32 unk_60;
1383 /* 0x64 */ s32 unk_64;
1384} MotionBlurFlameFXData; // size = 0x68
1385
1386typedef struct EnergyOrbWaveFXData {
1387 /* 0x00 */ s32 unk_00;
1388 /* 0x04 */ Vec3f pos;
1389 /* 0x10 */ s32 unk_10;
1390 /* 0x14 */ s32 unk_14;
1391 /* 0x18 */ s32 unk_18;
1392 /* 0x1C */ s32 unk_1C;
1393 /* 0x20 */ s32 unk_20;
1394 /* 0x24 */ s32 unk_24;
1395 /* 0x28 */ s32 unk_28;
1396 /* 0x2C */ s32 unk_2C;
1397 /* 0x30 */ f32 scale;
1398 /* 0x34 */ f32 unk_34;
1399} EnergyOrbWaveFXData; // size = 0x38
1400
1402 /* 0x00 */ s32 unk_00;
1403 /* 0x04 */ s32 unk_04;
1404 /* 0x08 */ s32 unk_08;
1405 /* 0x0C */ f32 unk_0C;
1406 /* 0x10 */ f32 unk_10;
1407 /* 0x14 */ f32 unk_14;
1408 /* 0x18 */ s32 alpha;
1409 /* 0x1C */ f32 unk_1C;
1410 /* 0x20 */ f32 unk_20;
1411 /* 0x24 */ f32 unk_24;
1412 /* 0x28 */ f32 unk_28;
1413 /* 0x2C */ f32 unk_2C;
1414 /* 0x30 */ f32 unk_30;
1415 /* 0x34 */ f32 unk_34;
1416 /* 0x38 */ f32 unk_38;
1417} MerlinHouseStarsFXData; // size = 0x3C
1418
1419#define MAX_QUIZMO_AUDIENCE 10
1420
1421typedef struct QuizmoAudienceFXData {
1422 /* 0x00 */ s32 unk_00;
1423 /* 0x04 */ s32 timeLeft;
1424 /* 0x08 */ s32 lifeTime;
1425 /* 0x0C */ Vec3f pos;
1426 /* 0x18 */ s32 primColor;
1433} QuizmoAudienceFXData; // size = 0x10C
1434
1435typedef struct ButterfliesFXData {
1436 /* 0x00 */ s32 unk_00;
1437 /* 0x04 */ s32 unk_04;
1438 /* 0x08 */ s32 unk_08;
1439 /* 0x0C */ f32 unk_0C;
1440 /* 0x10 */ f32 unk_10;
1441 /* 0x14 */ f32 unk_14;
1442 /* 0x18 */ f32 unk_18;
1443 /* 0x1C */ f32 unk_1C;
1444 /* 0x20 */ f32 unk_20;
1445 /* 0x24 */ s32 unk_24;
1446 /* 0x28 */ f32 unk_28;
1447 /* 0x2C */ s32 unk_2C;
1448 /* 0x30 */ s32 unk_30;
1449 /* 0x34 */ f32 unk_34;
1450 /* 0x38 */ f32 unk_38;
1451 /* 0x3C */ f32 unk_3C;
1452 /* 0x40 */ f32 unk_40;
1453 /* 0x44 */ f32 unk_44;
1454} ButterfliesFXData; // size = 0x48
1455
1456typedef struct StatChangeFXData {
1457 /* 0x00 */ s32 unk_00;
1458 /* 0x04 */ Vec3f pos;
1459 /* 0x10 */ f32 scale;
1460 /* 0x14 */ s32 timeLeft;
1461 /* 0x18 */ s32 unk_18;
1462 /* 0x1C */ s32 arrowType;
1463 /* 0x20 */ s32 arrowValue;
1464 /* 0x24 */ s32 unk_24;
1465 /* 0x28 */ f32 scaleX;
1466 /* 0x2C */ f32 scaleY;
1467 /* 0x30 */ f32 unk_30;
1468 /* 0x34 */ f32 unk_34;
1469 /* 0x38 */ f32 unk_38;
1470 /* 0x3C */ f32 unk_3C;
1471 /* 0x40 */ f32 unk_40;
1473
1474typedef struct SnakingStaticFXData {
1475 /* 0x00 */ s32 type;
1476 /* 0x04 */ Vec3f pos;
1477 /* 0x10 */ s32 timeLeft;
1478 /* 0x14 */ s32 lifeTime;
1479 /* 0x18 */ s32 unk_18;
1480 /* 0x1C */ s32 unk_1C;
1481 /* 0x20 */ s32 unk_20;
1482 /* 0x24 */ s32 unk_24;
1483 /* 0x28 */ Color3i envCol;
1484 /* 0x34 */ f32 unk_34;
1485 /* 0x38 */ f32 scale;
1486 /* 0x3C */ f32 unk_3C;
1487 /* 0x40 */ s32 unk_40;
1488} SnakingStaticFXData; // size = 0x44
1489
1491 /* 0x00 */ s32 unk_00;
1492 /* 0x04 */ Vec3f pos;
1493 /* 0x10 */ s32 timeLeft;
1494 /* 0x14 */ s32 lifeTime;
1495 /* 0x18 */ s32 unk_18;
1496 /* 0x1C */ s32 unk_1C;
1497 /* 0x20 */ s32 unk_20;
1498 /* 0x24 */ s32 unk_24;
1499 /* 0x28 */ f32 unk_28;
1500 /* 0x2C */ f32 unk_2C;
1501 /* 0x30 */ s32 unk_30;
1502} ThunderboltRingFXData; // size = 0x34
1503
1504typedef struct SquirtFXData {
1505 /* 0x000 */ s32 unk_00;
1506 /* 0x004 */ f32 unk_04;
1507 /* 0x008 */ f32 unk_08;
1508 /* 0x00C */ f32 unk_0C;
1509 /* 0x010 */ f32 unk_10;
1510 /* 0x014 */ f32 unk_14;
1511 /* 0x018 */ f32 unk_18;
1512 /* 0x01C */ f32 unk_1C;
1513 /* 0x020 */ f32 unk_20;
1514 /* 0x024 */ f32 unk_24;
1515 /* 0x028 */ s32 unk_28;
1516 /* 0x02C */ s32 unk_2C;
1517 /* 0x030 */ s32 unk_30;
1518 /* 0x034 */ s32 unk_34;
1519 /* 0x038 */ s32 unk_38;
1520 /* 0x03C */ s32 unk_3C;
1521 /* 0x040 */ s32 unk_40;
1522 /* 0x044 */ s32 unk_44;
1523 /* 0x048 */ s32 unk_48;
1524 /* 0x04C */ s32 unk_4C;
1525 /* 0x050 */ f32 unk_50;
1526 /* 0x054 */ s32 unk_54;
1527 /* 0x058 */ f32 unk_58[12];
1528 /* 0x088 */ f32 unk_88[12];
1529 /* 0x0B8 */ s32 unk_B8[12];
1530 /* 0x0E8 */ f32 unk_E8[12];
1531 /* 0x118 */ f32 unk_118[12];
1532 /* 0x148 */ f32 unk_148[12];
1533 /* 0x178 */ s32 unk_178[12];
1534 /* 0x1A8 */ s32 unk_1A8[12];
1535 /* 0x1D8 */ u8 unk_1D8[12];
1536} SquirtFXData; // size = 0x1E4
1537
1542
1543#define NUM_WATER_BLOCK_COMPONENTS 4
1544
1545typedef struct WaterBlockFXData {
1546 /* 0x00 */ s32 type;
1547 /* 0x04 */ Vec3f pos;
1548 /* 0x10 */ s32 timeLeft;
1549 /* 0x14 */ s32 lifetime;
1550 /* 0x18 */ Color4i color;
1551 /* 0x28 */ s32 alpha;
1552 /* 0x2C */ f32 unk_2C;
1553 /* 0x30 */ f32 unk_30;
1554 /* 0x34 */ f32 unk_34;
1561} WaterBlockFXData; // size = 0x98
1562
1563typedef struct WaterfallFXData {
1564 /* 0x00 */ s32 unk_00;
1565 /* 0x04 */ f32 unk_04;
1566 /* 0x08 */ f32 unk_08;
1567 /* 0x0C */ f32 unk_0C;
1568 /* 0x10 */ s32 unk_10;
1569 /* 0x14 */ s32 unk_14;
1570 /* 0x18 */ s32 unk_18;
1571 /* 0x1C */ s32 unk_1C;
1572 /* 0x20 */ s32 unk_20;
1573 /* 0x24 */ s32 unk_24;
1574 /* 0x28 */ f32 unk_28;
1575 /* 0x2C */ f32 unk_2C[12];
1576 /* 0x5C */ f32 unk_5C[12];
1577} WaterfallFXData; // size = 0x8C
1578
1579typedef struct WaterFountainFXData {
1580 /* 0x00 */ s32 unk_00;
1581 /* 0x04 */ Vec3f pos;
1582 /* 0x10 */ s32 timeLeft;
1583 /* 0x14 */ s32 lifeTime;
1584 /* 0x18 */ s32 unk_18;
1585 /* 0x1C */ s32 unk_1C;
1586 /* 0x20 */ s32 unk_20;
1587 /* 0x24 */ s32 unk_24;
1588 /* 0x28 */ s32 unk_28;
1589 /* 0x2C */ s32 unk_2C;
1590 /* 0x30 */ s32 unk_30;
1591 /* 0x34 */ f32 unk_34;
1592 /* 0x38 */ f32 unk_38;
1593 /* 0x3C */ f32 unk_3C;
1594 /* 0x40 */ f32 unk_40;
1595} WaterFountainFXData; // size = 0x44
1596
1597typedef struct UnderwaterFXData {
1598 /* 0x000 */ s32 unk_00;
1599 /* 0x004 */ f32 unk_04;
1600 /* 0x008 */ f32 unk_08;
1601 /* 0x00C */ f32 unk_0C;
1602 /* 0x010 */ s32 timeLeft;
1603 /* 0x014 */ s32 lifeTime;
1604 /* 0x018 */ f32 unk_18;
1606 /* 0x020 */ Color_RGB8 unk_20;
1607 /* 0x023 */ s8 unk_23[19][13];
1608 /* 0x11A */ s16 unk_11A[19][13];
1609} UnderwaterFXData; // size = 0x308
1610
1611typedef struct LightningBoltFXData {
1612 /* 0x000 */ s32 type;
1613 /* 0x004 */ Vec3f tipPos;
1614 /* 0x010 */ Vec3f startPos;
1615 /* 0x01C */ Vec3f endPos;
1616 /* 0x028 */ s32 timeLeft;
1617 /* 0x02C */ s32 lifetime;
1618 /* 0x030 */ Color4i outerColor;
1619 /* 0x040 */ Color3i innerColor;
1620 /* 0x04C */ f32 widthScale;
1621 /* 0x050 */ f32 boltVertexPosX[12];
1622 /* 0x080 */ f32 boltVertexPosY[12];
1623 /* 0x0B0 */ f32 boltVertexPosZ[12];
1624 /* 0x0E0 */ f32 edgeLength[12];
1625 /* 0x110 */ s32 unk_110;
1626 /* 0x114 */ f32 unk_114;
1627} LightningBoltFXData; // size = 0x118
1628
1629typedef struct WaterSplashFXData {
1630 /* 0x00 */ s32 unk_00;
1631 /* 0x04 */ Vec3f unk_04;
1632 /* 0x10 */ Vec3f unk_10;
1633 /* 0x1C */ s32 unk_1C;
1634 /* 0x20 */ s32 unk_20;
1635 /* 0x24 */ s32 unk_24;
1636 /* 0x28 */ s32 unk_28;
1637 /* 0x2C */ s32 unk_2C;
1638 /* 0x30 */ s32 unk_30;
1639 /* 0x34 */ f32 unk_34;
1640} WaterSplashFXData; // size = 0x38
1641
1642typedef struct SnowmanDollFXData {
1643 /* 0x00 */ s32 unk_00;
1644 /* 0x04 */ f32 unk_04;
1645 /* 0x08 */ f32 unk_08;
1646 /* 0x0C */ f32 unk_0C;
1647 /* 0x10 */ s32 unk_10;
1648 /* 0x14 */ s32 unk_14;
1649 /* 0x18 */ s32 unk_18;
1650 /* 0x1C */ s32 unk_1C;
1651 /* 0x20 */ s32 unk_20;
1652 /* 0x24 */ s32 unk_24;
1653 /* 0x28 */ f32 unk_28;
1654 /* 0x2C */ f32 unk_2C;
1655 /* 0x30 */ f32 unk_30;
1656 /* 0x34 */ f32 unk_34;
1657 /* 0x38 */ f32 unk_38;
1658 /* 0x3C */ f32 unk_3C;
1659 /* 0x40 */ f32 unk_40;
1660 /* 0x44 */ f32 unk_44;
1661 /* 0x48 */ f32 unk_48;
1662 /* 0x4C */ f32 unk_4C;
1663 /* 0x50 */ f32 unk_50;
1664 /* 0x54 */ s32 unk_54;
1665 /* 0x58 */ s32 unk_58;
1666 /* 0x5C */ s32 unk_5C;
1667} SnowmanDollFXData; // size = 0x60
1668
1669typedef struct FrightJarFXData {
1670 /* 0x00 */ s32 unk_00;
1671 /* 0x04 */ f32 unk_04;
1672 /* 0x08 */ f32 unk_08;
1673 /* 0x0C */ f32 unk_0C;
1674 /* 0x10 */ s32 unk_10;
1675 /* 0x14 */ s32 unk_14;
1676 /* 0x18 */ s32 unk_18;
1677 /* 0x1C */ s32 unk_1C;
1678 /* 0x20 */ s32 unk_20;
1679 /* 0x24 */ s32 unk_24;
1680 /* 0x28 */ f32 unk_28;
1681} FrightJarFXData; // size = 0x2C
1682
1683typedef struct StopWatchFXData {
1684 /* 0x000 */ s32 unk_00;
1685 /* 0x004 */ f32 unk_04;
1686 /* 0x008 */ f32 unk_08;
1687 /* 0x00C */ f32 unk_0C;
1688 /* 0x010 */ s32 unk_10;
1689 /* 0x014 */ s32 unk_14;
1690 /* 0x018 */ s32 unk_18;
1691 /* 0x01C */ s32 unk_1C;
1692 /* 0x020 */ s32 unk_20;
1693 /* 0x024 */ s32 unk_24;
1694 /* 0x028 */ f32 unk_28;
1695 /* 0x02C */ s32 unk_2C;
1696 /* 0x030 */ f32 unk_30;
1697 /* 0x034 */ f32 unk_34[10];
1698 /* 0x05C */ f32 unk_5C[10];
1699 /* 0x084 */ f32 unk_84[10];
1700 /* 0x0AC */ f32 unk_AC[10];
1701 /* 0x0D4 */ f32 unk_D4[10];
1702 /* 0x0FC */ f32 unk_FC[10];
1703 /* 0x124 */ s32 unk_124[10];
1704 /* 0x14C */ s32 unk_14C[10];
1705} StopWatchFXData; // size = 0x174
1706
1707typedef struct Effect63FXData {
1708 /* 0x00 */ s32 unk_00;
1709 /* 0x04 */ f32 unk_04;
1710 /* 0x08 */ f32 unk_08;
1711 /* 0x0C */ f32 unk_0C;
1712 /* 0x10 */ f32 unk_10;
1713 /* 0x14 */ f32 unk_14;
1714 /* 0x18 */ f32 unk_18;
1715 /* 0x1C */ s32 unk_1C;
1716 /* 0x20 */ s32 unk_20;
1717 /* 0x24 */ s32 unk_24;
1718 /* 0x28 */ s32 unk_28;
1719 /* 0x2C */ s32 unk_2C;
1720 /* 0x30 */ s32 unk_30;
1721 /* 0x34 */ s32 unk_34;
1722 /* 0x38 */ s32 unk_38;
1723 /* 0x3C */ s32 unk_3C;
1724 /* 0x40 */ s32 unk_40;
1725 /* 0x44 */ s32 unk_44;
1726 /* 0x48 */ f32 unk_48;
1727 /* 0x4C */ f32 unk_4C;
1728 /* 0x50 */ f32 unk_50;
1729 /* 0x54 */ f32 unk_54;
1730 /* 0x58 */ f32 unk_58;
1731 /* 0x5C */ char unk_5C[4];
1732 /* 0x60 */ f32 unk_60;
1733 /* 0x64 */ f32 unk_64;
1734 /* 0x68 */ f32 unk_68;
1735 /* 0x6C */ f32 unk_6C;
1736 /* 0x70 */ f32 unk_70;
1737 /* 0x74 */ f32 unk_74;
1738 /* 0x78 */ f32 unk_78;
1739} Effect63FXData; // size = 0x7C
1740
1741typedef struct ThrowSpinyFXData {
1742 /* 0x00 */ s32 unk_00;
1743 /* 0x04 */ Vec3f pos;
1744 /* 0x10 */ f32 unk_10;
1745 /* 0x14 */ f32 unk_14;
1746 /* 0x18 */ f32 unk_18;
1747 /* 0x1C */ f32 unk_1C;
1748 /* 0x20 */ f32 unk_20;
1749 /* 0x24 */ f32 unk_24;
1750 /* 0x28 */ s32 life;
1751 /* 0x2C */ s32 lifeDuration;
1752 /* 0x30 */ s32 unk_30;
1753 /* 0x34 */ s32 unk_34;
1754 /* 0x38 */ s32 unk_38;
1755 /* 0x3C */ s32 rgba;
1756 /* 0x40 */ f32 unk_40;
1757 /* 0x44 */ f32 unk_44;
1758 /* 0x48 */ f32 gravity;
1759 /* 0x4C */ f32 unk_4C;
1760 /* 0x50 */ f32 yaw;
1761 /* 0x54 */ f32 rotSpeed;
1762 /* 0x58 */ f32 xScale;
1763 /* 0x5C */ f32 yScale;
1764 /* 0x60 */ u32 state;
1765 /* 0x64 */ s32 unk_64;
1766 /* 0x68 */ s32 timeUntilFall; //how long until spiny falls to ground?
1767} ThrowSpinyFXData; //sizeof 0x6C
1768
1769typedef struct Effect65FXData {
1770 /* 0x000 */ s32 variation;
1771 /* 0x004 */ f32 unk_04;
1772 /* 0x008 */ f32 unk_08;
1773 /* 0x00C */ f32 unk_0C;
1774 /* 0x010 */ s32 timeLeft;
1775 /* 0x014 */ s32 lifeTime;
1776 /* 0x018 */ s32 primR;
1777 /* 0x01C */ s32 primG;
1778 /* 0x020 */ s32 primB;
1779 /* 0x024 */ s32 alpha;
1780 /* 0x028 */ s32 envR;
1781 /* 0x02C */ s32 envG;
1782 /* 0x030 */ s32 envB;
1783 /* 0x034 */ f32 scale;
1784 /* 0x038 */ Vec3f pos;
1785 /* 0x044 */ f32 pathJitterX;
1786 /* 0x048 */ f32 pathJitterY;
1787 /* 0x04C */ f32 pathJitterZ;
1788 /* 0x050 */ f32 pathX[30];
1789 /* 0x0C8 */ f32 pathY[30];
1790 /* 0x140 */ f32 pathZ[30];
1791 /* 0x1B8 */ s32 pathTimestamp[30];
1792 /* 0x230 */ s32 pathPointEnabled[30]; // a bool
1793 /* 0x2A8 */ s32 lastPointIndex;
1794 /* 0x2AC */ f32 pathLength[30];
1795} Effect65FXData; // size = 0x324
1796
1797#define TUBBA_MINI_HEART_COUNT 25
1798
1803
1805 /* 0x000 */ s32 type;
1806 /* 0x004 */ f32 centerX;
1807 /* 0x008 */ f32 centerY;
1808 /* 0x00C */ f32 centerZ;
1809 /* 0x010 */ s32 timeLeft;
1810 /* 0x014 */ s32 lifetime;
1811 /* 0x018 */ s32 primR;
1812 /* 0x01C */ s32 primG;
1813 /* 0x020 */ s32 primB;
1814 /* 0x024 */ s32 primA;
1815 /* 0x028 */ f32 overallScale;
1835} TubbaHeartAttackFXData; // size = 0x798
1836
1837#define MAX_WHIRLWIND_SEGMENTS 8
1838
1839typedef struct WhirlwindFXData {
1840 /* 0x000 */ s32 unk_00;
1841 /* 0x004 */ Vec3f pos;
1842 /* 0x010 */ s32 unk_10;
1843 /* 0x014 */ s32 unk_14;
1844 /* 0x018 */ s32 primR;
1845 /* 0x01C */ s32 primG;
1846 /* 0x020 */ s32 primB;
1847 /* 0x024 */ s32 primAlpha;
1848 /* 0x028 */ s32 envR;
1849 /* 0x02C */ s32 envG;
1850 /* 0x030 */ s32 envB;
1851 /* 0x034 */ f32 unk_34;
1860 /* 0x138 */ f32 unk_138;
1861 /* 0x13C */ f32 unk_13C;
1862 /* 0x140 */ f32 unk_140;
1863} WhirlwindFXData; // size = 0x144
1864
1865// Likely to be the same as GreenImpactFXData and ShockwaveFXData
1866typedef struct RedImpactFXData {
1867 /* 0x00 */ u16 unk_00;
1868 /* 0x02 */ char unk_02[2]; // likely padding
1869 /* 0x04 */ f32 unk_04;
1870 /* 0x08 */ f32 unk_08;
1871 /* 0x0C */ f32 unk_0C;
1872 /* 0x10 */ f32 unk_10;
1873 /* 0x14 */ f32 unk_14;
1874 /* 0x18 */ s32 unk_18;
1875 /* 0x1C */ f32 unk_1C;
1876 /* 0x20 */ f32 unk_20;
1877 /* 0x24 */ f32 unk_24;
1878 /* 0x28 */ s32 unk_28;
1879 /* 0x2C */ s32 unk_2C;
1880 /* 0x30 */ f32 unk_30;
1881 /* 0x34 */ f32 unk_34;
1882 /* 0x38 */ s32 unk_38;
1883 /* 0x3C */ f32 unk_3C;
1884 /* 0x40 */ f32 unk_40;
1885 /* 0x44 */ f32 unk_44;
1886 /* 0x48 */ f32 unk_48;
1887 /* 0x4C */ s32 unk_4C;
1888 /* 0x50 */ Color_RGB8 unk_50;
1889 /* 0x53 */ Color_RGB8 unk_53;
1890 /* 0x56 */ char unk_56[2]; // likely padding
1891} RedImpactFXData; // size = 0x58
1892
1894 /* 0x00 */ s32 unk_00;
1895 /* 0x04 */ f32 unk_04;
1896 /* 0x08 */ f32 unk_08;
1897 /* 0x0C */ f32 unk_0C;
1898 /* 0x10 */ s32 unk_10;
1899 /* 0x14 */ s32 unk_14;
1900 /* 0x18 */ s32 unk_18;
1901 /* 0x1C */ s32 unk_1C;
1902 /* 0x20 */ s32 unk_20;
1903 /* 0x24 */ s32 unk_24;
1904 /* 0x28 */ s32 unk_28;
1905 /* 0x2C */ s32 unk_2C;
1906 /* 0x30 */ s32 unk_30;
1907 /* 0x34 */ f32 unk_34;
1908 /* 0x38 */ f32 unk_38;
1909} FloatingCloudPuffFXData; // size = 0x3C
1910
1911typedef struct EnergyInOutFXData {
1912 /* 0x00 */ s32 unk_00;
1913 /* 0x04 */ Vec3f pos;
1914 /* 0x10 */ s32 unk_10;
1915 /* 0x14 */ s32 unk_14;
1916 /* 0x18 */ s32 unk_18;
1917 /* 0x1C */ s32 unk_1C;
1918 /* 0x20 */ s32 unk_20;
1919 /* 0x24 */ s32 unk_24;
1920 /* 0x28 */ s32 unk_28;
1921 /* 0x2C */ s32 unk_2C;
1922 /* 0x30 */ s32 unk_30;
1923 /* 0x34 */ f32 scale;
1924 /* 0x38 */ f32 unk_38;
1925 /* 0x3C */ f32 unk_3C;
1926 /* 0x40 */ f32 unk_40;
1927 /* 0x44 */ f32 unk_44;
1928} EnergyInOutFXData; // size = 0x48
1929
1930typedef struct Effect6BFXData {
1931 /* 0x00 */ s32 unk_00;
1932 /* 0x04 */ Vec3f pos;
1933 /* 0x10 */ char unk_10[12];
1934 /* 0x1C */ s32 unk_1C;
1935 /* 0x20 */ s32 unk_20;
1936 /* 0x24 */ char unk_24[8];
1937 /* 0x2C */ s32 unk_2C;
1938 /* 0x30 */ s32 unk_30;
1939 /* 0x34 */ f32 scale;
1940 /* 0x38 */ f32 unk_38;
1941 /* 0x3C */ s32 unk_3C;
1942 /* 0x40 */ char unk_40[0x4];
1943} Effect6BFXData; // size = 0x44
1944
1945typedef struct TattleWindowFXData {
1946 /* 0x00 */ s32 type;
1947 /* 0x04 */ Vec3f pos;
1948 /* 0x10 */ s32 timeLeft;
1949 /* 0x14 */ s32 unk_14;
1950 /* 0x18 */ f32 unk_18;
1951 /* 0x1C */ f32 scale;
1952 /* 0x20 */ Vec3f rot;
1953 /* 0x2C */ Vec2f offset;
1954 /* 0x34 */ Vec2bu closeAmt;
1955} TattleWindowFXData; // size = 0x38
1956
1957typedef struct ShinyFlareFXData {
1958 /* 0x00 */ s32 unk_00;
1959 /* 0x04 */ Vec3f pos;
1960 /* 0x10 */ s32 timeLeft;
1961 /* 0x14 */ s32 lifeTime;
1962 /* 0x18 */ s32 unk_18;
1963 /* 0x1C */ s32 unk_1C;
1964 /* 0x20 */ s32 unk_20;
1965 /* 0x24 */ s32 unk_24;
1966 /* 0x28 */ f32 unk_28;
1967 /* 0x2C */ f32 unk_2C;
1968} ShinyFlareFXData; // size = 0x30
1969
1970typedef struct HuffPuffBreathFXData {
1971 /* 0x00 */ s32 type;
1972 /* 0x04 */ Vec3f pos;
1973 /* 0x10 */ s32 timeLeft;
1974 /* 0x14 */ s32 lifeTime;
1975 /* 0x18 */ Color4i primCol;
1976 /* 0x28 */ Color4i envCol;
1977 /* 0x38 */ f32 texOffsetX;
1978 /* 0x3C */ f32 speedX;
1979 /* 0x40 */ f32 texOffsetY;
1980 /* 0x44 */ f32 speedY;
1981 /* 0x48 */ f32 angle;
1982 /* 0x4C */ f32 scale;
1983} HuffPuffBreathFXData; // size = 0x50
1984
1985typedef struct ColdBreathFXData {
1986 /* 0x00 */ s32 type;
1987 /* 0x04 */ Vec3f pos;
1988 /* 0x10 */ s32 timeLeft;
1989 /* 0x14 */ s32 lifetime;
1990 /* 0x18 */ Color4i primCol;
1991 /* 0x28 */ Color4i envCol;
1992 /* 0x38 */ f32 unk_38;
1993 /* 0x3C */ f32 unk_3C;
1994 /* 0x40 */ f32 scale;
1995} ColdBreathFXData; // size = 0x44
1996
1997typedef struct EmbersFXData {
1998 /* 0x00 */ s32 unk_00;
1999 /* 0x04 */ f32 unk_04;
2000 /* 0x08 */ f32 unk_08;
2001 /* 0x0C */ f32 unk_0C;
2002 /* 0x10 */ f32 unk_10;
2003 /* 0x14 */ f32 unk_14;
2004 /* 0x18 */ s32 timeLeft;
2005 /* 0x1C */ s32 lifetime;
2006 /* 0x20 */ s32 unk_20;
2007 /* 0x24 */ s32 unk_24;
2008 /* 0x28 */ s32 unk_28;
2009 /* 0x2C */ s32 unk_2C;
2010 /* 0x30 */ s32 unk_30;
2011 /* 0x34 */ s32 unk_34;
2012 /* 0x38 */ s32 unk_38;
2013 /* 0x3C */ s32 unk_3C;
2014 /* 0x40 */ f32 unk_40;
2015 /* 0x44 */ f32 unk_44;
2016 /* 0x48 */ f32 unk_48;
2017 /* 0x4C */ f32 unk_4C;
2018 /* 0x50 */ f32 unk_50;
2019 /* 0x54 */ f32 unk_54;
2020 /* 0x58 */ f32 unk_58;
2021 /* 0x5C */ f32 unk_5C;
2022 /* 0x60 */ f32 unk_60;
2023 /* 0x64 */ s32 unk_64;
2024 /* 0x68 */ f32 unk_68;
2025 /* 0x6C */ f32 unk_6C;
2026} EmbersFXData; // size = 0x70
2027
2028typedef struct HieroglyphsFXData {
2029 /* 0x00 */ s32 unk_00;
2030 /* 0x04 */ Vec3f pos;
2031 /* 0x10 */ s32 timeLeft;
2032 /* 0x14 */ s32 lifeTime;
2033 /* 0x18 */ s32 unk_18;
2034 /* 0x1C */ s32 unk_1C;
2035 /* 0x20 */ s32 unk_20;
2036 /* 0x24 */ s32 unk_24;
2037 /* 0x28 */ s32 unk_28;
2038 /* 0x2C */ s32 unk_2C;
2039 /* 0x30 */ s32 unk_30;
2040 /* 0x34 */ s32 unk_34;
2041 /* 0x38 */ f32 unk_38;
2042} HieroglyphsFXData; // size = 0x3C
2043
2044typedef struct MiscParticlesFXData {
2045 /* 0x00 */ s32 variation;
2046 /* 0x04 */ Vec3f pos;
2047 /* 0x10 */ f32 scaleX;
2048 /* 0x14 */ f32 scaleY;
2049 /* 0x18 */ f32 unk_18;
2050 /* 0x1C */ f32 unk_1C;
2051 /* 0x20 */ char unk_20[4];
2052 /* 0x24 */ f32 unk_24;
2053 /* 0x28 */ f32 unk_28;
2054 /* 0x2C */ s32 animTime;
2055 /* 0x30 */ s32 timeLeft;
2056 /* 0x34 */ s32 lifetime;
2058 /* 0x48 */ Color4i glowColor;
2059 /* 0x58 */ f32 scale;
2060 /* 0x5C */ f32 unk_5C;
2061 /* 0x60 */ f32 unk_60;
2062} MiscParticlesFXData; // size = 0x64
2063
2064typedef struct StaticStatusFXData {
2065 /* 0x00 */ s32 type;
2066 /* 0x04 */ Vec3f pos;
2067 /* 0x10 */ f32 unk_10;
2068 /* 0x14 */ f32 unk_14;
2069 /* 0x18 */ f32 unk_18;
2070 /* 0x1C */ f32 unk_1C;
2071 /* 0x20 */ s32 frame; // not visible when negative
2072 /* 0x24 */ f32 rot;
2073 /* 0x28 */ s32 timeLeft;
2074 /* 0x2C */ s32 lifetime;
2075 /* 0x30 */ s32 alpha;
2076 /* 0x34 */ f32 scale;
2077} StaticStatusFXData; // size = 0x38
2078
2079typedef struct MovingCloudFXData {
2080 /* 0x00 */ s32 unk_00;
2081 /* 0x04 */ f32 unk_04;
2082 /* 0x08 */ f32 unk_08;
2083 /* 0x0C */ f32 unk_0C;
2084 /* 0x10 */ f32 unk_10;
2085 /* 0x14 */ f32 unk_14;
2086 /* 0x18 */ f32 unk_18;
2087 /* 0x1C */ s32 unk_1C;
2088 /* 0x20 */ s32 unk_20;
2089 /* 0x24 */ s32 unk_24;
2090 /* 0x28 */ s32 unk_28;
2091 /* 0x2C */ s32 unk_2C;
2092 /* 0x30 */ s32 unk_30;
2093 /* 0x34 */ s32 unk_34;
2094 /* 0x38 */ s32 unk_38;
2095 /* 0x3C */ s32 unk_3C;
2096 /* 0x40 */ s32 unk_40;
2097 /* 0x44 */ f32 unk_44;
2098} MovingCloudFXData; // size = 0x48
2099
2100typedef struct Effect75FXData {
2101 /* 0x00 */ s32 type;
2102 /* 0x04 */ Vec3f pos;
2103 /* 0x10 */ s32 unk_10;
2104 /* 0x14 */ s32 unk_14;
2105 /* 0x18 */ Color3i primCol;
2106 /* 0x24 */ s32 unk_24;
2107 /* 0x28 */ Color3i envCol;
2108 /* 0x34 */ s32 unk_34;
2109 /* 0x38 */ s32 masterAlpha;
2110 /* 0x3C */ f32 scale;
2111 /* 0x40 */ f32 unk_40;
2112 /* 0x44 */ f32 unk_44;
2113 /* 0x48 */ f32 unk_48;
2114 /* 0x4C */ f32 unk_4C;
2115 /* 0x50 */ f32 unk_50;
2116 /* 0x54 */ f32 unk_54;
2117 /* 0x58 */ f32 unk_58;
2118 /* 0x5C */ f32 unk_5C;
2119 /* 0x60 */ f32 unk_60;
2120 /* 0x64 */ f32 unk_64;
2121 /* 0x68 */ f32 unk_68;
2122 /* 0x6C */ f32 unk_6C;
2123 /* 0x70 */ f32 unk_70;
2124 /* 0x74 */ f32 unk_74;
2125 /* 0x78 */ f32 unk_78;
2126 /* 0x7C */ f32 unk_7C;
2127} Effect75FXData; // size = 0x80
2128
2129#define ROCKET_BUF_SIZE 4
2130
2131typedef struct FireworkRocketFXData {
2132 /* 0x00 */ s32 variation;
2133 /* 0x04 */ Vec3f pos;
2134 /* 0x10 */ Vec3f vel;
2135 /* 0x1C */ s32 timeLeft;
2136 /* 0x20 */ s32 lifeTime;
2137 /* 0x24 */ s32 r;
2138 /* 0x28 */ s32 g;
2139 /* 0x2C */ s32 b;
2140 /* 0x30 */ s32 minBlurAlpha;
2141 /* 0x34 */ s32 unk_34;
2142 /* 0x38 */ s32 unk_38;
2143 /* 0x3C */ s32 unk_3C;
2144 /* 0x40 */ s32 unk_40;
2145 /* 0x44 */ f32 radius;
2146 /* 0x48 */ f32 maxRadius;
2147 /* 0x4C */ s32 isExploded;
2148 /* 0x50 */ f32 rocketX[ROCKET_BUF_SIZE];
2149 /* 0x60 */ f32 rocketY[ROCKET_BUF_SIZE];
2150 /* 0x70 */ f32 rocketZ[ROCKET_BUF_SIZE];
2154} FireworkRocketFXData; // size = 0xB0
2155
2156typedef struct PeachStarBeamSpirit {
2157 /* 0x00 */ s32 flags;
2158 /* 0x04 */ Vec3f pos;
2159 /* 0x10 */ Vec3f lockedPos;
2160} PeachStarBeamSpirit; // size = 0x1C
2161
2162typedef struct PeachStarBeamFXData {
2163 /* 0x00 */ s32 type;
2164 /* 0x04 */ Vec3f pos;
2165 /* 0x10 */ s32 timeLeft;
2166 /* 0x14 */ s32 lifetime;
2167 /* 0x18 */ s32 primR;
2168 /* 0x1C */ s32 primG;
2169 /* 0x20 */ s32 primB;
2170 /* 0x24 */ s32 beamAlpha;
2171 /* 0x28 */ s32 envR;
2172 /* 0x2C */ s32 envG;
2173 /* 0x30 */ s32 envB;
2174 /* 0x34 */ s32 envA;
2175 /* 0x38 */ f32 beamScale;
2176 /* 0x3C */ s32 unk_3C;
2177 /* 0x40 */ f32 rotSpeed;
2178 /* 0x44 */ f32 rotAngle;
2179 /* 0x48 */ f32 circleRadius;
2181 /* 0x58 */ f32 twinkYOffset;
2183} PeachStarBeamFXData; // size = 0x13C
2184
2185typedef struct ChapterChangeFXData {
2186 /* 0x00 */ s32 unk_00;
2187 /* 0x04 */ Vec2f chapterPos;
2188 /* 0x0C */ f32 unk_0C;
2189 /* 0x10 */ Vec2f endOfPos;
2190 /* 0x18 */ s32 timeLeft;
2191 /* 0x1C */ s32 lifetime;
2192 /* 0x20 */ s32 unk_20;
2193 /* 0x24 */ s32 unk_24;
2194 /* 0x28 */ s32 unk_28;
2195 /* 0x2C */ s32 unk_2C;
2196 /* 0x30 */ s32 unk_30;
2197 /* 0x34 */ s32 unk_34;
2198 /* 0x38 */ s32 unk_38;
2199 /* 0x3C */ s32 unk_3C;
2200 /* 0x40 */ s32 unk_40;
2201 /* 0x44 */ s32 unk_44;
2202 /* 0x48 */ s32 unk_48;
2203 /* 0x4C */ s32 unk_4C;
2204 /* 0x50 */ f32 unk_50;
2205 /* 0x54 */ s32 unk_54;
2206} ChapterChangeFXData; // size = 0x58
2207
2208typedef struct IceShardFXData {
2209 /* 0x00 */ s32 type;
2210 /* 0x04 */ Vec3f pos;
2211 /* 0x10 */ s32 timeLeft;
2212 /* 0x14 */ s32 lifetime;
2213 /* 0x18 */ Color4i primCol;
2214 /* 0x28 */ Color4i envCol;
2215 /* 0x38 */ f32 scale;
2216 /* 0x3C */ f32 rot;
2217 /* 0x40 */ f32 angularVel;
2218 /* 0x44 */ f32 animFrame;
2219 /* 0x48 */ f32 animRate;
2220 /* 0x4C */ Vec3f vel;
2221 /* 0x58 */ f32 gravAccel;
2222} IceShardFXData; // size = 0x5C
2223
2224typedef struct SpiritCardFXData {
2225 /* 0x00 */ s32 unk_00;
2226 /* 0x04 */ Vec3f pos;
2227 /* 0x10 */ s32 unk_10;
2228 /* 0x14 */ s32 unk_14;
2229 /* 0x18 */ f32 unk_18;
2230 /* 0x1C */ struct EffectInstance* child;
2231 /* 0x20 */ f32 unk_20;
2232 /* 0x24 */ f32 yaw;
2233 /* 0x28 */ char unk_28[0xC];
2234 /* 0x34 */ u8 chapter;
2235 /* 0x35 */ char unk_35[3];
2236} SpiritCardFXData; // size = 0x38
2237
2238#define MAX_LIL_OINKS 11
2239
2244
2257
2266
2267typedef struct LilOinkFXData {
2268 /* 0x000 */ s32 timeLeft;
2269 /* 0x004 */ s32 lifetime;
2270 /* 0x008 */ s32 flags[MAX_LIL_OINKS];
2271 /* 0x034 */ f32 x[MAX_LIL_OINKS];
2272 /* 0x060 */ f32 y[MAX_LIL_OINKS];
2273 /* 0x08C */ f32 z[MAX_LIL_OINKS];
2274 /* 0x0B8 */ f32 rot[MAX_LIL_OINKS];
2275 /* 0x0E4 */ u8 type[MAX_LIL_OINKS];
2276 /* 0x0EF */ s8 nextAnim[MAX_LIL_OINKS];
2277 /* 0x0FA */ u8 anim[MAX_LIL_OINKS];
2278 /* 0x105 */ u8 gfxFrame[MAX_LIL_OINKS];
2279 /* 0x110 */ f32 jumpOffset[MAX_LIL_OINKS];
2280 /* 0x13C */ s8 animTime[MAX_LIL_OINKS];
2281} LilOinkFXData; // size = 0x148
2282
2284 /* 0x00 */ s32 unk_00;
2285 /* 0x04 */ Vec3f pos;
2286 /* 0x10 */ s32 unk_10;
2287 /* 0x14 */ s32 unk_14;
2288 /* 0x18 */ f32 unk_18;
2289 /* 0x1C */ f32 unk_1C;
2290 /* 0x20 */ f32 unk_20;
2291 /* 0x24 */ u8 primAlpha;
2292 /* 0x25 */ s8 unk_25;
2293 /* 0x26 */ Color_RGB8 env;
2294 /* 0x29 */ u8 state;
2295 /* 0x2A */ char unk_2A[2];
2296 /* 0x2C */ f32 unk_2C;
2297} SomethingRotatingFXData; // size = 0x30
2298
2299typedef struct BreakingJunkFXData {
2300 /* 0x00 */ s32 unk_00;
2301 /* 0x04 */ Vec3f pos;
2302 /* 0x10 */ Vec3f vel;
2303 /* 0x1C */ s32 timeLeft;
2304 /* 0x20 */ s32 lifeTime;
2305 /* 0x24 */ f32 scale;
2306 /* 0x28 */ f32 rot;
2307 /* 0x2C */ s16 primR;
2308 /* 0x2E */ s16 primG;
2309 /* 0x30 */ s16 primB;
2310 /* 0x32 */ s16 primA;
2311 /* 0x34 */ s16 envR;
2312 /* 0x36 */ s16 envG;
2313 /* 0x38 */ s16 envB;
2314 /* 0x3A */ s16 envA;
2315} BreakingJunkFXData; // size = unknown
2316
2317enum {
2321};
2322
2323typedef struct BuffData {
2324 /* 0x00 */ s16 alpha;
2325 /* 0x02 */ s16 turnsDisplay;
2326 /* 0x04 */ s16 turnsLeft;
2327 /* 0x06 */ s16 state;
2328 /* 0x08 */ s16 stateTimer;
2329} BuffData; // size = 0xA
2330
2331typedef struct PartnerBuffFXData {
2332 /* 0x00 */ s16 useRandomValues;
2333 /* 0x02 */ s16 visible;
2334 /* 0x04 */ s32 timeLeft;
2335 /* 0x08 */ s32 lifeTime;
2336 /* 0x0C */ BuffData unk_0C[3];
2337} PartnerBuffFXData; // size = 0x2C
2338
2340 /* 0x00 */ s32 unk_00;
2341 /* 0x04 */ Vec3f pos;
2342 /* 0x10 */ s32 vanishTimer;
2343 /* 0x14 */ s32 lifetime;
2344 /* 0x18 */ s32 fadeInAmt; // 0 = all-black, FF = fully-visible
2345 /* 0x1C */ s32 anim;
2346} QuizmoAssistantFXData; // size = 0x20
2347
2348typedef struct IcePillarFXData {
2349 /* 0x00 */ s32 unk_00;
2350 /* 0x04 */ Vec3f pos;
2351 /* 0x10 */ s32 timeLeft;
2352 /* 0x14 */ s32 lifeTime;
2353 /* 0x18 */ Color_RGBA8 prim;
2354 /* 0x1C */ Color_RGBA8 env;
2355 /* 0x20 */ f32 scale;
2356 /* 0x24 */ s8 unk_24;
2357 /* 0x25 */ s8 unk_25;
2358 /* 0x26 */ char unk_26[0x2];
2359 /* 0x28 */ struct EffectInstance* miscParticles;
2360} IcePillarFXData; // size = 0x2C
2361
2362// sun shine directions
2363enum {
2366};
2367
2368typedef struct SunFXData {
2369 /* 0x00 */ s32 shineFromRight;
2370 /* 0x04 */ Vec3f pos; // does nothing
2371 /* 0x10 */ s32 timeLeft;
2372 /* 0x14 */ s32 lifeTime;
2375 /* 0x1F */ char unk_1F[0x1];
2376 /* 0x20 */ f32 texScrollAmt[5];
2377 /* 0x34 */ f32 unk_34;
2378 /* 0x38 */ s32 alpha;
2379 /* 0x3C */ s32 targetAlpha;
2380} SunFXData; // size = 0x40
2381
2383 /* 0x00 */ s32 unk_00;
2384 /* 0x04 */ s32 unk_04;
2385 /* 0x08 */ f32 unk_08;
2386 /* 0x0C */ f32 unk_0C;
2387 /* 0x10 */ f32 unk_10;
2388 /* 0x14 */ s32 unk_14;
2389 /* 0x18 */ s32 unk_18;
2390 /* 0x1C */ s32 unk_1C;
2391 /* 0x20 */ s32 unk_20;
2392 /* 0x24 */ s32 unk_24;
2393 /* 0x28 */ s32 unk_28;
2394 /* 0x2C */ s32 unk_2C;
2395 /* 0x30 */ s32 unk_30;
2396 /* 0x34 */ s32 unk_34;
2397 /* 0x38 */ s32 unk_38;
2398 /* 0x3C */ f32 unk_3C;
2399 /* 0x40 */ f32 unk_40[4];
2400 /* 0x50 */ s32 unk_50[4];
2401 /* 0x60 */ s32 unk_60;
2402 /* 0x64 */ s32 unk_64;
2403 /* 0x68 */ s32 unk_68;
2404 /* 0x6C */ s32 unk_6C;
2405 /* 0x70 */ s32 unk_70;
2406 /* 0x74 */ s32 unk_74;
2407} StarSpiritsEnergyFXData; // size = 0x78
2408
2409typedef struct PinkSparklesFXData {
2410 /* 0x00 */ s32 unk_00;
2411 /* 0x04 */ f32 unk_04;
2412 /* 0x08 */ f32 unk_08;
2413 /* 0x0C */ f32 unk_0C;
2414 /* 0x10 */ f32 unk_10;
2415 /* 0x14 */ f32 unk_14;
2416 /* 0x18 */ f32 unk_18;
2417 /* 0x1C */ s32 unk_1C;
2418 /* 0x20 */ s32 unk_20;
2419 /* 0x24 */ f32 unk_24;
2420 /* 0x28 */ s32 unk_28;
2421} PinkSparklesFXData; // size = 0x2C
2422
2423typedef struct StarOutlineFXData {
2424 /* 0x00 */ s16 unk_00;
2425 /* 0x02 */ s16 unk_02;
2426 /* 0x04 */ Vec3f pos;
2427 /* 0x10 */ s32 timeLeft;
2428 /* 0x14 */ s32 lifeTime;
2429 /* 0x18 */ s32 unk_18;
2430 /* 0x1C */ s32 unk_1C;
2431 /* 0x20 */ s32 unk_20;
2432 /* 0x24 */ s32 unk_24;
2433 /* 0x28 */ s32 unk_28;
2434 /* 0x2C */ s32 unk_2C;
2435 /* 0x30 */ s32 unk_30;
2436 /* 0x34 */ s32 unk_34;
2437 /* 0x38 */ f32 unk_38;
2438 /* 0x3C */ Vec3f unk_3C;
2439 /* 0x48 */ f32 unk_48;
2440 /* 0x4C */ f32 unk_4C;
2441 /* 0x50 */ f32 unk_50;
2442 /* 0x54 */ f32 unk_54;
2443} StarOutlineFXData; // size = 0x58
2444
2445typedef struct Effect86FXData {
2446 /* 0x00 */ s32 unk_00;
2447 /* 0x04 */ f32 unk_04;
2448 /* 0x08 */ f32 unk_08;
2449 /* 0x0C */ f32 unk_0C;
2450 /* 0x10 */ s32 unk_10;
2451 /* 0x14 */ s32 unk_14;
2452 /* 0x18 */ s32 unk_18;
2453 /* 0x1C */ s32 unk_1C;
2454 /* 0x20 */ s32 unk_20;
2455 /* 0x24 */ s32 unk_24;
2456 /* 0x28 */ s32 unk_28;
2457 /* 0x2C */ s32 unk_2C;
2458 /* 0x30 */ s32 unk_30;
2459 /* 0x34 */ f32 unk_34;
2460} Effect86FXData; // size = 0x38
2461
2462typedef union {
2463 s32* any;
2464 struct Effect00FXData* unk_00;
2466 struct Effect02FXData* unk_02;
2467 struct Effect03FXData* unk_03;
2468 struct Effect04FXData* unk_04;
2469 struct Effect05FXData* unk_05;
2472 struct FlowerFXData* flowerSplash; // note: shared
2473 struct FlowerFXData* flowerTrail; // note: shared
2506 struct Unk2AFXData* unk_2A;
2570 struct Effect6AFXData* unk_6A;
2582 struct Effect76FXData* unk_76;
2599} EffectData;
2600
2601typedef struct EffectInstance {
2602 /* 0x00 */ s32 flags;
2603 /* 0x04 */ s32 effectIndex;
2604 /* 0x08 */ s32 numParts;
2605 /* 0x0C */ EffectData data;
2606 /* 0x10 */ struct EffectGraphics* graphics;
2607} EffectInstance; // size = 0x14
2608
2609// composite struct for watt effects -- NOT the same as StaticStatusFXData
2610typedef struct WattEffectData {
2611 /* 0x00 */ s32 initialized;
2612 /* 0x04 */ s32 isBouncing;
2613 /* 0x08 */ s32 bouncePhase;
2614 /* 0x0C */ s32 isActive;
2615 /* 0x10 */ s32 currentEffectIndex;
2618 /* 0x1C */ s32 debuff;
2620
2621typedef struct StarSpiritData {
2622 /* 0x00 */ f32 unk_00;
2623 /* 0x04 */ f32 unk_04;
2624 /* 0x08 */ f32 unk_08;
2625 /* 0x0C */ f32 unk_0C;
2626 /* 0x10 */ f32 unk_10;
2627 /* 0x14 */ f32 unk_14;
2628 /* 0x18 */ f32 unk_18;
2629 /* 0x1C */ f32 unk_1C;
2630 /* 0x20 */ f32 unk_20;
2631 /* 0x24 */ f32 unk_24;
2632 /* 0x28 */ f32 unk_28;
2633 /* 0x2C */ f32 unk_2C;
2634 /* 0x30 */ f32 unk_30;
2635 /* 0x34 */ f32 unk_34;
2636 /* 0x38 */ s32 unk_38;
2637 /* 0x3C */ s32 unk_3C;
2638 /* 0x40 */ s32 unk_40; // a shadowID
2639 /* 0x44 */ s16 unk_44;
2640 /* 0x46 */ s16 unk_46;
2641 /* 0x48 */ s16 unk_48;
2642 /* 0x4A */ s16 unk_4A;
2643 /* 0x4C */ s16 unk_4C;
2644 /* 0x4E */ s16 unk_4E;
2647} StarSpiritData; // size = 0x58
2648
2649typedef struct EffectBlueprint {
2650 /* 0x00 */ s32 unk_00;
2651 /* 0x04 */ s32 effectID;
2652 /* 0x08 */ void (*init)(EffectInstance* effectInst);
2653 /* 0x0C */ void (*update)(EffectInstance* effectInst);
2654 /* 0x10 */ void (*renderWorld)(EffectInstance* effectInst);
2655 /* 0x14 */ void (*renderUI)(EffectInstance* effectInst);
2656} EffectBlueprint; // size = 0x18
2657
2658typedef struct EffectGraphics {
2659 /* 0x00 */ s32 flags;
2660 /* 0x04 */ s32 effectIndex;
2661 /* 0x08 */ s32 instanceCounter;
2662 /* 0x0C */ s32 freeDelay;
2663 /* 0x10 */ void (*update)(EffectInstance* effectInst);
2664 /* 0x14 */ void (*renderWorld)(EffectInstance* effectInst);
2665 /* 0x18 */ void (*renderUI)(EffectInstance* effectInst);
2666 /* 0x1C */ s32* data;
2667} EffectGraphics; // size = 0x20
2668
2669typedef struct EffectTableEntry {
2670 /* 0x00 */ void (*entryPoint);
2671 /* 0x04 */ void* dmaStart;
2672 /* 0x08 */ void* dmaEnd;
2673 /* 0x0C */ void* dmaDest;
2674 /* 0x10 */ void* graphicsDmaStart;
2675 /* 0x14 */ void* graphicsDmaEnd;
2676} EffectTableEntry; // size = 0x18
2677
2683
2686s32 load_effect(s32 effectIndex);
2687
2688#include "effects/effect_defs.h"
2689
2690#endif
s32 b32
f32 Matrix4f[4][4]
#define remove_effect
#define load_effect
#define create_effect_instance
f32 unk_14
Definition effects.h:300
f32 smallFlareScale
Definition effects.h:394
struct EnergyShockwaveFXData * energyShockwave
Definition effects.h:2521
EffectInstance * effect2
Definition effects.h:2617
struct Effect05FXData * unk_05
Definition effects.h:2469
Vec3f pos
Definition effects.h:1202
f32 unk_24
Definition effects.h:304
@ FX_SUN_FROM_LEFT
Definition effects.h:2364
@ FX_SUN_FROM_RIGHT
Definition effects.h:2365
s32 currentEffectIndex
Definition effects.h:2615
struct Unk2AFXData * unk_2A
Definition effects.h:2506
char unk_02[2]
Definition effects.h:722
Vec3f posB
Definition effects.h:995
char unk_28[0x4]
Definition effects.h:20
struct TattleWindowFXData * tattleWindow
Definition effects.h:2572
s32 timeLeft
Definition effects.h:611
u8 gfxFrame[11]
Definition effects.h:2278
s16 turnsDisplay
Definition effects.h:2325
Vec3f pos
Definition effects.h:488
struct MerlinHouseStarsFXData * merlinHouseStars
Definition effects.h:2547
struct FireBreathFXData * fireBreath
Definition effects.h:2519
f32 x[11]
Definition effects.h:2271
s8 useAltColor
Definition effects.h:67
void * graphicsDmaStart
Definition effects.h:2674
struct DropLeavesFXData * dropLeaves
Definition effects.h:2484
s32 unk_44
Definition effects.h:312
#define UNK_ARRAY_SIZE_1
Definition effects.h:1366
f32 boltVertexPosZ[12]
Definition effects.h:1623
char unk_02[2]
Definition effects.h:1868
Color_RGB8 primColor
Definition effects.h:2373
struct StarsShimmerFXData * starsShimmer
Definition effects.h:2498
struct EmoteFXData * emote
Definition effects.h:2480
struct GatherMagicFXData * gatherMagic
Definition effects.h:2535
struct BalloonFXData * balloon
Definition effects.h:2539
struct SparklesFXData * sparkles
Definition effects.h:2481
struct EffectInstance * unk_44
Definition effects.h:870
f32 renderYaw
Definition effects.h:1013
f32 jumpOffset[11]
Definition effects.h:2279
struct LightningFXData * lightning
Definition effects.h:2518
f32 y[11]
Definition effects.h:2272
LilOinkFlags
Definition effects.h:2240
@ LIL_OINK_FLAG_ANIM_CHANGED
Definition effects.h:2242
@ LIL_OINK_FLAG_VISIBLE
Definition effects.h:2241
char unk_44[4]
Definition effects.h:834
f32 integrator[4]
Definition effects.h:77
struct LightningBoltFXData * lightningBolt
Definition effects.h:2558
f32 largeFlareScale
Definition effects.h:392
f32 unk_D4[10]
Definition effects.h:1701
char unk_34[0x4]
Definition effects.h:117
struct ShimmerBurstFXData * shimmerBurst
Definition effects.h:2520
struct Effect63FXData * unk_63
Definition effects.h:2563
Color4i envCol
Definition effects.h:2214
struct ShatteringStonesFXData * shatteringStones
Definition effects.h:2486
struct StopWatchFXData * stopWatch
Definition effects.h:2562
struct AttackResultTextFXData * attackResultText
Definition effects.h:2536
Vec3f rot
Definition effects.h:71
char unk_04[0x2]
Definition effects.h:127
struct ColdBreathFXData * coldBreath
Definition effects.h:2575
s32 fadeTime
Definition effects.h:999
struct LilOinkFXData * lilOink
Definition effects.h:2588
Color_RGB8 envCol
Definition effects.h:735
Color4i primCol
Definition effects.h:2213
char unk_09[0x3]
Definition effects.h:106
f32 largeFlareScaleVel
Definition effects.h:393
struct StatChangeFXData * statChange
Definition effects.h:2550
PlayerStatus * player
Definition effects.h:1201
f32 unk_58[12]
Definition effects.h:1527
struct DisableXFXData * disableX
Definition effects.h:2529
s32 alpha
Definition effects.h:2378
void * entryPoint
Definition effects.h:2670
EffectInstance * unk_54
Definition effects.h:2646
char unk_7A[2]
Definition effects.h:476
f32 z[11]
Definition effects.h:2273
s16 turnsLeft
Definition effects.h:2326
Vec3f pos
Definition effects.h:2370
char unk_56[2]
Definition effects.h:575
struct SnowmanDollFXData * snowmanDoll
Definition effects.h:2560
f32 starAngle
Definition effects.h:185
struct SmokeBurstFXData * smokeBurst
Definition effects.h:2503
char unk_10[0x10]
Definition effects.h:377
f32 largeFlareRotVel
Definition effects.h:391
struct SnowflakeFXData * snowflake
Definition effects.h:2478
Color_RGB8 unk_50
Definition effects.h:1888
ShockOverlayFXTypes
Definition effects.h:1262
@ FX_SHOCK_OVERLAY_MEGA_SHOCK
Definition effects.h:1265
@ FX_SHOCK_OVERLAY_SHOCK_HIT
Definition effects.h:1263
@ FX_SHOCK_OVERLAY_LIGHTNING_WORLD
Definition effects.h:1264
@ FX_SHOCK_OVERLAY_LIGHTNING_BATTLE
Definition effects.h:1266
s16 unk_11A[19][13]
Definition effects.h:1608
char unk_56[2]
Definition effects.h:1890
#define MAX_LIL_OINKS
Definition effects.h:2238
Vec3f pos
Definition effects.h:605
struct LensFlareFXData * lensFlare
Definition effects.h:2490
struct WaterBlockFXData * waterBlock
Definition effects.h:2554
struct EnergyInOutFXData * energyInOut
Definition effects.h:2571
Vec3f pos
Definition effects.h:181
f32 unk_1C
Definition effects.h:302
char unk_02[2]
Definition effects.h:678
Color_RGBA8 rgba
Definition effects.h:600
struct SnowfallFXData * snowfall
Definition effects.h:2533
struct RingBlastFXData * ringBlast
Definition effects.h:2500
f32 unk_34
Definition effects.h:2377
struct ButterfliesFXData * butterflies
Definition effects.h:2549
struct DustFXData * dust
Definition effects.h:2485
f32 velScaleA
Definition effects.h:73
struct FlowerFXData * flowerTrail
Definition effects.h:2473
Vec2f scale
Definition effects.h:996
s32 unk_30
Definition effects.h:307
struct ConfettiFXData * confetti
Definition effects.h:2532
SparkesFXTypes
Definition effects.h:233
@ FX_SPARKLES_3
Definition effects.h:237
@ FX_SPARKLES_2
Definition effects.h:236
@ FX_SPARKLES_1
Definition effects.h:235
@ FX_SPARKLES_4
Definition effects.h:238
@ FX_SPARKLES_0
Definition effects.h:234
struct ShimmerWaveFXData * shimmerWave
Definition effects.h:2522
s32 unk_B8[12]
Definition effects.h:1529
struct SunFXData * sun
Definition effects.h:2594
f32 starAngleVel
Definition effects.h:187
StarFXTypes
Definition effects.h:172
@ FX_STAR_BACKGROUND
Definition effects.h:173
@ FX_STAR_LARGE_BOUNCING
Definition effects.h:175
@ FX_STAR_FOREGROUND
Definition effects.h:174
@ FX_STAR_SMALL_BOUNCING
Definition effects.h:176
Vec3f posA
Definition effects.h:994
struct Effect04FXData * unk_04
Definition effects.h:2468
struct StarsOrbitingFXData * starsOrbiting
Definition effects.h:2511
f32 baseScale
Definition effects.h:489
struct BlastFXData * blast
Definition effects.h:2526
Color_RGB8 prim
Definition effects.h:573
char unk_1F[0x1]
Definition effects.h:2375
struct DebuffFXData * debuff
Definition effects.h:2513
f32 bounceTime
Definition effects.h:183
FireBreathType
Definition effects.h:2678
@ FIRE_BREATH_TINY
Definition effects.h:2681
@ FIRE_BREATH_LARGE
Definition effects.h:2679
@ FIRE_BREATH_SMALL
Definition effects.h:2680
f32 trailAngle
Definition effects.h:184
struct WalkingDustFXData * walkingDust
Definition effects.h:2471
Color_RGBA8 waterColor
Definition effects.h:1605
struct QuizmoAudienceFXData * quizmoAudience
Definition effects.h:2548
struct GreenImpactFXData * greenImpact
Definition effects.h:2514
struct SomethingRotatingFXData * somethingRotating
Definition effects.h:2589
struct LandingDustFXData * landingDust
Definition effects.h:2470
f32 pathY[30]
Definition effects.h:1789
struct SpikyWhiteAuraFXData * spikyWhiteAura
Definition effects.h:2492
s32 primG
Definition effects.h:195
struct EmbersFXData * embers
Definition effects.h:2576
LilOinkTypes
Definition effects.h:2245
@ LIL_OINK_TYPE_PINK
Definition effects.h:2248
@ LIL_OINK_TYPE_SILVER
Definition effects.h:2254
@ LIL_OINK_TYPE_GOLD
Definition effects.h:2255
@ LIL_OINK_TYPE_QUESTION
Definition effects.h:2253
@ LIL_OINK_TYPE_BLACK
Definition effects.h:2246
@ LIL_OINK_TYPE_STAR
Definition effects.h:2252
@ LIL_OINK_TYPE_PIKACHU
Definition effects.h:2249
@ LIL_OINK_TYPE_FLOWER
Definition effects.h:2251
@ LIL_OINK_TYPE_SHROOM
Definition effects.h:2250
@ LIL_OINK_TYPE_WHITE
Definition effects.h:2247
struct WaterFountainFXData * waterFountain
Definition effects.h:2556
struct WhirlwindFXData * whirlwind
Definition effects.h:2567
struct GatherEnergyPinkFXData * gatherEnergyPink
Definition effects.h:2483
s8 animTime[11]
Definition effects.h:2280
s32 flags[11]
Definition effects.h:2270
struct MusicNoteFXData * musicNote
Definition effects.h:2502
f32 unk_88[12]
Definition effects.h:1528
char unk_02[2]
Definition effects.h:555
f32 unk_E8[12]
Definition effects.h:1530
struct RisingBubbleFXData * risingBubble
Definition effects.h:2499
char unk_10[12]
Definition effects.h:1933
struct FrightJarFXData * frightJar
Definition effects.h:2561
Color_RGB8 primCol
Definition effects.h:734
char unk_40[0x04]
Definition effects.h:1347
f32 unk_118[12]
Definition effects.h:1531
Vec2f points[20]
Definition effects.h:622
struct FireworkFXData * firework
Definition effects.h:2531
s16 stateTimer
Definition effects.h:2328
struct PurpleRingFXData * purpleRing
Definition effects.h:2495
struct QuizmoStageFXData * quizmoStage
Definition effects.h:2542
Color_RGB8 env
Definition effects.h:574
f32 unk_08
Definition effects.h:297
struct WaterSplashFXData * waterSplash
Definition effects.h:2559
struct LightRaysFXData * lightRays
Definition effects.h:2517
struct PinkSparklesFXData * pinkSparkles
Definition effects.h:2596
Npc * unk_3C
Definition effects.h:215
Mtx trailMatrices[8]
Definition effects.h:192
s32 largeFlareAlpha
Definition effects.h:395
Color_RGBA8 prim
Definition effects.h:2353
s32 primB
Definition effects.h:196
Color_RGB8 color
Definition effects.h:1211
s32 lifeTime
Definition effects.h:2372
struct MiscParticlesFXData * miscParticles
Definition effects.h:2578
struct PartnerBuffFXData * partnerBuff
Definition effects.h:2591
char unk_28[0xC]
Definition effects.h:2233
struct SmokeImpactFXData * smokeImpact
Definition effects.h:2493
struct HuffPuffBreathFXData * huffPuffBreath
Definition effects.h:2574
f32 scale
Definition effects.h:193
WaterBlockFXTypes
Definition effects.h:1538
@ FX_WATER_BLOCK_DESTROY
Definition effects.h:1540
@ FX_WATER_BLOCK_CREATE
Definition effects.h:1539
AuraFXTypes
Definition effects.h:985
@ FX_AURA_GOLD
Definition effects.h:989
@ FX_AURA_RED
Definition effects.h:987
@ FX_AURA_CAPTURE
Definition effects.h:986
@ FX_AURA_BLUE
Definition effects.h:988
struct PeachStarBeamFXData * peachStarBeam
Definition effects.h:2584
s32 unk_2C
Definition effects.h:306
f32 texScrollAmt[5]
Definition effects.h:2376
s32 lifeTime
Definition effects.h:1000
struct WaterfallFXData * waterfall
Definition effects.h:2555
struct StarsBurstFXData * starsBurst
Definition effects.h:2497
struct ExplosionFXData * explosion
Definition effects.h:2489
struct FlowerFXData * flowerSplash
Definition effects.h:2472
char unk_3E[2]
Definition effects.h:736
DamageStarsFXTypes
Definition effects.h:355
@ FX_DAMAGE_STARS_3
Definition effects.h:359
@ FX_DAMAGE_STARS_2
Definition effects.h:358
@ FX_DAMAGE_STARS_4
Definition effects.h:360
@ FX_DAMAGE_STARS_0
Definition effects.h:356
@ FX_DAMAGE_STARS_1
Definition effects.h:357
char unk_1C[8]
Definition effects.h:508
Color_RGB8 unk_53
Definition effects.h:1889
char unk_14[0x44]
Definition effects.h:50
struct Effect65FXData * unk_65
Definition effects.h:2565
struct QuizmoAssistantFXData * quizmoAssistant
Definition effects.h:2592
f32 unk_5C[12]
Definition effects.h:1576
s16 alpha
Definition effects.h:2324
char unk_02[0x2]
Definition effects.h:25
struct SteamBurstFXData * steamBurst
Definition effects.h:2510
f32 pathX[30]
Definition effects.h:1788
struct RadialShimmerFXData * radialShimmer
Definition effects.h:2515
struct RadiatingEnergyOrbFXData * radiatingEnergyOrb
Definition effects.h:2543
struct FootprintFXData * footprint
Definition effects.h:2476
f32 boltVertexPosY[12]
Definition effects.h:1622
char unk_47
Definition effects.h:1212
Color3i primCol
Definition effects.h:2105
struct DamageIndicatorFXData * damageIndicator
Definition effects.h:2494
f32 rot[11]
Definition effects.h:2274
char unk_09[0x3]
Definition effects.h:130
struct EffectInstance * miscParticles
Definition effects.h:2359
struct GotItemOutlineFXData * gotItemOutline
Definition effects.h:2491
Vec3f rotVel
Definition effects.h:1210
struct IcePillarFXData * icePillar
Definition effects.h:2593
u16 triggeredByNpc
Definition effects.h:64
s32 primR
Definition effects.h:194
LilOinkAnims
Definition effects.h:2258
@ LIL_OINK_ANIM_0
Definition effects.h:2259
@ LIL_OINK_ANIM_2
Definition effects.h:2261
@ LIL_OINK_ANIM_4
Definition effects.h:2263
@ LIL_OINK_ANIM_3
Definition effects.h:2262
@ LIL_OINK_ANIM_1
Definition effects.h:2260
@ LIL_OINK_ANIM_5
Definition effects.h:2264
struct StarsSpreadFXData * starsSpread
Definition effects.h:2509
struct SpiritCardFXData * spiritCard
Definition effects.h:2587
Color_RGBA8 envColor
Definition effects.h:2374
BuffData unk_0C[3]
Definition effects.h:2336
struct SnakingStaticFXData * snakingStatic
Definition effects.h:2551
struct BigSnowflakesFXData * bigSnowflakes
Definition effects.h:2512
FlameFXTypes
Definition effects.h:479
@ FX_FLAME_RED
Definition effects.h:481
@ FX_FLAME_SMALL_BLUE
Definition effects.h:482
@ FX_FLAME_BLUE
Definition effects.h:480
@ FX_FLAME_PINK
Definition effects.h:483
struct EffectGraphics * graphics
Definition effects.h:2606
f32 unk_28
Definition effects.h:305
struct BombetteBreakingFXData * bombetteBreaking
Definition effects.h:2530
Color_RGBA8 env
Definition effects.h:2354
char unk_04[0x2]
Definition effects.h:83
#define TUBBA_MINI_HEART_COUNT
Definition effects.h:1797
char unk_09[0x3]
Definition effects.h:86
struct Effect00FXData * unk_00
Definition effects.h:2464
char unk_40[0x4]
Definition effects.h:1942
struct AuraFXData * aura
Definition effects.h:2523
EffectInstance * unk_50
Definition effects.h:2645
struct SleepBubbleFXData * sleepBubble
Definition effects.h:2505
s32 duration
Definition effects.h:1206
f32 unk_84[10]
Definition effects.h:1699
f32 unk_20
Definition effects.h:303
s32 unk_14C[10]
Definition effects.h:1704
Mtx transformMtx
Definition effects.h:72
struct BigSmokePuffFXData * bigSmokePuff
Definition effects.h:2465
struct TubbaHeartAttackFXData * tubbaHeartAttack
Definition effects.h:2566
f32 unk_28
Definition effects.h:186
struct MotionBlurFlameFXData * motionBlurFlame
Definition effects.h:2545
struct MovingCloudFXData * movingCloud
Definition effects.h:2580
void * graphicsDmaEnd
Definition effects.h:2675
Color_RGB8 unk_50
Definition effects.h:762
struct ChapterChangeFXData * chapterChange
Definition effects.h:2585
Vec3f initialRot
Definition effects.h:843
s32 pathTimestamp[30]
Definition effects.h:1791
struct Effect02FXData * unk_02
Definition effects.h:2466
#define ROCKET_BUF_SIZE
Definition effects.h:2129
struct SquirtFXData * squirt
Definition effects.h:2553
struct EffectInstance * child
Definition effects.h:2230
struct StarOutlineFXData * starOutline
Definition effects.h:2597
char unk_24[8]
Definition effects.h:1936
s32 trailMatrixPos
Definition effects.h:191
Color3i envCol
Definition effects.h:2107
u8 unk_1D8[12]
Definition effects.h:1535
struct FloatingFlowerFXData * floatingFlower
Definition effects.h:2477
s32 unk_00
Definition effects.h:295
struct StaticStatusFXData * staticStatus
Definition effects.h:2579
s16 timeLeft
Definition effects.h:65
s32 lifetime
Definition effects.h:1208
f32 pathLength[30]
Definition effects.h:1794
struct BreakingJunkFXData * breakingJunk
Definition effects.h:2590
struct ShapeSpellFXData * shapeSpell
Definition effects.h:2482
HeartSwarmFXTypes
Definition effects.h:1799
@ FX_HEART_SWARM_MISS
Definition effects.h:1801
@ FX_HEART_SWARM_HIT
Definition effects.h:1800
char unk_02[2]
Definition effects.h:336
struct FireFlowerFXData * fireFlower
Definition effects.h:2527
struct EndingDecalsFXData * endingDecals
Definition effects.h:2516
char unk_26[0x2]
Definition effects.h:2358
@ FX_BUFF_DATA_TURBO_CHARGE
Definition effects.h:2320
@ FX_BUFF_DATA_CLOUD_NINE
Definition effects.h:2319
@ FX_BUFF_DATA_WATER_BLOCK
Definition effects.h:2318
s32 pathPointEnabled[30]
Definition effects.h:1792
char unk_48[0x8]
Definition effects.h:122
s32 unk_40
Definition effects.h:311
#define MAX_QUIZMO_AUDIENCE
Definition effects.h:1419
struct ChompDropFXData * chompDrop
Definition effects.h:2541
struct ThrowSpinyFXData * throwSpiny
Definition effects.h:2564
struct Effect86FXData * unk_86
Definition effects.h:2598
char unk_18[4]
Definition effects.h:1149
f32 visibilityAmt
Definition effects.h:75
f32 projVel
Definition effects.h:189
#define MAX_WHIRLWIND_SEGMENTS
Definition effects.h:1837
char unk_88[0x8]
Definition effects.h:140
f32 boltVertexPosX[12]
Definition effects.h:1621
f32 unk_34[10]
Definition effects.h:1697
Color4i primCol
Definition effects.h:1990
f32 compMoveMagnitude[10]
Definition effects.h:1430
s32 timeLeft
Definition effects.h:1207
struct Effect3DFXData * unk_3D
Definition effects.h:2525
struct StarFXData * star
Definition effects.h:2479
f32 pathZ[30]
Definition effects.h:1790
s32 unk_3C
Definition effects.h:310
struct ShinyFlareFXData * shinyFlare
Definition effects.h:2573
s32 unk_178[12]
Definition effects.h:1533
struct Effect03FXData * unk_03
Definition effects.h:2467
Vec3f scale
Definition effects.h:70
Color_RGB8 unk_20
Definition effects.h:1606
struct CloudTrailFXData * cloudTrail
Definition effects.h:2475
f32 unk_148[12]
Definition effects.h:1532
char unk_5C[4]
Definition effects.h:1731
char unk_30[4]
Definition effects.h:829
struct SweatFXData * sweat
Definition effects.h:2504
Color_RGB8 unk_53
Definition effects.h:763
struct EffectInstance * unk_48
Definition effects.h:871
f32 unk_2C[12]
Definition effects.h:1575
s32 shineFromRight
Definition effects.h:2369
struct SmokeRingFXData * smokeRing
Definition effects.h:2487
Vec3f rot
Definition effects.h:1209
struct ShockwaveFXData * shockwave
Definition effects.h:2501
f32 unk_5C[10]
Definition effects.h:1698
u8 type[11]
Definition effects.h:2275
void * quizmoAnswer
Definition effects.h:2544
struct StarSpiritsEnergyFXData * starSpiritsEnergy
Definition effects.h:2595
char unk_14[0x04]
Definition effects.h:607
Vec3f pos
Definition effects.h:69
struct SpinFXData * spin
Definition effects.h:2534
struct SmallGoldSparkleFXData * smallGoldSparkle
Definition effects.h:2537
s32 * any
Definition effects.h:2463
Matrix4f unk_1C
Definition effects.h:463
f32 unk_04
Definition effects.h:296
s32 unk_38
Definition effects.h:309
struct EnergyOrbWaveFXData * energyOrbWave
Definition effects.h:2546
f32 unk_0C
Definition effects.h:298
s32 unk_1A8[12]
Definition effects.h:1534
char unk_04[0xC]
Definition effects.h:822
struct Effect75FXData * unk_75
Definition effects.h:2581
struct Effect6AFXData * unk_6A
Definition effects.h:2570
struct FireworkRocketFXData * fireworkRocket
Definition effects.h:2583
char unk_74[0x8]
Definition effects.h:136
#define NUM_WATER_BLOCK_COMPONENTS
Definition effects.h:1543
struct HieroglyphsFXData * hieroglyphs
Definition effects.h:2577
f32 unk_24
Definition effects.h:997
f32 unk_10
Definition effects.h:299
struct BulbGlowFXData * bulbGlow
Definition effects.h:2524
struct RedImpactFXData * redImpact
Definition effects.h:2568
f32 velScaleB
Definition effects.h:74
s16 state
Definition effects.h:2327
struct IceShardFXData * iceShard
Definition effects.h:2586
struct CloudPuffFXData * cloudPuff
Definition effects.h:2474
struct FloatingCloudPuffFXData * floatingCloudPuff
Definition effects.h:2569
s32 primA
Definition effects.h:998
s32 unk_124[10]
Definition effects.h:1703
s32 targetAlpha
Definition effects.h:2379
struct UnderwaterFXData * underwater
Definition effects.h:2557
EffectData data
Definition effects.h:2605
struct WindyLeavesFXData * windyLeaves
Definition effects.h:2507
char unk_42[2]
Definition effects.h:1164
struct ShockOverlayFXData * flashingBoxShockwave
Definition effects.h:2538
s32 smallFlareAlpha
Definition effects.h:396
s8 nextAnim[11]
Definition effects.h:2276
struct FallingLeavesFXData * fallingLeaves
Definition effects.h:2508
struct ThunderboltRingFXData * thunderboltRing
Definition effects.h:2552
Vec3f vel
Definition effects.h:182
s32 timeLeft
Definition effects.h:2371
Vec3f pos
Definition effects.h:723
f32 initialScale
Definition effects.h:1204
s32 unk_18
Definition effects.h:301
f32 unk_AC[10]
Definition effects.h:1700
s32 timeLeft
Definition effects.h:188
u8 anim[11]
Definition effects.h:2277
f32 unk_FC[10]
Definition effects.h:1702
s32 unk_34
Definition effects.h:308
s8 unk_23[19][13]
Definition effects.h:1607
PeachStarBeamSpirit spirits[8]
Definition effects.h:2182
struct FlameFXData * flame
Definition effects.h:2496
struct FloatingRockFXData * floatingRock
Definition effects.h:2540
Vec3f pos
Definition effects.h:1062
b32 canBounce
Definition effects.h:180
EffectInstance * effect1
Definition effects.h:2616
struct DamageStarsFXData * damageStars
Definition effects.h:2488
char unk_0A[0x2]
Definition effects.h:68
struct RecoverFXData * recover
Definition effects.h:2528
VecXZf vel
Definition effects.h:78
struct Effect76FXData * unk_76
Definition effects.h:2582
void(* renderUI)(EffectInstance *effectInst)
Definition effects.h:2655
void(* init)(EffectInstance *effectInst)
Definition effects.h:2652
void(* update)(EffectInstance *effectInst)
Definition effects.h:2653
void(* renderWorld)(EffectInstance *effectInst)
Definition effects.h:2654
void(* renderUI)(EffectInstance *effectInst)
Definition effects.h:2665
void(* renderWorld)(EffectInstance *effectInst)
Definition effects.h:2664
s32 instanceCounter
Definition effects.h:2661
void(* update)(EffectInstance *effectInst)
Definition effects.h:2663