#pragma once #include #include class BaseZone; class ChatZone; class ViewPortZone; class VillageZone; class ChatZoneFactory : public util::Singleton { public: ChatZoneFactory(); ~ChatZoneFactory(); VOID Init(); VOID Release(); ChatZone* AllocZone(); VOID FreeZone( ChatZone *pZone ); private: util::CMemoryPoolFactory *m_pZonePool; }; class ViewPortZoneFactory : public util::Singleton { public: ViewPortZoneFactory(); ~ViewPortZoneFactory(); VOID Init(); VOID Release(); ViewPortZone* AllocZone(); VOID FreeZone( ViewPortZone *pZone ); private: util::CMemoryPoolFactory *m_pZonePool; }; class VillageZoneFactory : public util::Singleton { public: VillageZoneFactory(); ~VillageZoneFactory(); VOID Init(); VOID Release(); VillageZone* AllocZone(); VOID FreeZone( VillageZone *pZone ); private: util::CMemoryPoolFactory *m_pZonePool; };