New Super Mario Bros. U Headers
Loading...
Searching...
No Matches
PtclMgr.h
Go to the documentation of this file.
1#pragma once
2
3#include <container/seadPtrArray.h>
4#include <container/seadTList.h>
5#include <heap/seadDisposer.h>
6#include <math/seadMatrix.h>
7
8namespace sead { namespace ptcl {
9
10class PtclSystem;
11
12} } // namespace sead::ptcl
13
14namespace nw { namespace eft {
15
16struct EmitterInstance;
17class EmitterSet;
18class Handle;
19
20} } // namespace nw::eft
21
22namespace agl {
23
24class TextureSampler;
25
26namespace lyr {
27
28class RenderInfo;
29
30} } // namespace agl::lyr
31
32typedef s32 EffectID;
33
34class EffectObj;
35class EffectObjBase;
38struct PtclParam;
39class PtclParamMgr;
40
42{
43 // createInstance() Address: 0x022AC738
44 // deleteInstance() Address: Deleted
45 // sInstance Address: 0x101CD3A8
46 // SingletonDisposer_::~SingletonDisposer_() Address: 0x022ADADC
47 // SingletonDisposer_::sStaticDisposer Address: 0x101CD3AC
48 // SingletonDisposer_::vtbl Address: 0x10058B48
50
51public:
53 {
54 public:
61
66
67 private:
69 };
70 static_assert(sizeof(PlayerNoSetter) == 4);
71
72public:
73 // Address: 0x022AC634
75 // Address: 0x022AC854
77
78 // Address: 0x022AC7B8
79 void cleanUp();
80
82 {
83 return mPtclSystem;
84 }
85
86 // Address: 0x022AC984
87 void updateAmbientLight(bool update_emitter = true);
88
89 // Address: 0x022ACA14
90 static s32 compare(const nw::eft::EmitterInstance* a, const nw::eft::EmitterInstance* b);
91
92 // Address: 0x022ACA44
93 void draw(const agl::lyr::RenderInfo& render_info, s32 type, const sead::PtrArray<nw::eft::EmitterInstance>* emitters = nullptr);
94
95 // Address: 0x022ACE58
96 s32 getEmitterSetGroupID(s32 set_id, u32 res_id = 0) const;
97
98 // Address: 0x022ACF0C
99 void enterScene(sead::Heap* heap);
100
101 // Address: 0x022AD370
103
105 {
106 mIsDrawDisable = false;
107 }
108
109 // Address: 0x022AD37C
111
112 // Address: 0x022AD434
113 void exitScene();
114
115 // Address: 0x022ACE84
117 // Address: 0x022AD468
119
120 // Address: 0x022AD4E0
121 void execute();
122
123 // Address: 0x022AD8BC
124 void drawRange(const agl::lyr::RenderInfo& render_info, s32 typeMin, s32 typeMax);
125
126 // Address: 0x022AD948
127 bool createEmitterSet(nw::eft::Handle* handle, const sead::Matrix34f& mtxRT, EffectID id);
128
129 // Address: 0x022AD930
130 const PtclParam* getParam(EffectID id) const;
131
132 // Address: 0x022ADA08
133 void setFrameBufferTexture(const agl::TextureSampler& sampler, f32 x_offset = 0.0f, f32 y_offset = 0.0f, f32 x_scale = 1.0f, f32 y_scale = 1.0f);
134
135protected:
136 // Address: 0x022AC8F8
137 void setEmitterColor_(nw::eft::EmitterSet* emitter_set);
138
139protected:
151
152 friend class EffectObj;
153};
154static_assert(sizeof(PtclMgr) == 0x84C);
Definition EffectObjBase.h:9
Definition EffectObj.h:6
Definition PtclEmitterColorMgr.h:14
Definition PtclMgr.h:42
void setEmitterColor_(nw::eft::EmitterSet *emitter_set)
const PtclParam * getParam(EffectID id) const
s32 getEmitterSetGroupID(s32 set_id, u32 res_id=0) const
PtclEmitterColorMgr * mEmitterColorMgr
Definition PtclMgr.h:142
void execute()
sead::ptcl::PtclSystem * mPtclSystem
Definition PtclMgr.h:140
void updateAmbientLight(bool update_emitter=true)
PtclParamMgr * mParamMgr
Definition PtclMgr.h:143
void cleanUp()
void setFrameBufferTexture(const agl::TextureSampler &sampler, f32 x_offset=0.0f, f32 y_offset=0.0f, f32 x_scale=1.0f, f32 y_scale=1.0f)
sead::FixedPtrArray< nw::eft::EmitterInstance, 256 > mEmitter2
Definition PtclMgr.h:146
void enterScene(sead::Heap *heap)
void enableDisplayList()
s32 mPlayerNo
Definition PtclMgr.h:147
void drawRange(const agl::lyr::RenderInfo &render_info, s32 typeMin, s32 typeMax)
bool mIsUseDisplayList
Definition PtclMgr.h:148
void resetUserDataCallbacks()
void exitScene()
bool createEmitterSet(nw::eft::Handle *handle, const sead::Matrix34f &mtxRT, EffectID id)
void setUserDataCallbacks()
PtclParallelExecuter * mParallelExecuter
Definition PtclMgr.h:141
void enableDraw()
Definition PtclMgr.h:104
sead::FixedPtrArray< nw::eft::EmitterInstance, 256 > mEmitter1
Definition PtclMgr.h:145
void draw(const agl::lyr::RenderInfo &render_info, s32 type, const sead::PtrArray< nw::eft::EmitterInstance > *emitters=nullptr)
sead::ptcl::PtclSystem * getPtclSystem()
Definition PtclMgr.h:81
bool mIsDrawDisable
Definition PtclMgr.h:149
static s32 compare(const nw::eft::EmitterInstance *a, const nw::eft::EmitterInstance *b)
bool mIsUseParallel
Definition PtclMgr.h:150
sead::TList< EffectObjBase * > mEffects
Definition PtclMgr.h:144
void pushBackDrawMethod()
Definition PtclParallelExecuter.h:13
Definition PtclParamMgr.h:8
Definition PtclParam.h:6