1#pragma once
2
3#include <gfx/seadColor.h>
4#include <math/seadMatrix.h>
5#include <math/seadVector.h>
6
7namespace al {
8class EffectSystem;
9class IUseEffectKeeper;
10class PtclSystem;
11
12class EffectSystemInfo {
13public:
14 EffectSystemInfo();
15
16 const EffectSystem& getEffectSystem() const;
17
18private:
19 s32 _0;
20 PtclSystem* mPtclSystem;
21 void* _10;
22 s32 _18;
23};
24
25static_assert(sizeof(EffectSystemInfo) == 0x20);
26
27void emitEffectCurrentPos(IUseEffectKeeper*, const char*);
28void emitEffect(IUseEffectKeeper*, const char*, const sead::Vector3f*);
29bool tryEmitEffect(IUseEffectKeeper*, const char*, const sead::Vector3f*);
30void deleteEffect(IUseEffectKeeper*, const char*);
31bool tryDeleteEffect(IUseEffectKeeper*, const char*);
32void deleteEffectAll(IUseEffectKeeper*);
33void tryKillEmitterAndParticleAll(IUseEffectKeeper*);
34void onCalcAndDrawEffect(IUseEffectKeeper*);
35void offCalcAndDrawEffect(IUseEffectKeeper*);
36void forceSetStopCalcAndDraw(IUseEffectKeeper*, bool);
37bool isEffectEmitting(const IUseEffectKeeper*, const char*);
38void setEffectEmitRatio(IUseEffectKeeper*, const char*, f32);
39void setEffectAllScale(IUseEffectKeeper*, const char*, const sead::Vector3f&);
40void setEffectEmitterVolumeScale(IUseEffectKeeper*, const char*, const sead::Vector3f&);
41void setEffectParticleScale(IUseEffectKeeper*, const char*, f32);
42void setEffectParticleScale(IUseEffectKeeper*, const char*, const sead::Vector3f&);
43void setEffectParticleAlpha(IUseEffectKeeper*, const char*, f32);
44void setEffectParticleColor(IUseEffectKeeper*, const char*, const sead::Color4f&);
45void setParticleLifeScale(IUseEffectKeeper*, const char*, f32);
46void setEffectParticleDirectionalVel(IUseEffectKeeper*, const char*, f32);
47void setEffectFollowPosPtr(IUseEffectKeeper*, const char*, const sead::Vector3f*);
48void setEffectFollowMtxPtr(IUseEffectKeeper*, const char*, const sead::Matrix34f*);
49void setEffectNamedMtxPtr(IUseEffectKeeper*, const char*, const sead::Matrix34f*);
50bool trySetEffectNamedMtxPtr(IUseEffectKeeper*, const char*, const sead::Matrix34f*);
51bool tryUpdateEffectMaterialCode(IUseEffectKeeper*, const char*);
52void resetEffectMaterialCode(IUseEffectKeeper*);
53void updateEffectMaterialWater(IUseEffectKeeper*, bool);
54void updateEffectMaterialWet(IUseEffectKeeper*, bool);
55void updateEffectMaterialPuddle(IUseEffectKeeper*, bool);
56} // namespace al
57