#pragma once #include "../milesLib/Type.h" #include "ParticleSystemData.h" #include "EffectMesh.h" #include "SimpleLightData.h" class CEffectData { public: typedef std::vector TParticleVector; typedef std::vector TMeshVector; typedef std::vector TLightVector; public: CEffectData(); virtual ~CEffectData(); void Clear(); bool LoadScript(const char * c_szFileName); bool LoadSoundScriptData(const char * c_szFileName); DWORD GetParticleCount(); CParticleSystemData * GetParticlePointer(DWORD dwPosition); DWORD GetMeshCount(); CEffectMeshScript * GetMeshPointer(DWORD dwPosition); DWORD GetLightCount(); CLightData * GetLightPointer(DWORD dwPosition); NSound::TSoundInstanceVector * GetSoundInstanceVector(); float GetBoundingSphereRadius(); D3DXVECTOR3 GetBoundingSpherePosition(); const char * GetFileName() const; protected: void __ClearParticleDataVector(); void __ClearLightDataVector(); void __ClearMeshDataVector(); // FIXME : ÀÌ ºÎºÐÀº ±×´ÙÁö ¸¾¿¡ µéÁö ¾Ê´Â´Ù. ÁÁÀº ¾ÆÀ̵ð¾î¸¦ ã¾Æ³»¾î °íÄ¡ÀÚ. // »óÀ§°¡ (ƯȭµÈ) »óÀ§ÀÇ ÀÎÅÍÆäÀ̽º ¶§¹®¿¡ ¸ð¾çÀÌ ¹Ù²î¾î¾ß ÇÑ´Ù´Â °ÍÀº ¿ÇÁö ¸øÇÏ´Ù. - [levites] virtual CParticleSystemData * AllocParticle(); virtual CEffectMeshScript * AllocMesh(); virtual CLightData * AllocLight(); protected: TParticleVector m_ParticleVector; TMeshVector m_MeshVector; TLightVector m_LightVector; NSound::TSoundInstanceVector m_SoundInstanceVector; float m_fBoundingSphereRadius; D3DXVECTOR3 m_v3BoundingSpherePosition; std::string m_strFileName; public: static void DestroySystem(); static CEffectData* New(); static void Delete(CEffectData* pkData); static CDynamicPool ms_kPool; };