2022-11-11 00:26:17 +00:00
|
|
|
#ifndef _CPARTICLEELECTRIC
|
|
|
|
#define _CPARTICLEELECTRIC
|
|
|
|
|
|
|
|
#include "Kyoto/Particles/CParticleGen.hpp"
|
|
|
|
|
|
|
|
#include "Kyoto/TToken.hpp"
|
|
|
|
|
|
|
|
class CElectricDescription;
|
|
|
|
|
|
|
|
class CParticleElectric : public CParticleGen {
|
|
|
|
public:
|
|
|
|
explicit CParticleElectric(TToken<CElectricDescription> desc);
|
|
|
|
|
2023-02-06 17:01:01 +00:00
|
|
|
~CParticleElectric() override;
|
|
|
|
void Update(double) override;
|
|
|
|
void Render() const override;
|
|
|
|
void SetOrientation(const CTransform4f& orientation) override;
|
|
|
|
void SetTranslation(const CVector3f& translation) override;
|
|
|
|
void SetGlobalOrientation(const CTransform4f& orientation) override;
|
|
|
|
void SetGlobalTranslation(const CVector3f& translation) override;
|
|
|
|
void SetGlobalScale(const CVector3f& scale) override;
|
|
|
|
void SetLocalScale(const CVector3f& scale) override;
|
|
|
|
void SetParticleEmission(bool emission) override;
|
|
|
|
void SetModulationColor(const CColor& col) override;
|
2022-11-11 00:26:17 +00:00
|
|
|
void SetGeneratorRate(float rate) {}
|
2023-02-06 17:01:01 +00:00
|
|
|
const CTransform4f& GetOrientation() const override;
|
|
|
|
const CVector3f& GetTranslation() const override;
|
|
|
|
CTransform4f GetGlobalOrientation() const override;
|
|
|
|
CVector3f GetGlobalTranslation() const override;
|
|
|
|
CVector3f GetGlobalScale() const override;
|
|
|
|
bool GetParticleEmission() const override;
|
|
|
|
CColor GetModulationColor() const override;
|
|
|
|
bool IsSystemDeletable() const override;
|
|
|
|
rstl::optional_object<CAABox> GetBounds() const override;
|
|
|
|
int GetParticleCount() const override;
|
|
|
|
bool SystemHasLight() const override;
|
|
|
|
CLight GetLight() override;
|
|
|
|
void DestroyParticles() override;
|
|
|
|
void AddModifier(CWarp*) override;
|
|
|
|
uint Get4CharId() const override;
|
2022-11-11 00:26:17 +00:00
|
|
|
|
2022-11-23 23:49:52 +00:00
|
|
|
|
|
|
|
void SetOverrideIPos(const CVector3f& vec) { x178_overrideIPos = vec; }
|
|
|
|
void SetOverrideIVel(const CVector3f& vec) { x188_overrideIVel = vec; }
|
|
|
|
void SetOverrideFPos(const CVector3f& vec) { x198_overrideFPos = vec; }
|
|
|
|
void SetOverrideFVel(const CVector3f& vec) { x1a8_overrideFVel = vec; }
|
|
|
|
|
2022-11-11 00:26:17 +00:00
|
|
|
private:
|
2022-11-23 23:49:52 +00:00
|
|
|
uchar x1c_pad[0x15c];
|
|
|
|
rstl::optional_object<CVector3f> x178_overrideIPos;
|
|
|
|
rstl::optional_object<CVector3f> x188_overrideIVel;
|
|
|
|
rstl::optional_object<CVector3f> x198_overrideFPos;
|
|
|
|
rstl::optional_object<CVector3f> x1a8_overrideFVel;
|
|
|
|
uchar x1b8_pad[0x2a0];
|
2022-11-11 00:26:17 +00:00
|
|
|
};
|
|
|
|
CHECK_SIZEOF(CParticleElectric, 0x458)
|
|
|
|
|
|
|
|
#endif // _CPARTICLEELECTRIC
|