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