NSMBW-Decomp
A decompilation of New Super Mario Bros. Wii
Loading...
Searching...
No Matches
ef_creationqueue.h
1#ifndef NW4R_EF_CREATION_QUEUE_H
2#define NW4R_EF_CREATION_QUEUE_H
3#include <nw4r/types_nw4r.h>
4
5#include <nw4r/ef/ef_emitter.h>
6#include <nw4r/ef/ef_types.h>
7
8namespace nw4r {
9namespace ef {
10
11struct CreationQueue {
12private:
14 enum Type { TYPE_PARTICLE, TYPE_EMITTER };
15
16 u8 mType; // at 0x0
17 u8 mFlags; // at 0x1
18 u16 mCalcRemain; // at 0x2
19 EmitterInheritSetting mInheritSetting; // at 0x4
20 Particle* mReferenceParticle; // at 0xC
21 EmitterResource* mEmitterResource; // at 0x10
22 };
23
24private:
25 static const int QUEUE_SIZE =
26 MAX(NW4R_EF_MAX_PARTICLE, NW4R_EF_MAX_EMITTER);
27
28private:
29 int mNumItem; // at 0x0
30 CreationQueueData mQueueData[QUEUE_SIZE]; // at 0x4
31
32public:
33 CreationQueue();
34
35 void AddParticleCreation(const EmitterInheritSetting* pSetting,
36 Particle* pParticle, EmitterResource* pResource,
37 u16 calcRemain);
38
39 void AddEmitterCreation(const EmitterInheritSetting* pSetting,
40 Particle* pParticle, EmitterResource* pResource,
41 u16 calcRemain);
42
43 void Execute();
44
45 bool IsEmpty() {
46 return mNumItem == 0;
47 }
48};
49
50} // namespace ef
51} // namespace nw4r
52
53#endif