#ifndef WORLD_DYNAMIC_ZONE_MANAGER_H #define WORLD_DYNAMIC_ZONE_MANAGER_H #include "../common/timer.h" #include #include #include extern class DynamicZoneManager dynamic_zone_manager; class DynamicZone; struct DynamicZoneMember; class ServerPacket; class DynamicZoneManager { public: DynamicZoneManager(); void CacheAllFromDatabase(); void CacheNewDynamicZone(ServerPacket* pack); DynamicZone* CreateNew(DynamicZone& dz_request, const std::vector& members); void Process(); void PurgeExpiredDynamicZones(); std::unordered_map> dynamic_zone_cache; private: Timer m_process_throttle_timer{}; }; #endif