New Super Mario Bros. U Headers
Loading...
Searching...
No Matches
Effect.h
Go to the documentation of this file.
1#pragma once
2
3#include <effect/EffectID.h>
4#include <utility/Angle3.h>
5
6#include <gfx/seadColor.h>
7#include <ptcl/seadPtclSystem.h>
8
9struct PtclParam;
10
11class Effect
12{
13 // NSMBW: mEf::effect_c
14
15protected:
16 // Address: 0x022AA5DC
17 void reset_();
18
19 // Address: 0x022AA618
21
22 // Address: 0x022AA64C
23 bool createEffect_(EffectID id); // Assumes effect is not alive and has been resetted
24
25public:
27 {
29 }
30
31 // Address: 0x022AA780
32 bool createEffect(EffectID id); // Will abort and return false if
33 // - isAlive() returns true, or
34 // - PtclMgr singleton has not been created, or
35 // - PtclMgr is unable to create the effect
36
37 // Address: 0x022AA738
38 bool isAlive() const;
39
40 // Address: 0x022AA7F0
41 void followFade();
42 // Address: 0x022AA824
43 void fade();
44 // Address: 0x022AA84C
45 void kill();
46
47 // Address: 0x022AA8A8
48 s32 getGroupID() const;
49
50 // Address: 0x022AA8D4
51 void setColor(const sead::Color4f& color);
52 // Address: 0x022AA91C
53 void setAlpha(f32 alpha);
54 // Address: 0x022AA948
55 void setDirectionalVel(f32 vel);
56 // Address: 0x022AA974
57 void setEmitterScale(const sead::Vector3f& scale);
58 // Address: 0x022AA9B4
59 void setParticleScale(const sead::Vector2f& scale);
60 // Address: 0x022AAA04
61 void setEmissionParticleScale(const sead::Vector2f& scale);
62 // Address: 0x022AAA3C
63 void setRandomSeed(u32 seed);
64
65 // Address: 0x022AAB48
66 bool follow(const sead::Vector3f* trans = nullptr, const Angle3* angle = nullptr, const sead::Vector3f* scale = nullptr);
67 // Address: 0x022AAD70
68 bool follow(const sead::Matrixf& mtx, bool mtx_has_scale);
69
70 const sead::Matrixf& getMtx() const
71 {
72 return mMtx;
73 }
74
75 bool getMtxHasScale() const
76 {
77 return mMtxHasScale;
78 }
79
80protected:
81 // Address: 0x022AAA68
82 void update_();
83
84public:
85 // Address: 0x022AAE5C
86 void setStopCalc(bool stop_calc);
87 // Address: 0x022AAE8C
88 void setVisible(bool visible, s32 emitter_controller_index);
89
90 const PtclParam* getParam() const { return mParam; }
91
92protected:
97};
98static_assert(sizeof(Effect) == 0x40);
Definition Effect.h:12
bool createEffect_(EffectID id)
const PtclParam * mParam
Definition Effect.h:96
bool getMtxHasScale() const
Definition Effect.h:75
void reset_()
void setParticleScale(const sead::Vector2f &scale)
void setVisible(bool visible, s32 emitter_controller_index)
void fade()
nw::eft::Handle mHandle
Definition Effect.h:95
void followFade()
void setAlpha(f32 alpha)
Effect()
Definition Effect.h:26
const PtclParam * getParam() const
Definition Effect.h:90
bool createEffect(EffectID id)
s32 getGroupID() const
void setEmitterScale(const sead::Vector3f &scale)
bool follow(const sead::Matrixf &mtx, bool mtx_has_scale)
void setColor(const sead::Color4f &color)
bool isAlive() const
bool follow(const sead::Vector3f *trans=nullptr, const Angle3 *angle=nullptr, const sead::Vector3f *scale=nullptr)
sead::Matrixf mMtx
Definition Effect.h:93
void setStopCalc(bool stop_calc)
void setEmissionParticleScale(const sead::Vector2f &scale)
void setRandomSeed(u32 seed)
nw::eft::EmitterSet * getEmitterSet_()
void update_()
void setDirectionalVel(f32 vel)
void kill()
bool mMtxHasScale
Definition Effect.h:94
const sead::Matrixf & getMtx() const
Definition Effect.h:70
Definition PtclParam.h:6