aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Maps/MapManager.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/server/game/Maps/MapManager.h')
-rw-r--r--src/server/game/Maps/MapManager.h13
1 files changed, 7 insertions, 6 deletions
diff --git a/src/server/game/Maps/MapManager.h b/src/server/game/Maps/MapManager.h
index 2323e31ab9a..5754415ba73 100644
--- a/src/server/game/Maps/MapManager.h
+++ b/src/server/game/Maps/MapManager.h
@@ -23,6 +23,7 @@
#include "MapInstanced.h"
#include "GridStates.h"
#include "MapUpdater.h"
+#include "UniqueTrackablePtr.h"
#include <boost/dynamic_bitset.hpp>
class Transport;
@@ -140,7 +141,7 @@ class TC_GAME_API MapManager
bool IsScriptScheduled() const { return _scheduledScripts > 0; }
private:
- typedef std::unordered_map<uint32, Map*> MapMapType;
+ typedef std::unordered_map<uint32, Trinity::unique_trackable_ptr<Map>> MapMapType;
typedef boost::dynamic_bitset<size_t> InstanceIds;
MapManager();
@@ -149,7 +150,7 @@ class TC_GAME_API MapManager
Map* FindBaseMap(uint32 mapId) const
{
MapMapType::const_iterator iter = i_maps.find(mapId);
- return (iter == i_maps.end() ? nullptr : iter->second);
+ return (iter == i_maps.end() ? nullptr : iter->second.get());
}
MapManager(MapManager const&) = delete;
@@ -175,12 +176,12 @@ void MapManager::DoForAllMaps(Worker&& worker)
for (auto& mapPair : i_maps)
{
- Map* map = mapPair.second;
+ Map* map = mapPair.second.get();
if (MapInstanced* mapInstanced = map->ToMapInstanced())
{
MapInstanced::InstancedMaps& instances = mapInstanced->GetInstancedMaps();
for (auto& instancePair : instances)
- worker(instancePair.second);
+ worker(instancePair.second.get());
}
else
worker(map);
@@ -195,12 +196,12 @@ inline void MapManager::DoForAllMapsWithMapId(uint32 mapId, Worker&& worker)
auto itr = i_maps.find(mapId);
if (itr != i_maps.end())
{
- Map* map = itr->second;
+ Map* map = itr->second.get();
if (MapInstanced* mapInstanced = map->ToMapInstanced())
{
MapInstanced::InstancedMaps& instances = mapInstanced->GetInstancedMaps();
for (auto& p : instances)
- worker(p.second);
+ worker(p.second.get());
}
else
worker(map);