#ifndef __URDE_CPARTICLEDATABASE_HPP__ #define __URDE_CPARTICLEDATABASE_HPP__ #include "CCharacterInfo.hpp" #include "CParticleGenInfo.hpp" #include "zeus/CFrustum.hpp" #include "CToken.hpp" #include namespace urde { class CPoseAsTransforms; class CCharLayoutInfo; class CGenDescription; class CSwooshDescription; class CElectricDescription; class CParticleDatabase { std::map>> x0_particleDescs; std::map>> x14_swooshDescs; std::map>> x28_electricDescs; std::map> x3c_; std::map> x50_; std::map> x64_; std::map> x78_; std::map> x8c_; std::map> xa0_; public: void CacheParticleDesc(const CCharacterInfo::CParticleResData& desc); void SetModulationColorAllActiveEffects(const zeus::CColor& color); void SuspendAllActiveEffects(CStateManager& stateMgr); void StartEffect(const std::string& name, u32 flags, const CParticleData& data, const zeus::CVector3f& scale, CStateManager& stateMgr, TAreaId aid, u32 unk1); void Update(float dt, const CPoseAsTransforms& pose, const CCharLayoutInfo& charInfo, const zeus::CTransform& xf, const zeus::CVector3f& vec, CStateManager& stateMgr); void AddToRendererClipped(const zeus::CFrustum& frustum); void GetActiveParticleLightIds(std::vector&); void GetActiveParticleLightIdsFromParticleDB( std::vector&, const std::map, std::less>&); }; } #endif // __URDE_CPARTICLEDATABASE_HPP__