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