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 <player/PlayerEnum.h>
4
5#include <container/seadPtrArray.h>
6#include <container/seadTList.h>
7#include <effect/EffectID.h>
8#include <heap/seadDisposer.h>
9#include <math/seadMatrix.h>
10
11namespace sead { namespace ptcl {
12
13class PtclSystem;
14
15} } // namespace sead::ptcl
16
17namespace nw { namespace eft {
18
19struct EmitterInstance;
20class EmitterSet;
21class Handle;
22
23} } // namespace nw::eft
24
25namespace agl {
26
27class TextureSampler;
28
29namespace lyr {
30
31class RenderInfo;
32
33} } // namespace agl::lyr
34
35class EffectObj;
36class EffectObjBase;
39struct PtclParam;
40class PtclParamMgr;
41
43{
44 // createInstance() Address: 0x022AC738
45 // deleteInstance() Address: Deleted
46 // sInstance Address: 0x101CD3A8
47 // SingletonDisposer_::~SingletonDisposer_() Address: 0x022ADADC
48 // SingletonDisposer_::sStaticDisposer Address: 0x101CD3AC
49 // SingletonDisposer_::vtbl Address: 0x10058B48
51
52public:
71 static_assert(sizeof(PlayerNoSetter) == 4);
72
73public:
74 // Address: 0x022AC634
76 // Address: 0x022AC854
78
79 // Address: 0x022AC7B8
80 void cleanUp();
81
83 {
84 return mPtclSystem;
85 }
86
87 // Address: 0x022AC984
88 void updateAmbientLight(bool update_emitter = true);
89
90 // Address: 0x022ACA14
91 static s32 compare(const nw::eft::EmitterInstance* a, const nw::eft::EmitterInstance* b);
92
93 // Address: 0x022ACA44
94 void draw(const agl::lyr::RenderInfo& render_info, s32 type, const sead::PtrArray<nw::eft::EmitterInstance>* emitters = nullptr);
95
96 // Address: 0x022ACE58
97 s32 getEmitterSetGroupID(s32 set_id, u32 res_id = 0) const;
98
99 // Address: 0x022ACF0C
100 void enterScene(sead::Heap* heap);
101
102 // Address: 0x022AD370
104
106 {
107 mIsDrawDisable = false;
108 }
109
110 // Address: 0x022AD37C
112
113 // Address: 0x022AD434
114 void exitScene();
115
116 // Address: 0x022ACE84
118 // Address: 0x022AD468
120
121 // Address: 0x022AD4E0
122 void execute();
123
124 // Address: 0x022AD8BC
125 void drawRange(const agl::lyr::RenderInfo& render_info, s32 typeMin, s32 typeMax);
126
127 // Address: 0x022AD948
128 bool createEmitterSet(nw::eft::Handle* handle, const sead::Matrix34f& mtxRT, EffectID id);
129
130 // Address: 0x022AD930
131 const PtclParam* getParam(EffectID id) const;
132
133 // Address: 0x022ADA08
134 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);
135
136protected:
137 // Address: 0x022AC8F8
138 void setEmitterColor_(nw::eft::EmitterSet* emitter_set);
139
140protected:
152
153 friend class EffectObj;
154};
155static_assert(sizeof(PtclMgr) == 0x84C);
Definition EffectObjBase.h:10
Definition EffectObj.h:6
Definition PtclEmitterColorMgr.h:15
Definition PtclMgr.h:43
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:143
void execute()
sead::ptcl::PtclSystem * mPtclSystem
Definition PtclMgr.h:141
void updateAmbientLight(bool update_emitter=true)
PtclParamMgr * mParamMgr
Definition PtclMgr.h:144
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:147
void enterScene(sead::Heap *heap)
void enableDisplayList()
s32 mPlayerNo
Definition PtclMgr.h:148
void drawRange(const agl::lyr::RenderInfo &render_info, s32 typeMin, s32 typeMax)
bool mIsUseDisplayList
Definition PtclMgr.h:149
void resetUserDataCallbacks()
void exitScene()
bool createEmitterSet(nw::eft::Handle *handle, const sead::Matrix34f &mtxRT, EffectID id)
void setUserDataCallbacks()
PtclParallelExecuter * mParallelExecuter
Definition PtclMgr.h:142
void enableDraw()
Definition PtclMgr.h:105
sead::FixedPtrArray< nw::eft::EmitterInstance, 256 > mEmitter1
Definition PtclMgr.h:146
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:82
bool mIsDrawDisable
Definition PtclMgr.h:150
static s32 compare(const nw::eft::EmitterInstance *a, const nw::eft::EmitterInstance *b)
bool mIsUseParallel
Definition PtclMgr.h:151
sead::TList< EffectObjBase * > mEffects
Definition PtclMgr.h:145
void pushBackDrawMethod()
Definition PtclParallelExecuter.h:14
Definition PtclParamMgr.h:8
Definition PtclParam.h:6