2017-08-08 13:53:47 +02:00
|
|
|
#ifndef _ZONEMGR_H
|
|
|
|
#define _ZONEMGR_H
|
|
|
|
|
2017-12-08 15:38:25 +01:00
|
|
|
#include "Forwards.h"
|
2017-12-11 16:55:05 +11:00
|
|
|
#include <map>
|
|
|
|
#include <unordered_map>
|
2017-08-08 13:53:47 +02:00
|
|
|
|
|
|
|
namespace Core {
|
|
|
|
|
2017-12-11 16:55:05 +11:00
|
|
|
using ZoneMap = std::unordered_map< uint32_t, ZonePtr >;
|
2017-08-08 13:53:47 +02:00
|
|
|
|
2017-12-11 16:55:05 +11:00
|
|
|
class ZoneMgr
|
|
|
|
{
|
|
|
|
public:
|
|
|
|
ZoneMgr();
|
|
|
|
~ZoneMgr();
|
2017-08-08 13:53:47 +02:00
|
|
|
|
2017-12-11 16:55:05 +11:00
|
|
|
bool createZones();
|
2017-08-08 13:53:47 +02:00
|
|
|
|
2017-12-11 16:55:05 +11:00
|
|
|
ZonePtr getZone( uint32_t zoneId );
|
2017-08-08 13:53:47 +02:00
|
|
|
|
2017-12-11 16:55:05 +11:00
|
|
|
void loadZonePositionMap();
|
2017-08-08 13:53:47 +02:00
|
|
|
|
2017-12-11 16:55:05 +11:00
|
|
|
ZonePositionPtr getZonePosition( uint32_t zonePositionId );
|
2017-08-08 13:53:47 +02:00
|
|
|
|
2017-12-11 16:55:05 +11:00
|
|
|
void updateZones();
|
2017-08-08 13:53:47 +02:00
|
|
|
|
2017-12-11 16:55:05 +11:00
|
|
|
private:
|
|
|
|
ZoneMap m_zoneMap;
|
2017-08-08 13:53:47 +02:00
|
|
|
|
2017-12-11 16:55:05 +11:00
|
|
|
std::unordered_map< int32_t, ZonePositionPtr > m_zonePositionMap;
|
|
|
|
};
|
2017-08-08 13:53:47 +02:00
|
|
|
|
2017-12-11 16:55:05 +11:00
|
|
|
} // namespace Core
|
2017-08-08 13:53:47 +02:00
|
|
|
|
|
|
|
#endif
|