Twilight Princess
Decompilation of The Legend of Zelda: Twilight Princess
Loading...
Searching...
No Matches
d_particle.h
Go to the documentation of this file.
1#ifndef D_PARTICLE_D_PARTICLE_H
2#define D_PARTICLE_D_PARTICLE_H
3
4#include "JSystem/JParticle/JPAEmitterManager.h"
6#include "JSystem/JParticle/JPAEmitter.h"
7#include "JSystem/JParticle/JPAParticle.h"
8#include "d/d_particle_name.h"
10#include "JSystem/JKernel/JKRSolidHeap.h"
11
12void dPa_cleanupGX();
13
14class J3DAnmTexPattern;
15class J3DModel;
16class J3DModelData;
17class JKRExpHeap;
18class JKRSolidHeap;
19class dKy_tevstr_c;
20class fopAc_ac_c;
21
22class dPa_levelEcallBack : public JPAEmitterCallBack {
23public:
25 virtual void setup(JPABaseEmitter*, const cXyz*, const csXyz*, s8) = 0;
26 virtual void cleanup() {}
27};
28
30class cBgS_PolyInfo;
31class JPAEmitterManager;
32class JPADrawInfo;
33class J3DAnmBase;
35
36class dPa_simpleEcallBack : public JPAEmitterCallBack {
37public:
39 JPABaseEmitter* create(JPAEmitterManager*, u16, u8);
40 JPABaseEmitter* createEmitter(JPAEmitterManager*);
41 u32 set(cXyz const*, dKy_tevstr_c const*, u8, _GXColor const&, _GXColor const&,
42 int, f32);
43
45 virtual void executeAfter(JPABaseEmitter*);
46 virtual void draw(JPABaseEmitter*);
47
48 void removeEmitter() { mEmitter = NULL; }
49 u16 getID() { return mID; }
50
51 /* 0x04 */ JPABaseEmitter* mEmitter;
52 /* 0x08 */ u16 mID;
53 /* 0x0A */ u8 field_0xa;
54 /* 0x0C */ s16 field_0xc;
55 /* 0x0C */ u16 field_0xe;
57}; // Size: 0x14
58
59class dPa_windPcallBack : public JPAParticleCallBack {
60public:
61 virtual ~dPa_windPcallBack() {}
62 virtual void execute(JPABaseEmitter*, JPABaseParticle*);
63};
64
65class dPa_modelPcallBack : public JPAParticleCallBack {
66public:
67 virtual void draw(JPABaseEmitter*, JPABaseParticle*);
68};
69
71public:
72 struct model_c {
73 bool set(J3DModelData*, dKy_tevstr_c const&, u8, void*, u8, u8);
74 void setup();
75 void cleanup();
76 void draw(f32 (*)[4]);
77 model_c() { mModelData = NULL; }
78
79 void reset() {
80 mModelData = NULL;
81 }
82
83 u8 getRotAxis() { return mRotAxis; }
84 J3DModelData* getModelData() { return mModelData; }
85
86 J3DModelData* mModelData;
87 J3DAnmBase* field_0x4;
93 };
94
96
97 static void create(u8);
98 static void remove();
99 static int setModel(JPABaseEmitter*, J3DModelData*, dKy_tevstr_c const&, u8,
100 void*, u8, u8);
101 static void resetModel(JPABaseEmitter*);
102 static void setupModel(JPABaseEmitter*);
103 static void drawModel(JPABaseEmitter*, f32 (*)[4]);
104 static void cleanupModel(JPABaseEmitter*);
105 static model_c* getModel(JPABaseEmitter*);
106 static u8 getRotAxis(JPABaseEmitter*);
107
108 virtual void draw(JPABaseEmitter*);
109 virtual void drawAfter(JPABaseEmitter* param_0) { cleanupModel(param_0); }
110 virtual void setup(JPABaseEmitter*, cXyz const*, csXyz const*, s8);
111
112 static void setModel(JPABaseEmitter* param_0, J3DModelData* param_1,
113 const dKy_tevstr_c& param_2, u8 param_3, J3DAnmTexPattern* param_4,
114 u8 param_5) {
115 setModel(param_0, param_1, param_2, param_3, param_4, 0, param_5);
116 }
117
120
123 #if DEBUG
124 static u8 mNum;
125 #endif
126};
127
129public:
131 field_0x4 = (u8)param_0;
132 }
133
135 virtual void draw(JPABaseEmitter*);
136 virtual void setup(JPABaseEmitter*, cXyz const*, csXyz const*, s8) {}
137
138 /* 0x4 */ u8 field_0x4;
139};
140
142public:
143 dPa_setColorEcallBack(const GXColor& color) { mColor = color; }
144
146 virtual void draw(JPABaseEmitter* i_emitter) {
147 UNUSED(i_emitter);
148 GXSetTevColor(GX_TEVREG1, mColor);
149 }
150 virtual void setup(JPABaseEmitter*, cXyz const*, csXyz const*, s8) {}
151
152 /* 0x4 */ GXColor mColor;
153};
154
156public:
157 dPa_followEcallBack(u8 param_0 = 0, u8 param_1 = 0);
158
160 virtual void execute(JPABaseEmitter*);
161 virtual void draw(JPABaseEmitter*);
162 virtual void setup(JPABaseEmitter*, cXyz const*, csXyz const*, s8);
163 virtual void cleanup() { end(); }
164 virtual void end();
165
166 void remove() { end(); }
167 JPABaseEmitter* getEmitter() { return mpEmitter; }
168 int isEnd() {
169 return field_0x10 & 1;
170 }
171
172 /* 0x04 */ JPABaseEmitter* mpEmitter;
173 /* 0x08 */ const cXyz* field_0x8;
174 /* 0x0C */ const csXyz* field_0xc;
175 /* 0x10 */ u8 field_0x10;
176 /* 0x11 */ u8 field_0x11;
177 /* 0x12 */ u8 field_0x12;
178 /* 0x13 */ u8 field_0x13;
179};
180
181class dPa_fsenthPcallBack : public JPAParticleCallBack {
182public:
184 virtual void execute(JPABaseEmitter*, JPABaseParticle*);
185 virtual void draw(JPABaseEmitter*, JPABaseParticle*);
186};
187
189public:
190 virtual void draw(JPABaseEmitter*);
191 virtual void drawAfter(JPABaseEmitter* i_emitter) {
192 UNUSED(i_emitter);
194 }
195 virtual void setup(JPABaseEmitter*, cXyz const*, csXyz const*, s8);
196};
197
199public:
200 virtual void draw(JPABaseEmitter*);
201 virtual void drawAfter(JPABaseEmitter* i_emitter) {
202 UNUSED(i_emitter);
204 }
205 virtual void setup(JPABaseEmitter*, cXyz const*, csXyz const*, s8);
206};
207
209public:
210 virtual void draw(JPABaseEmitter*);
211 virtual void drawAfter(JPABaseEmitter* i_emitter) {
212 UNUSED(i_emitter);
214 }
215 virtual void setup(JPABaseEmitter*, cXyz const*, csXyz const*, s8);
216};
217
218class dPa_light8PcallBack : public JPAParticleCallBack {
219public:
221 virtual void execute(JPABaseEmitter*, JPABaseParticle*);
222 virtual void draw(JPABaseEmitter*, JPABaseParticle*);
223};
224
225class dPa_gen_b_light8PcallBack : public JPAParticleCallBack {
226public:
228 virtual void execute(JPABaseEmitter*, JPABaseParticle*);
229 virtual void draw(JPABaseEmitter*, JPABaseParticle*);
230};
231
232class dPa_gen_d_light8PcallBack : public JPAParticleCallBack {
233public:
235 virtual void execute(JPABaseEmitter*, JPABaseParticle*);
236 virtual void draw(JPABaseEmitter*, JPABaseParticle*);
237};
238
239class dPa_wbPcallBack_c : public JPAParticleCallBack {
240public:
242 virtual void execute(JPABaseEmitter*, JPABaseParticle*);
243};
244
245class dPa_particleTracePcallBack_c : public JPAParticleCallBack {
246public:
248 virtual void execute(JPABaseEmitter*, JPABaseParticle*);
249};
250
252public:
254
255 void setOldPosP(cXyz const*, cXyz const*);
256
258 virtual void executeAfter(JPABaseEmitter*);
259 virtual void setup(JPABaseEmitter*, cXyz const*, csXyz const*, s8);
260
261 void setRate(f32 rate) { mRate = rate; }
262 void setMaxCnt(int i_maxCnt) { mMaxCnt = i_maxCnt; }
263
264private:
265 /* 0x04 */ f32 mRate;
266 /* 0x08 */ int mMaxCnt;
267 /* 0x0C */ cXyz const* field_0xc;
268 /* 0x10 */ cXyz const* field_0x10;
269 /* 0x14 */ cXyz const* field_0x14;
270};
271
281
283public:
284 class level_c {
285 public:
286 class emitter_c {
287 public:
288 void onActive();
289 void entry(u32, u16, JPABaseEmitter*, dPa_levelEcallBack*);
290 void cleanup();
291 emitter_c() { mId = 0; }
292
293 JPABaseEmitter* getEmitter() { return mEmitter; }
294 emitter_c* getPre() { return mPre; }
295 emitter_c* getNext() { return mNext; }
296 void setPre(emitter_c* pre) { mPre = pre; }
297 void setNext(emitter_c* next) { mNext = next; }
298
299 u32 getId() { return mId; }
300 void clearStatus() { mStatus = 0; }
301
302 #if DEBUG
303 void onEventMove() { mStatus |= (u8)2; }
304 void offEventMove() { mStatus &= (u8)~2; }
305 #else
306 void onEventMove() { mStatus |= 2; }
307 void offEventMove() { mStatus &= ~2; }
308 #endif
309 BOOL isEventMove() { return mStatus & 2; }
310
311 void offActive() { mStatus &= (u8)~1; }
312 BOOL isActive() { return mStatus & 1; }
313 u16 getNameId() { return mNameId; }
315
316 private:
317 /* 0x00 */ u32 mId;
318 /* 0x04 */ u16 mNameId;
319 /* 0x06 */ u8 mStatus;
320 /* 0x08 */ JPABaseEmitter* mEmitter;
322 /* 0x10 */ emitter_c* mPre;
323 /* 0x14 */ emitter_c* mNext;
324 }; // Size: 0x18
325
326 level_c();
327 void execute();
329 void cleanup();
330 emitter_c* get(u32);
331 void forceOnEventMove(u32);
332 void allForceOnEventMove();
333 JPABaseEmitter* getEmitter(u32);
334 u32 entry(u16, JPABaseEmitter*, dPa_levelEcallBack*);
337
338 static const int EMITTER_MAX = 0x80;
339
340 /* 0x000 */ u32 field_0x0;
341 /* 0x004 */ u8 mFreeNo;
342 /* 0x005 */ u8 field_0x5;
343 /* 0x006 */ u8 field_0x6;
344 /* 0x008 */ emitter_c mEmitter[0x80];
345 /* 0xC08 */ emitter_c* mTable[0x100];
346 }; // Size: 0x1008
347
349 static u8 getRM_ID(u16);
350 void createCommon(void const*);
351 void createRoomScene();
353 void createScene(void const*);
354 bool removeRoomScene(bool);
355 void removeScene(bool);
356 void cleanup();
357 void calc3D();
358 void calc2D();
359 void calcMenu();
360 void draw(JPADrawInfo*, u8);
361 void setHitMark(u16, fopAc_ac_c*, cXyz const*, csXyz const*, cXyz const*, u32);
362 void setWaterRipple(u32*, cBgS_PolyInfo&, cXyz const*, f32, dKy_tevstr_c const*,
363 cXyz const*, s8);
364 JPABaseEmitter* set(u8, u16, cXyz const*, dKy_tevstr_c const*, csXyz const*, cXyz const*, u8,
365 dPa_levelEcallBack*, s8, _GXColor const*, _GXColor const*, cXyz const*,
366 f32);
367 u32 set(u32, u8, u16, cXyz const*, dKy_tevstr_c const*, csXyz const*,
368 cXyz const*, u8, dPa_levelEcallBack*, s8, _GXColor const*,
369 _GXColor const*, cXyz const*, f32);
370 static s32 getPolyColor(cBgS_PolyInfo&, int, _GXColor*, _GXColor*, u8*, f32*);
371 u32 setPoly(u32, u16, cBgS_PolyInfo&, cXyz const*, dKy_tevstr_c const*,
372 csXyz const*, cXyz const*, int, dPa_levelEcallBack*, s8,
373 cXyz const*);
374 JPABaseEmitter* setPoly(u16, cBgS_PolyInfo&, cXyz const*, dKy_tevstr_c const*, csXyz const*,
375 cXyz const*, int, dPa_levelEcallBack*, s8, cXyz const*);
376 bool newSimple(u16, u8, u32*);
377 u32 setSimple(u16, cXyz const*, dKy_tevstr_c const*, u8, _GXColor const&,
378 _GXColor const&, int, f32);
380 u32 setStopContinue(u32);
381 u32 setSimpleFoot(u32, u32*, cBgS_PolyInfo&, cXyz const*, dKy_tevstr_c const*,
382 int, csXyz const*, cXyz const*, dPa_levelEcallBack*, s8,
383 cXyz const*);
384 u16 setCommonPoly(u32*, cBgS_PolyInfo*, cXyz const*, cXyz const*,
385 dKy_tevstr_c const*, u32, u32, csXyz const*, cXyz const*, s8);
386
387 void forceOnEventMove(u32 param_0) { field_0x210.forceOnEventMove(param_0); }
388 JPABaseEmitter* getEmitter(u32 param_0) { return field_0x210.getEmitter(param_0); }
389
390 u32 setNormal(u32 param_0, u16 param_1, const cXyz* i_pos, const dKy_tevstr_c* param_3,
391 const csXyz* i_rotation, const cXyz* i_scale, u8 i_alpha, dPa_levelEcallBack* param_7,
392 s8 param_8, const GXColor* param_9, const GXColor* param_10, const cXyz* param_11,
393 f32 param_12) {
394 return set(param_0, 0, param_1, i_pos, param_3, i_rotation, i_scale, i_alpha, param_7,
395 param_8, param_9, param_10, param_11, param_12);
396 }
397
398 JPABaseEmitter* setNormal(u16 param_1, const cXyz* i_pos, const dKy_tevstr_c* param_3,
399 const csXyz* i_rotation, const cXyz* i_scale, u8 i_alpha,
400 dPa_levelEcallBack* param_7, s8 param_8, const GXColor* param_9,
401 const GXColor* param_10, const cXyz* param_11, f32 param_12) {
402 return set(0, param_1, i_pos, param_3, i_rotation, i_scale, i_alpha, param_7, param_8,
403 param_9, param_10, param_11, param_12);
404 }
405
406 void drawNormal(JPADrawInfo* i_drawInfo) { draw(i_drawInfo, 0); }
407 void drawNormalFog(JPADrawInfo* i_drawInfo) { draw(i_drawInfo, 1); }
408 void drawNormalP1(JPADrawInfo* i_drawInfo) { draw(i_drawInfo, 2); }
409 void drawProjection(JPADrawInfo* i_drawInfo) { draw(i_drawInfo, 3); }
410 void drawNormalPri0_A(JPADrawInfo* i_drawInfo) { draw(i_drawInfo, 4); }
411 void drawNormalPri0_B(JPADrawInfo* i_drawInfo) { draw(i_drawInfo, 5); }
412 void drawFogPri0_A(JPADrawInfo* i_drawInfo) { draw(i_drawInfo, 6); }
413 void drawFogPri0_B(JPADrawInfo* i_drawInfo) { draw(i_drawInfo, 7); }
414 void drawFogPri1(JPADrawInfo* i_drawInfo) { draw(i_drawInfo, 8); }
415 void drawFogPri2(JPADrawInfo* i_drawInfo) { draw(i_drawInfo, 9); }
416 void drawFogPri3(JPADrawInfo* i_drawInfo) { draw(i_drawInfo, 10); }
417 void drawFogPri4(JPADrawInfo* i_drawInfo) { draw(i_drawInfo, 11); }
418 void drawDarkworld(JPADrawInfo* i_drawInfo) { draw(i_drawInfo, 12); }
419 void drawFogScreen(JPADrawInfo* i_drawInfo) { draw(i_drawInfo, 13); }
420 void draw2Dgame(JPADrawInfo* i_drawInfo) { draw(i_drawInfo, 14); }
421 void draw2Dfore(JPADrawInfo* i_drawInfo) { draw(i_drawInfo, 15); }
422 void draw2Dback(JPADrawInfo* i_drawInfo) { draw(i_drawInfo, 16); }
423 void draw2DmenuFore(JPADrawInfo* i_drawInfo) { draw(i_drawInfo, 17); }
424 void draw2DmenuBack(JPADrawInfo* i_drawInfo) { draw(i_drawInfo, 18); }
425
426 JKRSolidHeap* getHeap() { return mHeap; }
427 JKRExpHeap* getResHeap() { return m_resHeap; }
428 JKRSolidHeap* getSceneHeap() { return mSceneHeap; }
429 void* getSceneRes() { return m_sceneRes; }
430
431 u32 getHeapSize() { return mHeap->getTotalFreeSize(); }
432 u32 getSceneHeapSize() { return mSceneHeap->getTotalFreeSize(); }
433
435
436 void levelExecute(u32 param_0) {
437 level_c::emitter_c* emitter = field_0x210.get(param_0);
438 if (emitter != NULL) {
439 field_0x210.execute(emitter);
440 }
441 }
442
443 static void onStatus(u8 status) { mStatus |= status; }
444 static void offStatus(u8 status) {
445 //TODO: reconcile this
446#if DEBUG
447 mStatus &= (u8)~status;
448#else
449 mStatus &= ~status;
450#endif
451 }
452 static BOOL isStatus(u8 status) { return mStatus & status; }
453
455 return &mTsubo[idx];
456 }
457
458 static JPAEmitterManager* getEmitterManager() { return mEmitterMng; }
459 int getEmitterNum() { return mEmitterMng->getEmitterNumber(); };
460 int getParticleNum() { return mEmitterMng->getParticleNumber(); }
461
465
469
473
477
481
485
489
493
494 static JPAParticleCallBack* getWaterBubblePcallBack() {
495 return &mWaterBubblePcallBack;
496 }
497
500 static Mtx mWindViewMatrix;
501 static JPAEmitterManager* mEmitterMng;
511 static u8 mStatus;
512
513private:
514 /* 0x000 */ JKRSolidHeap* mHeap;
515 /* 0x004 */ JPAResourceManager* mCommonResMng;
516 /* 0x008 */ JKRExpHeap* m_resHeap;
517 /* 0x00C */ JKRSolidHeap* mSceneHeap;
518 /* 0x010 */ void* m_sceneRes;
519 /* 0x014 */ JPAResourceManager* mSceneResMng;
520 /* 0x018 */ u8 field_0x18;
521 /* 0x019 */ u8 field_0x19;
522 /* 0x01A */ u8 field_0x1a;
523 /* 0x01B */ u8 field_0x1b;
524#if DEBUG
526#else
527 /* 0x01C */ dPa_simpleEcallBack field_0x1c[25];
528#endif
529 /* 0x210 */ level_c field_0x210;
530 #if DEBUG
532 #endif
533};
534
535#endif /* D_PARTICLE_D_PARTICLE_H */
struct _GXColor GXColor
Definition c_cc_d.h:12
Definition c_bg_s_poly_info.h:7
Definition c_sxyz.h:10
Definition d_kankyo_tev_str.h:8
Definition d_particle.h:286
void entry(u32, u16, JPABaseEmitter *, dPa_levelEcallBack *)
Definition d_particle.cpp:917
JPABaseEmitter * getEmitter()
Definition d_particle.h:293
void cleanup()
Definition d_particle.cpp:929
void offEventMove()
Definition d_particle.h:304
emitter_c * getPre()
Definition d_particle.h:294
void offActive()
Definition d_particle.h:311
dPa_levelEcallBack * mCallback
Definition d_particle.h:321
void onEventMove()
Definition d_particle.h:303
u8 mStatus
Definition d_particle.h:319
JPABaseEmitter * mEmitter
Definition d_particle.h:320
dPa_levelEcallBack * getCallback()
Definition d_particle.h:314
u32 mId
Definition d_particle.h:317
emitter_c()
Definition d_particle.h:291
emitter_c * getNext()
Definition d_particle.h:295
void setNext(emitter_c *next)
Definition d_particle.h:297
u16 getNameId()
Definition d_particle.h:313
emitter_c * mNext
Definition d_particle.h:323
BOOL isActive()
Definition d_particle.h:312
void setPre(emitter_c *pre)
Definition d_particle.h:296
void clearStatus()
Definition d_particle.h:300
BOOL isEventMove()
Definition d_particle.h:309
void onActive()
Definition d_particle.cpp:907
u16 mNameId
Definition d_particle.h:318
u32 getId()
Definition d_particle.h:299
emitter_c * mPre
Definition d_particle.h:322
Definition d_particle.h:284
void cutTable(dPa_control_c::level_c::emitter_c *)
Definition d_particle.cpp:1098
void cleanup()
Definition d_particle.cpp:998
emitter_c mEmitter[0x80]
Definition d_particle.h:344
JPABaseEmitter * getEmitter(u32)
Definition d_particle.cpp:1046
static const int EMITTER_MAX
Definition d_particle.h:338
level_c()
Definition d_particle.cpp:954
u8 mFreeNo
Definition d_particle.h:341
void forceOnEventMove(u32)
Definition d_particle.cpp:1028
u32 entry(u16, JPABaseEmitter *, dPa_levelEcallBack *)
Definition d_particle.cpp:1056
void execute()
Definition d_particle.cpp:978
emitter_c * get(u32)
Definition d_particle.cpp:1011
void addTable(dPa_control_c::level_c::emitter_c *)
Definition d_particle.cpp:1085
u8 field_0x5
Definition d_particle.h:342
u32 field_0x0
Definition d_particle.h:340
void allForceOnEventMove()
Definition d_particle.cpp:1036
emitter_c * mTable[0x100]
Definition d_particle.h:345
u8 field_0x6
Definition d_particle.h:343
Definition d_particle.h:282
void cleanup()
Definition d_particle.cpp:1314
static u8 mStatus
Definition d_particle.h:511
dPa_simpleEcallBack * getSimple(u16)
Definition d_particle.cpp:1662
static dPa_fsenthPcallBack mFsenthPcallBack
Definition d_particle.h:503
void drawFogPri0_B(JPADrawInfo *i_drawInfo)
Definition d_particle.h:413
void * m_sceneRes
Definition d_particle.h:518
JPABaseEmitter * set(u8, u16, cXyz const *, dKy_tevstr_c const *, csXyz const *, cXyz const *, u8, dPa_levelEcallBack *, s8, _GXColor const *, _GXColor const *, cXyz const *, f32)
Definition d_particle.cpp:1453
static JPAEmitterManager * getEmitterManager()
Definition d_particle.h:458
static JPAEmitterManager * mEmitterMng
Definition d_particle.h:501
static dPa_wbPcallBack_c mWaterBubblePcallBack
Definition d_particle.h:502
JPABaseEmitter * getEmitter(u32 param_0)
Definition d_particle.h:388
void drawNormalPri0_B(JPADrawInfo *i_drawInfo)
Definition d_particle.h:411
void removeScene(bool)
Definition d_particle.cpp:1299
void draw2DmenuBack(JPADrawInfo *i_drawInfo)
Definition d_particle.h:424
static dPa_particleTracePcallBack_c mParticleTracePCB
Definition d_particle.h:510
static dPa_light8PcallBack mLight8PcallBack
Definition d_particle.h:505
static dPa_gen_b_light8EcallBack m_b_Light8EcallBack
Definition d_particle.h:506
u32 setStopContinue(u32)
Definition d_particle.cpp:1775
static dPa_particleTracePcallBack_c * getParticleTracePCB()
Definition d_particle.h:486
void calcMenu()
Definition d_particle.cpp:1335
JKRSolidHeap * mSceneHeap
Definition d_particle.h:517
static s32 getPolyColor(cBgS_PolyInfo &, int, _GXColor *, _GXColor *, u8 *, f32 *)
Definition d_particle.cpp:1593
void createRoomScene()
Definition d_particle.cpp:1221
void createCommon(void const *)
Definition d_particle.cpp:1191
void drawNormal(JPADrawInfo *i_drawInfo)
Definition d_particle.h:406
void drawProjection(JPADrawInfo *i_drawInfo)
Definition d_particle.h:409
u32 getHeapSize()
Definition d_particle.h:431
static dPa_gen_d_light8EcallBack m_d_Light8EcallBack
Definition d_particle.h:508
static dPa_gen_d_light8PcallBack * getGen_d_Light8PcallBack()
Definition d_particle.h:470
static Mtx mWindViewMatrix
Definition d_particle.h:500
JKRExpHeap * m_resHeap
Definition d_particle.h:516
static dPa_fsenthPcallBack * getFsenthPcallBack()
Definition d_particle.h:490
void drawNormalFog(JPADrawInfo *i_drawInfo)
Definition d_particle.h:407
bool removeRoomScene(bool)
Definition d_particle.cpp:1279
void calc3D()
Definition d_particle.cpp:1318
u8 field_0x19
Definition d_particle.h:521
int getParticleNum()
Definition d_particle.h:460
void drawFogPri2(JPADrawInfo *i_drawInfo)
Definition d_particle.h:415
static JPAParticleCallBack * getWaterBubblePcallBack()
Definition d_particle.h:494
u32 setNormal(u32 param_0, u16 param_1, const cXyz *i_pos, const dKy_tevstr_c *param_3, const csXyz *i_rotation, const cXyz *i_scale, u8 i_alpha, dPa_levelEcallBack *param_7, s8 param_8, const GXColor *param_9, const GXColor *param_10, const cXyz *param_11, f32 param_12)
Definition d_particle.h:390
JPABaseEmitter * setNormal(u16 param_1, const cXyz *i_pos, const dKy_tevstr_c *param_3, const csXyz *i_rotation, const cXyz *i_scale, u8 i_alpha, dPa_levelEcallBack *param_7, s8 param_8, const GXColor *param_9, const GXColor *param_10, const cXyz *param_11, f32 param_12)
Definition d_particle.h:398
void draw2Dfore(JPADrawInfo *i_drawInfo)
Definition d_particle.h:421
void drawFogPri3(JPADrawInfo *i_drawInfo)
Definition d_particle.h:416
JKRSolidHeap * mHeap
Definition d_particle.h:514
static dPa_gen_b_light8PcallBack * getGen_b_Light8PcallBack()
Definition d_particle.h:466
void calc2D()
Definition d_particle.cpp:1329
u32 setSimple(u16, cXyz const *, dKy_tevstr_c const *, u8, _GXColor const &, _GXColor const &, int, f32)
Definition d_particle.cpp:1650
static dPa_setColorEcallBack mLifeBall[3]
Definition d_particle.h:1133
static dPa_selectTexEcallBack * getTsuboSelectTexEcallBack(int idx)
Definition d_particle.h:454
void levelExecute(u32 param_0)
Definition d_particle.h:436
u16 setCommonPoly(u32 *, cBgS_PolyInfo *, cXyz const *, cXyz const *, dKy_tevstr_c const *, u32, u32, csXyz const *, cXyz const *, s8)
Definition d_particle.cpp:1823
void levelAllForceOnEventMove()
Definition d_particle.h:434
static dPa_gen_b_light8EcallBack * getGen_b_Light8EcallBack()
Definition d_particle.h:474
u8 field_0x18
Definition d_particle.h:520
static BOOL isStatus(u8 status)
Definition d_particle.h:452
static void offStatus(u8 status)
Definition d_particle.h:444
void drawFogPri1(JPADrawInfo *i_drawInfo)
Definition d_particle.h:414
static void onStatus(u8 status)
Definition d_particle.h:443
JPAResourceManager * mCommonResMng
Definition d_particle.h:515
void drawNormalPri0_A(JPADrawInfo *i_drawInfo)
Definition d_particle.h:410
static dPa_selectTexEcallBack mTsubo[8]
Definition d_particle.h:1116
static dPa_light8EcallBack mLight8EcallBack
Definition d_particle.h:504
void createScene(void const *)
Definition d_particle.cpp:1261
void draw2Dback(JPADrawInfo *i_drawInfo)
Definition d_particle.h:422
static dPa_gen_b_light8PcallBack m_b_Light8PcallBack
Definition d_particle.h:507
u8 field_0x1b
Definition d_particle.h:523
u32 getSceneHeapSize()
Definition d_particle.h:432
static dPa_gen_d_light8PcallBack m_d_Light8PcallBack
Definition d_particle.h:509
static dPa_light8PcallBack * getLight8PcallBack()
Definition d_particle.h:462
void drawFogPri0_A(JPADrawInfo *i_drawInfo)
Definition d_particle.h:412
u8 field_0x1a
Definition d_particle.h:522
level_c field_0x210
Definition d_particle.h:529
void setWaterRipple(u32 *, cBgS_PolyInfo &, cXyz const *, f32, dKy_tevstr_c const *, cXyz const *, s8)
Definition d_particle.cpp:1426
void draw2DmenuFore(JPADrawInfo *i_drawInfo)
Definition d_particle.h:423
void drawNormalP1(JPADrawInfo *i_drawInfo)
Definition d_particle.h:408
void * getSceneRes()
Definition d_particle.h:429
u32 setPoly(u32, u16, cBgS_PolyInfo &, cXyz const *, dKy_tevstr_c const *, csXyz const *, cXyz const *, int, dPa_levelEcallBack *, s8, cXyz const *)
Definition d_particle.cpp:1758
void drawDarkworld(JPADrawInfo *i_drawInfo)
Definition d_particle.h:418
bool newSimple(u16, u8, u32 *)
Definition d_particle.cpp:1636
bool readScene(u8, mDoDvdThd_toMainRam_c **)
Definition d_particle.cpp:1243
u8 mSceneCount
Definition d_particle.h:531
static u8 getRM_ID(u16)
Definition d_particle.cpp:1187
static dPa_gen_d_light8EcallBack * getGen_d_Light8EcallBack()
Definition d_particle.h:478
JKRExpHeap * getResHeap()
Definition d_particle.h:427
dPa_simpleEcallBack field_0x1c[48]
Definition d_particle.h:525
void forceOnEventMove(u32 param_0)
Definition d_particle.h:387
void drawFogScreen(JPADrawInfo *i_drawInfo)
Definition d_particle.h:419
void draw(JPADrawInfo *, u8)
Definition d_particle.cpp:1348
int getEmitterNum()
Definition d_particle.h:459
void setHitMark(u16, fopAc_ac_c *, cXyz const *, csXyz const *, cXyz const *, u32)
Definition d_particle.cpp:1364
dPa_control_c()
Definition d_particle.cpp:1163
void drawFogPri4(JPADrawInfo *i_drawInfo)
Definition d_particle.h:417
JKRSolidHeap * getHeap()
Definition d_particle.h:426
u32 setSimpleFoot(u32, u32 *, cBgS_PolyInfo &, cXyz const *, dKy_tevstr_c const *, int, csXyz const *, cXyz const *, dPa_levelEcallBack *, s8, cXyz const *)
Definition d_particle.cpp:1785
void draw2Dgame(JPADrawInfo *i_drawInfo)
Definition d_particle.h:420
static dPa_light8EcallBack * getLight8EcallBack()
Definition d_particle.h:482
JKRSolidHeap * getSceneHeap()
Definition d_particle.h:428
JPAResourceManager * mSceneResMng
Definition d_particle.h:519
Definition d_particle.h:155
const cXyz * field_0x8
Definition d_particle.h:173
int isEnd()
Definition d_particle.h:168
dPa_followEcallBack(u8 param_0=0, u8 param_1=0)
Definition d_particle.cpp:57
virtual void cleanup()
Definition d_particle.h:163
virtual ~dPa_followEcallBack()
Definition d_particle.h:159
void remove()
Definition d_particle.h:166
u8 field_0x13
Definition d_particle.h:178
virtual void setup(JPABaseEmitter *, cXyz const *, csXyz const *, s8)
Definition d_particle.cpp:88
u8 field_0x11
Definition d_particle.h:176
virtual void end()
Definition d_particle.cpp:107
u8 field_0x10
Definition d_particle.h:175
JPABaseEmitter * getEmitter()
Definition d_particle.h:167
JPABaseEmitter * mpEmitter
Definition d_particle.h:172
virtual void execute(JPABaseEmitter *)
Definition d_particle.cpp:64
const csXyz * field_0xc
Definition d_particle.h:174
u8 field_0x12
Definition d_particle.h:177
virtual void draw(JPABaseEmitter *)
Definition d_particle.cpp:83
Definition d_particle.h:181
virtual ~dPa_fsenthPcallBack()
Definition d_particle.h:183
virtual void execute(JPABaseEmitter *, JPABaseParticle *)
Definition d_particle.cpp:1918
virtual void draw(JPABaseEmitter *, JPABaseParticle *)
Definition d_particle.cpp:1930
Definition d_particle.h:198
virtual void setup(JPABaseEmitter *, cXyz const *, csXyz const *, s8)
Definition d_particle.cpp:142
virtual void draw(JPABaseEmitter *)
Definition d_particle.cpp:415
virtual void drawAfter(JPABaseEmitter *i_emitter)
Definition d_particle.h:201
Definition d_particle.h:225
virtual void execute(JPABaseEmitter *, JPABaseParticle *)
Definition d_particle.cpp:1938
virtual void draw(JPABaseEmitter *, JPABaseParticle *)
Definition d_particle.cpp:2068
virtual ~dPa_gen_b_light8PcallBack()
Definition d_particle.h:227
Definition d_particle.h:208
virtual void drawAfter(JPABaseEmitter *i_emitter)
Definition d_particle.h:211
virtual void setup(JPABaseEmitter *, cXyz const *, csXyz const *, s8)
Definition d_particle.cpp:151
virtual void draw(JPABaseEmitter *)
Definition d_particle.cpp:419
Definition d_particle.h:232
virtual void draw(JPABaseEmitter *, JPABaseParticle *)
Definition d_particle.cpp:2156
virtual void execute(JPABaseEmitter *, JPABaseParticle *)
Definition d_particle.cpp:1942
virtual ~dPa_gen_d_light8PcallBack()
Definition d_particle.h:234
Definition d_particle.h:251
void setRate(f32 rate)
Definition d_particle.h:261
int mMaxCnt
Definition d_particle.h:266
cXyz const * field_0xc
Definition d_particle.h:267
void setMaxCnt(int i_maxCnt)
Definition d_particle.h:262
virtual void executeAfter(JPABaseEmitter *)
Definition d_particle.cpp:2279
void setOldPosP(cXyz const *, cXyz const *)
Definition d_particle.cpp:2274
virtual ~dPa_hermiteEcallBack_c()
Definition d_particle.h:257
virtual void setup(JPABaseEmitter *, cXyz const *, csXyz const *, s8)
Definition d_particle.cpp:2314
dPa_hermiteEcallBack_c()
Definition d_particle.h:253
cXyz const * field_0x10
Definition d_particle.h:268
cXyz const * field_0x14
Definition d_particle.h:269
f32 mRate
Definition d_particle.h:265
Definition d_particle.h:22
virtual void cleanup()
Definition d_particle.h:26
virtual ~dPa_levelEcallBack()
Definition d_particle.h:24
virtual void setup(JPABaseEmitter *, const cXyz *, const csXyz *, s8)=0
Definition d_particle.h:188
virtual void drawAfter(JPABaseEmitter *i_emitter)
Definition d_particle.h:191
virtual void setup(JPABaseEmitter *, cXyz const *, csXyz const *, s8)
Definition d_particle.cpp:134
virtual void draw(JPABaseEmitter *)
Definition d_particle.cpp:411
Definition d_particle.h:218
virtual void draw(JPABaseEmitter *, JPABaseParticle *)
Definition d_particle.cpp:1946
virtual ~dPa_light8PcallBack()
Definition d_particle.h:220
virtual void execute(JPABaseEmitter *, JPABaseParticle *)
Definition d_particle.cpp:1934
Definition d_particle.h:70
static dPa_modelEcallBack mEcallback
Definition d_particle.h:119
static dPa_modelPcallBack mPcallback
Definition d_particle.h:121
static void create(u8)
Definition d_particle.cpp:628
dPa_modelEcallBack()
Definition d_particle.h:95
static model_c * mModel
Definition d_particle.h:122
static void setModel(JPABaseEmitter *param_0, J3DModelData *param_1, const dKy_tevstr_c &param_2, u8 param_3, J3DAnmTexPattern *param_4, u8 param_5)
Definition d_particle.h:112
virtual void drawAfter(JPABaseEmitter *param_0)
Definition d_particle.h:109
static u8 mNum
Definition d_particle.h:124
static int setModel(JPABaseEmitter *, J3DModelData *, dKy_tevstr_c const &, u8, void *, u8, u8)
Definition d_particle.cpp:641
static u8 getRotAxis(JPABaseEmitter *)
Definition d_particle.cpp:702
static void remove()
Definition d_particle.cpp:634
static void cleanupModel(JPABaseEmitter *)
Definition d_particle.cpp:683
static model_c * getModel(JPABaseEmitter *)
Definition d_particle.cpp:693
static void setupModel(JPABaseEmitter *)
Definition d_particle.cpp:665
virtual void draw(JPABaseEmitter *)
Definition d_particle.cpp:601
virtual void setup(JPABaseEmitter *, cXyz const *, csXyz const *, s8)
Definition d_particle.cpp:612
static void drawModel(JPABaseEmitter *, f32(*)[4])
Definition d_particle.cpp:674
static dPa_modelEcallBack & getEcallback()
Definition d_particle.h:118
static void resetModel(JPABaseEmitter *)
Definition d_particle.cpp:656
Definition d_particle.h:65
virtual void draw(JPABaseEmitter *, JPABaseParticle *)
Definition d_particle.cpp:436
Definition d_particle.h:245
virtual void execute(JPABaseEmitter *, JPABaseParticle *)
Definition d_particle.cpp:2321
virtual ~dPa_particleTracePcallBack_c()
Definition d_particle.h:247
Definition d_particle.h:128
u8 field_0x4
Definition d_particle.h:138
virtual void setup(JPABaseEmitter *, cXyz const *, csXyz const *, s8)
Definition d_particle.h:136
virtual ~dPa_selectTexEcallBack()
Definition d_particle.h:134
dPa_selectTexEcallBack(u8 param_0)
Definition d_particle.h:130
virtual void draw(JPABaseEmitter *)
Definition d_particle.cpp:712
Definition d_particle.h:141
dPa_setColorEcallBack(const GXColor &color)
Definition d_particle.h:143
virtual ~dPa_setColorEcallBack()
Definition d_particle.h:145
virtual void draw(JPABaseEmitter *i_emitter)
Definition d_particle.h:146
GXColor mColor
Definition d_particle.h:152
virtual void setup(JPABaseEmitter *, cXyz const *, csXyz const *, s8)
Definition d_particle.h:150
Definition d_particle.h:272
cXyz field_0x00
Definition d_particle.h:277
GXColor field_0x10
Definition d_particle.h:279
GXColor field_0x0c
Definition d_particle.h:278
dPa_simpleData_c()
Definition d_particle.cpp:772
~dPa_simpleData_c()
Definition d_particle.cpp:770
Definition d_particle.h:36
u16 field_0xe
Definition d_particle.h:55
virtual void executeAfter(JPABaseEmitter *)
Definition d_particle.cpp:721
u8 field_0xa
Definition d_particle.h:53
u16 getID()
Definition d_particle.h:49
dPa_simpleEcallBack()
Definition d_particle.cpp:716
u16 mID
Definition d_particle.h:52
dPa_simpleData_c * mData
Definition d_particle.h:56
JPABaseEmitter * createEmitter(JPAEmitterManager *)
Definition d_particle.cpp:776
virtual ~dPa_simpleEcallBack()
Definition d_particle.h:44
JPABaseEmitter * mEmitter
Definition d_particle.h:51
s16 field_0xc
Definition d_particle.h:54
JPABaseEmitter * create(JPAEmitterManager *, u16, u8)
Definition d_particle.cpp:759
virtual void draw(JPABaseEmitter *)
Definition d_particle.cpp:752
void removeEmitter()
Definition d_particle.h:48
u32 set(cXyz const *, dKy_tevstr_c const *, u8, _GXColor const &, _GXColor const &, int, f32)
Definition d_particle.cpp:800
Definition d_particle.h:239
virtual ~dPa_wbPcallBack_c()
Definition d_particle.h:241
virtual void execute(JPABaseEmitter *, JPABaseParticle *)
Definition d_particle.cpp:1907
Definition d_particle.h:59
virtual ~dPa_windPcallBack()
Definition d_particle.h:61
virtual void execute(JPABaseEmitter *, JPABaseParticle *)
Definition d_particle.cpp:903
Definition f_op_actor.h:271
Definition m_Do_dvd_thread.h:114
void dPa_cleanupGX()
Definition d_particle.cpp:34
int cXyz int * param_2
Definition d_path.cpp:106
Definition c_xyz.h:7
Definition d_particle.h:72
void draw(f32(*)[4])
Definition d_particle.cpp:578
bool set(J3DModelData *, dKy_tevstr_c const &, u8, void *, u8, u8)
Definition d_particle.cpp:480
u8 mRotAxis
Definition d_particle.h:89
u8 field_0x393
Definition d_particle.h:92
u8 getRotAxis()
Definition d_particle.h:83
J3DModelData * mModelData
Definition d_particle.h:86
void setup()
Definition d_particle.cpp:542
void cleanup()
Definition d_particle.cpp:564
dKy_tevstr_c field_0x8
Definition d_particle.h:88
u8 field_0x392
Definition d_particle.h:91
model_c()
Definition d_particle.h:77
J3DModelData * getModelData()
Definition d_particle.h:84
void reset()
Definition d_particle.h:79
u8 field_0x391
Definition d_particle.h:90
J3DAnmBase * field_0x4
Definition d_particle.h:87