2023-02-23 22:23:35 -05:00
|
|
|
#pragma once
|
|
|
|
|
|
2023-12-13 00:40:16 -05:00
|
|
|
#include <JSystem/JParticle/JPAEmitterManager.hpp>
|
2024-09-21 20:08:36 -04:00
|
|
|
#include <revolution.h>
|
|
|
|
|
#include "Game/NameObj/NameObj.hpp"
|
2023-02-23 22:23:35 -05:00
|
|
|
|
2023-09-12 14:03:59 -04:00
|
|
|
class AutoEffectGroupHolder;
|
2023-03-02 18:11:22 -05:00
|
|
|
class ParticleEmitter;
|
|
|
|
|
class SingleEmitter;
|
2023-09-12 14:03:59 -04:00
|
|
|
class ParticleCalcExecutor;
|
|
|
|
|
class ParticleDrawExecutor;
|
|
|
|
|
class ParticleEmitterHolder;
|
2024-09-21 20:08:36 -04:00
|
|
|
class ParticleResourceHolder;
|
2023-03-02 18:11:22 -05:00
|
|
|
|
2023-09-12 14:03:59 -04:00
|
|
|
class EffectSystem : public NameObj {
|
2023-02-23 22:23:35 -05:00
|
|
|
public:
|
2024-09-21 20:08:36 -04:00
|
|
|
EffectSystem(const char*, bool);
|
2023-03-02 18:11:22 -05:00
|
|
|
|
|
|
|
|
ParticleEmitter* createEmitter(u16, u8, u8);
|
2024-09-21 20:08:36 -04:00
|
|
|
void forceDeleteEmitter(ParticleEmitter*) const;
|
|
|
|
|
void forceDeleteSingleEmitter(SingleEmitter*) const;
|
|
|
|
|
|
|
|
|
|
void entry(ParticleResourceHolder*, u32, u32);
|
2023-09-12 14:03:59 -04:00
|
|
|
|
|
|
|
|
u32 _C;
|
2024-09-21 20:08:36 -04:00
|
|
|
ParticleEmitterHolder* mEmitterHolder; // 0x10
|
|
|
|
|
ParticleDrawExecutor* mDrawExec; // 0x14
|
|
|
|
|
ParticleCalcExecutor* mCalcExec; // 0x18
|
|
|
|
|
AutoEffectGroupHolder* mGroupHolder; // 0x1C
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
namespace MR {
|
|
|
|
|
EffectSystem* getEffectSystem();
|
2023-02-23 22:23:35 -05:00
|
|
|
};
|