OdysseyDecomp/lib/al/Library/Effect/EffectSystemInfo.h
2025-01-25 22:18:06 +01:00

57 lines
2.3 KiB
C++

#pragma once
#include <gfx/seadColor.h>
#include <math/seadMatrix.h>
#include <math/seadVector.h>
namespace al {
class EffectSystem;
class IUseEffectKeeper;
class PtclSystem;
class EffectSystemInfo {
public:
EffectSystemInfo();
const EffectSystem& getEffectSystem() const;
private:
s32 _0;
PtclSystem* mPtclSystem;
void* _10;
s32 _18;
};
static_assert(sizeof(EffectSystemInfo) == 0x20);
void emitEffectCurrentPos(IUseEffectKeeper*, const char*);
void emitEffect(IUseEffectKeeper*, const char*, const sead::Vector3f*);
bool tryEmitEffect(IUseEffectKeeper*, const char*, const sead::Vector3f*);
void deleteEffect(IUseEffectKeeper*, const char*);
bool tryDeleteEffect(IUseEffectKeeper*, const char*);
void deleteEffectAll(IUseEffectKeeper*);
void tryKillEmitterAndParticleAll(IUseEffectKeeper*);
void onCalcAndDrawEffect(IUseEffectKeeper*);
void offCalcAndDrawEffect(IUseEffectKeeper*);
void forceSetStopCalcAndDraw(IUseEffectKeeper*, bool);
bool isEffectEmitting(const IUseEffectKeeper*, const char*);
void setEffectEmitRatio(IUseEffectKeeper*, const char*, f32);
void setEffectAllScale(IUseEffectKeeper*, const char*, const sead::Vector3f&);
void setEffectEmitterVolumeScale(IUseEffectKeeper*, const char*, const sead::Vector3f&);
void setEffectParticleScale(IUseEffectKeeper*, const char*, f32);
void setEffectParticleScale(IUseEffectKeeper*, const char*, const sead::Vector3f&);
void setEffectParticleAlpha(IUseEffectKeeper*, const char*, f32);
void setEffectParticleColor(IUseEffectKeeper*, const char*, const sead::Color4f&);
void setParticleLifeScale(IUseEffectKeeper*, const char*, f32);
void setEffectParticleDirectionalVel(IUseEffectKeeper*, const char*, f32);
void setEffectFollowPosPtr(IUseEffectKeeper*, const char*, const sead::Vector3f*);
void setEffectFollowMtxPtr(IUseEffectKeeper*, const char*, const sead::Matrix34f*);
void setEffectNamedMtxPtr(IUseEffectKeeper*, const char*, const sead::Matrix34f*);
bool trySetEffectNamedMtxPtr(IUseEffectKeeper*, const char*, const sead::Matrix34f*);
bool tryUpdateEffectMaterialCode(IUseEffectKeeper*, const char*);
void resetEffectMaterialCode(IUseEffectKeeper*);
void updateEffectMaterialWater(IUseEffectKeeper*, bool);
void updateEffectMaterialWet(IUseEffectKeeper*, bool);
void updateEffectMaterialPuddle(IUseEffectKeeper*, bool);
} // namespace al