#ifndef _CPARTICLEGENINFOGENERIC #define _CPARTICLEGENINFOGENERIC #include "MetroidPrime/CParticleGenInfo.hpp" class CParticleGen; class CParticleGenInfoGeneric : public CParticleGenInfo { public: CParticleGenInfoGeneric(const SObjectTag& part, rstl::ncrc_ptr< CParticleGen > system, int frames, const rstl::string& boneName, CVector3f scale, CParticleData::EParentedMode parentMode, int flags, CStateManager& stateMgr, TAreaId areaId, int lightId, EParticleGenType state); ~CParticleGenInfoGeneric(); virtual void AddToRenderer() override; virtual void Render() override; virtual void Update(float dt, CStateManager& stateMgr) override; virtual void SetOrientation(const CTransform4f& xf, CStateManager& stateMgr) override; virtual void SetTranslation(const CVector3f& trans, CStateManager& stateMgr) override; virtual void SetGlobalOrientation(const CTransform4f& xf, CStateManager& stateMgr) override; virtual void SetGlobalTranslation(const CVector3f& trans, CStateManager& stateMgr) override; virtual void SetGlobalScale(const CVector3f& scale) override; virtual void SetParticleEmission(bool isActive, CStateManager& stateMgr) override; virtual bool IsSystemDeletable() const override; virtual rstl::optional_object GetBounds() const override; virtual bool HasActiveParticles() const override; virtual void DestroyParticles() override; virtual bool HasLight() const override; virtual TUniqueId GetLightId() const override; virtual void DeleteLight(CStateManager& stateMgr) override; virtual void SetModulationColor(const CColor& color) override; const rstl::rc_ptr< CParticleGen >& GetParticleSystem() const { return x84_system; } private: rstl::ncrc_ptr< CParticleGen > x84_system; TUniqueId x88_lightId; }; #endif // _CPARTICLEGENINFOGENERIC