aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Maps/MapManager.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/server/game/Maps/MapManager.cpp')
-rwxr-xr-xsrc/server/game/Maps/MapManager.cpp26
1 files changed, 11 insertions, 15 deletions
diff --git a/src/server/game/Maps/MapManager.cpp b/src/server/game/Maps/MapManager.cpp
index d829c8e30d3..7b6d0a64460 100755
--- a/src/server/game/Maps/MapManager.cpp
+++ b/src/server/game/Maps/MapManager.cpp
@@ -45,16 +45,6 @@ MapManager::MapManager()
MapManager::~MapManager()
{
- for (MapMapType::iterator iter=i_maps.begin(); iter != i_maps.end(); ++iter)
- delete iter->second;
-
- for (TransportSet::iterator i = m_Transports.begin(); i != m_Transports.end(); ++i)
- {
- (*i)->RemoveFromWorld();
- delete *i;
- }
-
- Map::DeleteStateMachine();
}
void MapManager::Initialize()
@@ -305,17 +295,23 @@ bool MapManager::IsValidMAP(uint32 mapid)
void MapManager::UnloadAll()
{
- for (MapMapType::iterator iter=i_maps.begin(); iter != i_maps.end(); ++iter)
- iter->second->UnloadAll();
+ for (TransportSet::iterator i = m_Transports.begin(); i != m_Transports.end(); ++i)
+ {
+ (*i)->RemoveFromWorld();
+ delete *i;
+ }
- while (!i_maps.empty())
+ for (MapMapType::iterator iter = i_maps.begin(); iter != i_maps.end();)
{
- delete i_maps.begin()->second;
- i_maps.erase(i_maps.begin());
+ iter->second->UnloadAll();
+ delete iter->second;
+ i_maps.erase(iter++);
}
if (m_updater.activated())
m_updater.deactivate();
+
+ Map::DeleteStateMachine();
}
void MapManager::InitMaxInstanceId()