sead
Loading...
Searching...
No Matches
eft_EmitterSet.h
Go to the documentation of this file.
1#ifndef EFT_EMITTER_SET_H_
2#define EFT_EMITTER_SET_H_
3
4#include <nw/eft/eft_typeDef.h>
5#include <nw/eft/eft_Data.h>
6#include <nw/eft/eft_System.h>
7#include <nw/eft/eft_Resource.h>
8#include <nw/eft/eft_Emitter.h>
9
10namespace nw { namespace eft {
11
12struct EmitterInstance;
13
15{
16public:
17 enum
18 {
21 };
22
23public:
24 void Reset()
25 {
26 mEmissionRatio = 1.0f;
27 mEmissionInterval = 1.0f;
28 mLife = 1.0f;
30 }
31
32 void SetEmissionRatio(s32 ratio)
33 {
34 mEmissionRatio = static_cast<f32>(ratio) / static_cast<f32>(EFT_EMT_CTRLR_SCALE_ONE);
35 }
36
37 void SetEmissionRatio(f32 ratio)
38 {
39 mEmissionRatio = ratio;
40 }
41
42 void SetEmissionInterval(s32 ratio)
43 {
44 mEmissionInterval = static_cast<f32>(ratio) / static_cast<f32>(EFT_EMT_CTRLR_SCALE_ONE);
45 }
46
47 void SetEmissionInterval(f32 ratio)
48 {
49 mEmissionInterval = ratio;
50 }
51
52 void SetLife(s32 ratio)
53 {
54 mLife = static_cast<f32>(ratio) / static_cast<f32>(EFT_EMT_CTRLR_SCALE_ONE);
55 }
56
57 void SetLife(f32 ratio)
58 {
59 mLife = ratio;
60 }
61
62 void SetVisible(bool isVisible)
63 {
64 if (isVisible)
66 else
68 }
69
70 void SetViewFlag(DrawViewFlag flag)
71 {
72 mDrawViewFlag = flag;
73 }
74
75 void SetStopDraw(bool isStopDraw)
76 {
77 if (isStopDraw)
79 else
81 }
82
83 bool IsStopDraw() const
84 {
86 return true;
87 else
88 return false;
89 }
90
92 {
93 return mDrawViewFlag;
94 }
95
96 static s32 F32ToScale(f32 val)
97 {
98 return (s32)(val * (f32)EFT_EMT_CTRLR_SCALE_ONE);
99 }
100
101 void SetFollowType(PtclFollowType followType);
102 void SetEmitterColor0(const nw::ut::FloatColor& color);
103 void SetEmitterColor1(const nw::ut::FloatColor& color);
104
105private:
108 f32 mLife;
111
112 friend class System;
113 friend class EmitterSimpleCalc;
114 friend class EmitterComplexCalc;
115 friend class EmitterCalc;
116};
117static_assert(sizeof(EmitterController) == 0x14, "nw::eft::EmitterController size mismatch");
118
119class System;
120
121class EmitterSet
122{
123public:
124 EmitterSet()
125 : mNumEmitter(0)
130 {
131 mInitialRoate.x = 0;
132 mInitialRoate.y = 0;
133 mInitialRoate.z = 0;
134
135 for (u32 i = 0; i < EFT_EMITTER_INSET_NUM; i++)
136 mInstance[i] = NULL;
137 }
138
139 void SetSystem(System* sys)
140 {
141 mSystem = sys;
142 }
143
145 {
146 return mSystem;
147 }
148
149 s32 GetResourceID() const
150 {
151 return mResourceID;
152 }
153
154 s32 GetEmitterSetID() const
155 {
156 return mEmitterSetID;
157 }
158
159 u32 GetCreateID() const
160 {
161 return mEmitterCreateID;
162 }
163
164 const char* GetEmitterSetName() const
165 {
166 return mSystem->SearchEmitterSetName( mEmitterSetID, mResourceID );
167 }
168
169 s32 GetNumEmitter() const
170 {
171 return mNumEmitter;
172 }
173
174 s32 GetNumAliveEmitter() const
175 {
176 return mNumEmitter;
177 }
178
179 const EmitterInstance* GetAliveEmitter( u32 idx );
180
182 {
183 return mNumEmitterFirst;
184 }
185
186 s32 GetEmitterCounter(const char* emitterName);
187
188 s32 GetEmitterCounter(s32 emitterID);
189
190 u8 GetGroupID() const
191 {
192 return static_cast<u8>(mGroupID);
193 }
194
195 EmitterSet* GetNext() const
196 {
197 return mNext;
198 }
199
200 bool IsLoopEffect() const;
201
202 bool IsAlive() const
203 {
204 return mNumEmitter > 0;
205 }
206
207 bool IsHaveInfinityEmitter() const
208 {
210 }
211
213 {
214 return mSRT;
215 }
216
218 {
219 return mRT;
220 }
221
222 void SetDrawPriority(u8 priority)
223 {
224 mDrawPriority = priority;
225 }
226
227 u8 GetDrawPriority() const
228 {
229 return mDrawPriority;
230 }
231
232 u32 GetUserData() const
233 {
234 return mSystem->GetResource(mResourceID)->GetUserData(mEmitterSetID);
235 }
236
237 u8 GetUserDataNum1() const
238 {
239 return mSystem->GetResource(mResourceID)->GetUserDataNum1(mEmitterSetID);
240 }
241
242 u8 GetUserDataNum2() const
243 {
244 return mSystem->GetResource(mResourceID)->GetUserDataNum2(mEmitterSetID);
245 }
246
247 u16 GetUserDataBit() const
248 {
249 return mSystem->GetResource(mResourceID)->GetUserDataBit(mEmitterSetID);
250 }
251
252 void SetMtx(const nw::math::MTX34& mtx);
253
254 void SetMtxFast(const nw::math::MTX34& mtx)
255 {
256 mSRT = mRT = mtx;
257 mAutoCalcScale = nw::math::VEC3(1.0f, 1.0f, 1.0f);
259 }
260
261 void SetMtxFast(const nw::math::MTX34& mtx, f32 scale)
262 {
263 mSRT.m[0][0] = mtx.m[0][0] * scale;
264 mSRT.m[1][0] = mtx.m[1][0] * scale;
265 mSRT.m[2][0] = mtx.m[2][0] * scale;
266
267 mSRT.m[0][1] = mtx.m[0][1] * scale;
268 mSRT.m[1][1] = mtx.m[1][1] * scale;
269 mSRT.m[2][1] = mtx.m[2][1] * scale;
270
271 mSRT.m[0][2] = mtx.m[0][2] * scale;
272 mSRT.m[1][2] = mtx.m[1][2] * scale;
273 mSRT.m[2][2] = mtx.m[2][2] * scale;
274
275 mSRT.m[0][3] = mtx.m[0][3];
276 mSRT.m[1][3] = mtx.m[1][3];
277 mSRT.m[2][3] = mtx.m[2][3];
278
279 mRT = mtx;
280 mAutoCalcScale.x = scale;
281 mAutoCalcScale.y = scale;
282 mAutoCalcScale.z = scale;
284 }
285
286 void SetMtxFast(const nw::math::MTX34& mtx, const nw::math::VEC3& scale)
287 {
288 mSRT.m[0][0] = mtx.m[0][0] * scale.x;
289 mSRT.m[1][0] = mtx.m[1][0] * scale.x;
290 mSRT.m[2][0] = mtx.m[2][0] * scale.x;
291
292 mSRT.m[0][1] = mtx.m[0][1] * scale.y;
293 mSRT.m[1][1] = mtx.m[1][1] * scale.y;
294 mSRT.m[2][1] = mtx.m[2][1] * scale.y;
295
296 mSRT.m[0][2] = mtx.m[0][2] * scale.z;
297 mSRT.m[1][2] = mtx.m[1][2] * scale.z;
298 mSRT.m[2][2] = mtx.m[2][2] * scale.z;
299
300 mSRT.m[0][3] = mtx.m[0][3];
301 mSRT.m[1][3] = mtx.m[1][3];
302 mSRT.m[2][3] = mtx.m[2][3];
303
304 mRT = mtx;
305 mAutoCalcScale = scale;
307 }
308
309 void SetPos(const nw::math::VEC3& pos)
310 {
311 mSRT.SetIdentity();
312 mSRT.SetTranslate(pos);
313 mRT = mSRT;
315 }
316
317 void SetPos(const nw::math::VEC3& pos, f32 scale)
318 {
319 mRT.SetIdentity();
320 mRT.SetTranslate(pos);
321 mSRT = mRT;
322 mSRT.m[0][0] *= scale;
323 mSRT.m[1][1] *= scale;
324 mSRT.m[2][2] *= scale;
325 mAutoCalcScale.x = scale;
326 mAutoCalcScale.y = scale;
327 mAutoCalcScale.z = scale;
329 }
330
331 void SetPos(const nw::math::VEC3& pos, const nw::math::VEC3& scale)
332 {
333 mRT.SetIdentity();
334 mRT.SetTranslate(pos);
335 mSRT = mRT;
336 mSRT.m[0][0] *= scale.x;
337 mSRT.m[1][1] *= scale.y;
338 mSRT.m[2][2] *= scale.z;
339 mAutoCalcScale = scale;
341 }
342
343 void GetPos(nw::math::VEC3& pos) const
344 {
345 pos.x = mSRT.m[0][3];
346 pos.y = mSRT.m[1][3];
347 pos.z = mSRT.m[2][3];
348 }
349
350 void Kill();
351 void KillInfinityEmitter();
352
353 void Reset(const nw::math::MTX34& matLW)
354 {
355 mSRT = matLW;
356 mRT = matLW;
357 mAutoCalcScale = nw::math::VEC3(1.0f, 1.0f, 1.0f);
358 mEmitterScale = nw::math::VEC3(1.0f, 1.0f, 1.0f);
359 mEmissionParticleScale = nw::math::VEC2(1.0f, 1.0f);
360 mParticlScaleForCalc.x = 1.0f;
361 mParticlScaleForCalc.y = 1.0f;
362 mStartFrame = 0;
363
364 mParticlScale.x = mParticlScale.y = 1.0f;
365 mColor.r = mColor.g = mColor.b = mColor.a = 1.0f;
366 mFigureVel = mDirectionalVel = mRandomVel = 1.0f;
367 mVelAdd.x = mVelAdd.y = mVelAdd.z = 0.0f;
368 mIsSetDirectional = false;
369 mFadeRequest = false;
370 mIsStopCalc = false;
371 mIsStopDraw = false;
373 mNumParticleEmissionPoint = 0;
374
375 mDrawPriority = EFT_DEFAULT_DRAW_PRIORITY;
376 mDrawPathFlag = 0;
377
378 mInitialRoate.Set(0.0f, 0.0f, 0.0f);
379
380 for (u32 i = 0; i < EFT_EMITTER_INSET_NUM; ++i)
381 mInstance[i] = NULL;
382 }
383
384 void Fade()
385 {
386 mFadeRequest = true;
387 }
388
389 bool IsFadeRequest() const
390 {
391 return mFadeRequest;
392 }
393
394 void CancelFade()
395 {
396 mFadeRequest = false;
397 }
398
399 void SetParticleScale(f32 scale)
400 {
401 mParticlScale.x = mParticlScale.y = scale;
403 }
404
405 void SetParticleScale(f32 scaleX, f32 scaleY)
406 {
407 mParticlScale.x = scaleX;
408 mParticlScale.y = scaleY;
410 }
411
412 void SetParticleScale(const nw::math::VEC2& scale)
413 {
414 mParticlScale = scale;
416 }
417
418 const nw::math::VEC2& GetParticleScale() const
419 {
420 return mParticlScale;
421 }
422
423 void SetEmissionParticleScale(f32 scale)
424 {
425 mEmissionParticleScale.x = mEmissionParticleScale.y = scale;
426 }
427
428 void SetEmissionParticleScale(f32 scaleX, f32 scaleY)
429 {
430 mEmissionParticleScale.x = scaleX;
431 mEmissionParticleScale.y = scaleY;
432 }
433
434 void SetEmissionParticleScale(const nw::math::VEC2& scale)
435 {
436 mEmissionParticleScale = scale;
437 }
438
439 const nw::math::VEC2& GetEmissionParticleScale() const
440 {
441 return mEmissionParticleScale;
442 }
443
444 void SetEmitterScale(const nw::math::VEC3& scale)
445 {
446 mEmitterScale = scale;
447 }
448
449 const nw::math::VEC3& GetEmitterScale() const
450 {
451 return mEmitterScale;
452 }
453
454 const nw::math::VEC2& GetParticleScaleForCalc() const
455 {
456 return mParticlScaleForCalc;
457 }
458
459 void SetAlpha(f32 alpha)
460 {
461 mColor.a = alpha;
462 }
463
464 void SetColor(f32 r, f32 g, f32 b)
465 {
466 mColor.r = r;
467 mColor.g = g;
468 mColor.b = b;
469 }
470
471 void SetColor(const nw::ut::FloatColor& color)
472 {
473 mColor = color;
474 }
475
476 const nw::ut::FloatColor& GetColor() const
477 {
478 return mColor;
479 }
480
481 void SetAllDirectionalVel(f32 velScale)
482 {
483 mFigureVel = velScale;
484 }
485
487 {
488 return mFigureVel;
489 }
490
491 void SetDirectionalVel(f32 velScale)
492 {
493 mDirectionalVel = velScale;
494 }
495
496 f32 GetDirectionalVel() const
497 {
498 return mDirectionalVel;
499 }
500
501 void SetRandomVel(f32 velScale)
502 {
503 mRandomVel = velScale;
504 }
505
506 f32 GetRandomVel() const
507 {
508 return mRandomVel;
509 }
510
511 void SetAddVel(const nw::math::VEC3& velAdd)
512 {
513 mVelAdd = velAdd;
514 }
515
516 const nw::math::VEC3& GetVelAdd() const
517 {
518 return mVelAdd;
519 }
520
521 void SetDirectional(const nw::math::VEC3& dir)
522 {
523 mDirectional = dir;
524 mIsSetDirectional = true;
525 }
526
527 const nw::math::VEC3& GetDirectional() const
528 {
529 return mDirectional;
530 }
531
532 void SetInitRotate(const nw::math::VEC3& rot)
533 {
534 mInitialRoate = rot;
535 }
536
537 /* void SetInitRotate(const Vector3i& rot)
538 {
539 mInitialRoate.x = NW_MATH_IDX_TO_RAD(rot.x);
540 mInitialRoate.y = NW_MATH_IDX_TO_RAD(rot.y);
541 mInitialRoate.z = NW_MATH_IDX_TO_RAD(rot.z);
542 } */
543
544 void DisableDirectional()
545 {
546 mIsSetDirectional = false;
547 }
548
549 bool IsSetDirectional() const
550 {
551 return mIsSetDirectional;
552 }
553
554 void SetStartFrame(s32 frame)
555 {
556 mStartFrame = frame;
557 }
558
559 s32 GetStartFrame() const
560 {
561 return mStartFrame;
562 }
563
565 {
566 return &mController[ix];
567 }
568
570
571 void SetParticleEmissionPoints(s32 numPoint, nw::math::VEC3* points)
572 {
573 mNumParticleEmissionPoint = numPoint;
574 mParticleEmissionPoints = points;
575 }
576
577 void SetManualParticleEmission(bool isManual)
578 {
579 mStartFrame = isManual ? 0x7fffffff : 0;
580 }
581
582 void EmitParticle(const nw::math::VEC3& pos);
583
584 void ForceCalc(s32 numLoop);
585
586 void SetStopCalcAndDraw(bool isStopCalcAndDraw)
587 {
588 mIsStopCalc = isStopCalcAndDraw;
589 mIsStopDraw = isStopCalcAndDraw;
590 }
591
592 bool IsStopCalcAndDraw() const
593 {
594 return mIsStopCalc && mIsStopDraw;
595 }
596
597 void SetStopCalc(bool isStopCalc);
598
599 bool IsStopCalc() const
600 {
601 return mIsStopCalc;
602 }
603
604 void SetStopDraw(bool isStopDraw);
605
606 bool IsStopDraw() const
607 {
608 return mIsStopDraw;
609 }
610
611 void SetStopDraw(u32 emitterID, bool isStopDraw)
612 {
613 mController[emitterID].SetStopDraw(isStopDraw);
614 }
615
616 void SetRandomSeed(u32 seed);
617
618 u32 GetRuntimeUserData() const
619 {
620 return mRuntimeUserData;
621 }
622
623 void SetRuntimeUserData(u32 data)
624 {
625 mRuntimeUserData = data;
626 }
627
629
630private:
642
643 nw::math::MTX34 mSRT;
644 nw::math::MTX34 mRT;
646
651
662
665
666 bool mFadeRequest;
668 bool mIsStopCalc;
669 bool mIsStopDraw;
671
674
675 inline void updateParticleScale_()
676 {
677 mParticlScaleForCalc.x = mParticlScale.x * mAutoCalcScale.x;
678 mParticlScaleForCalc.y = mParticlScale.y * mAutoCalcScale.y;
679 }
680
681 friend class System;
682 friend class EmitterSimpleCalc;
683 friend class EmitterComplexCalc;
684 friend class EmitterCalc;
685 friend class Renderer;
686};
687static_assert(sizeof(EmitterSet) == 0x294, "nw::eft::EmitterSet size mismatch");
688
689} } // namespace nw::eft
690
691#endif // EFT_EMITTER_SET_H_
void SetFollowType(PtclFollowType followType)
Definition eft_EmitterSet.cpp:7
f32 mEmissionRatio
Definition eft_EmitterSet.h:106
void SetEmitterColor0(const nw::ut::FloatColor &color)
Definition eft_EmitterSet.cpp:12
EmitterInstance * mEmitter
Definition eft_EmitterSet.h:110
void SetEmissionRatio(s32 ratio)
DrawViewFlag mDrawViewFlag
Definition eft_EmitterSet.h:109
DrawViewFlag GetDrawViewFlag() const
static s32 F32ToScale(f32 val)
void SetEmissionInterval(s32 ratio)
f32 mLife
Definition eft_EmitterSet.h:108
f32 mEmissionInterval
Definition eft_EmitterSet.h:107
void SetVisible(bool isVisible)
void SetViewFlag(DrawViewFlag flag)
void SetStopDraw(bool isStopDraw)
void SetEmitterColor1(const nw::ut::FloatColor &color)
Definition eft_EmitterSet.cpp:19
void SetParticleScale(const nw::math::VEC2 &scale)
void SetInitRotate(const nw::math::VEC3 &rot)
s32 GetEmitterSetID() const
void UpdateEmitterFromResInfo()
void SetSystem(System *sys)
EmitterController * GetEmitterController(s32 ix)
void SetStopCalc(bool isStopCalc)
Definition eft_EmitterSet.cpp:139
bool IsFadeRequest() const
void SetEmissionParticleScale(f32 scaleX, f32 scaleY)
void SetMtx(const nw::math::MTX34 &mtx)
Definition eft_EmitterSet.cpp:44
u8 _28e[EFT_CPU_CORE_MAX]
Definition eft_EmitterSet.h:673
const EmitterController * GetAliveEmitterController(s32 ix)
u8 GetUserDataNum1() const
nw::math::VEC3 mAutoCalcScale
Definition eft_EmitterSet.h:645
void SetStopDraw(bool isStopDraw)
Definition eft_EmitterSet.cpp:144
s32 GetStartFrame() const
nw::math::MTX34 & GetSRTMatrix()
void SetColor(f32 r, f32 g, f32 b)
s32 GetNumAliveEmitter() const
f32 GetRandomVel() const
f32 mDirectionalVel
Definition eft_EmitterSet.h:654
void Kill()
Definition eft_EmitterSet.cpp:102
nw::math::VEC3 mDirectional
Definition eft_EmitterSet.h:657
f32 GetDirectionalVel() const
System * mSystem
Definition eft_EmitterSet.h:631
f32 GetAllDirectionalVel() const
nw::math::VEC2 mEmissionParticleScale
Definition eft_EmitterSet.h:648
u32 mDrawPathFlag
Definition eft_EmitterSet.h:641
u16 GetUserDataBit() const
nw::math::MTX34 mSRT
Definition eft_EmitterSet.h:643
bool mIsStopCalc
Definition eft_EmitterSet.h:668
s32 GetEmitterCounter(s32 emitterID)
const char * GetEmitterSetName() const
void SetEmissionParticleScale(const nw::math::VEC2 &scale)
nw::math::VEC2 mParticlScaleForCalc
Definition eft_EmitterSet.h:649
bool mIsSetDirectional
Definition eft_EmitterSet.h:667
s32 mNumParticleEmissionPoint
Definition eft_EmitterSet.h:660
void SetColor(const nw::ut::FloatColor &color)
EmitterController mController[EFT_EMITTER_INSET_NUM]
Definition eft_EmitterSet.h:636
s32 mNumEmitterFirst
Definition eft_EmitterSet.h:633
void SetStartFrame(s32 frame)
void SetRandomSeed(u32 seed)
Definition eft_EmitterSet.cpp:149
const EmitterInstance * GetAliveEmitter(u32 idx)
Definition eft_EmitterSet.cpp:26
const nw::math::VEC3 & GetEmitterScale() const
void SetPos(const nw::math::VEC3 &pos)
void SetParticleEmissionPoints(s32 numPoint, nw::math::VEC3 *points)
void SetParticleScale(f32 scale)
void SetEmissionParticleScale(f32 scale)
bool mIsStopDraw
Definition eft_EmitterSet.h:669
s32 GetEmitterCounter(const char *emitterName)
EmitterSet * mNext
Definition eft_EmitterSet.h:663
bool IsHaveInfinityEmitter() const
u32 mRuntimeUserData
Definition eft_EmitterSet.h:639
void Reset(const nw::math::MTX34 &matLW)
nw::ut::FloatColor mColor
Definition eft_EmitterSet.h:652
void GetPos(nw::math::VEC3 &pos) const
nw::math::VEC3 * mParticleEmissionPoints
Definition eft_EmitterSet.h:661
void SetManualParticleEmission(bool isManual)
EmitterInstance * mInstance[EFT_EMITTER_INSET_NUM]
Definition eft_EmitterSet.h:635
s32 mResourceID
Definition eft_EmitterSet.h:637
bool IsStopCalc() const
const nw::math::VEC2 & GetEmissionParticleScale() const
bool IsStopDraw() const
bool IsStopCalcAndDraw() const
u32 mEmitterCreateID
Definition eft_EmitterSet.h:634
void SetStopCalcAndDraw(bool isStopCalcAndDraw)
s32 GetResourceID() const
void SetPos(const nw::math::VEC3 &pos, const nw::math::VEC3 &scale)
void SetDirectionalVel(f32 velScale)
u32 GetCreateID() const
bool mIsHaveInfinityEmitter
Definition eft_EmitterSet.h:670
u8 GetUserDataNum2() const
u8 GetGroupID() const
nw::math::VEC2 mParticlScale
Definition eft_EmitterSet.h:647
void SetAddVel(const nw::math::VEC3 &velAdd)
void SetMtxFast(const nw::math::MTX34 &mtx, f32 scale)
void SetPos(const nw::math::VEC3 &pos, f32 scale)
System * GetSystem()
void SetRuntimeUserData(u32 data)
const nw::ut::FloatColor & GetColor() const
void ForceCalc(s32 numLoop)
Definition eft_EmitterSet.cpp:107
void SetDrawPriority(u8 priority)
void SetMtxFast(const nw::math::MTX34 &mtx, const nw::math::VEC3 &scale)
void SetStopDraw(u32 emitterID, bool isStopDraw)
void SetAlpha(f32 alpha)
s32 mGroupID
Definition eft_EmitterSet.h:640
void EmitParticle(const nw::math::VEC3 &pos)
void SetRandomVel(f32 velScale)
nw::math::VEC3 mInitialRoate
Definition eft_EmitterSet.h:659
EmitterSet * mPrev
Definition eft_EmitterSet.h:664
s32 mStartFrame
Definition eft_EmitterSet.h:658
s32 GetNumEmitter() const
void SetDirectional(const nw::math::VEC3 &dir)
const nw::math::VEC3 & GetVelAdd() const
nw::math::MTX34 mRT
Definition eft_EmitterSet.h:644
bool IsLoopEffect() const
f32 mFigureVel
Definition eft_EmitterSet.h:653
void SetEmitterScale(const nw::math::VEC3 &scale)
bool IsSetDirectional() const
s32 mNumEmitter
Definition eft_EmitterSet.h:632
bool IsAlive() const
const nw::math::VEC2 & GetParticleScale() const
nw::math::VEC3 mVelAdd
Definition eft_EmitterSet.h:656
void SetAllDirectionalVel(f32 velScale)
u8 mDrawPriority
Definition eft_EmitterSet.h:672
bool mFadeRequest
Definition eft_EmitterSet.h:666
const nw::math::VEC3 & GetDirectional() const
s32 GetNumCreatedEmitter() const
u32 GetUserData() const
nw::math::MTX34 & GetRTMatrix()
const nw::math::VEC2 & GetParticleScaleForCalc() const
u32 GetRuntimeUserData() const
f32 mRandomVel
Definition eft_EmitterSet.h:655
EmitterSet * GetNext() const
void SetParticleScale(f32 scaleX, f32 scaleY)
s32 mEmitterSetID
Definition eft_EmitterSet.h:638
void SetMtxFast(const nw::math::MTX34 &mtx)
u8 GetDrawPriority() const
nw::math::VEC3 mEmitterScale
Definition eft_EmitterSet.h:650
EFT_EMITTER_INSET_NUM
EFT_DRAW_VIEW_FLAG_NONE
EFT_DRAW_VIEW_FLAG_ALL