From 6a4ffb4be117838ce5a5257cce419b8ef7537aed Mon Sep 17 00:00:00 2001 From: leak Date: Mon, 14 Mar 2011 20:38:43 +0100 Subject: Core/Battlegrounds: Free instance id in the proper place. fixes #966 --- src/server/game/Battlegrounds/BattlegroundMgr.cpp | 3 --- src/server/game/Maps/MapInstanced.cpp | 6 ++++++ 2 files changed, 6 insertions(+), 3 deletions(-) (limited to 'src') diff --git a/src/server/game/Battlegrounds/BattlegroundMgr.cpp b/src/server/game/Battlegrounds/BattlegroundMgr.cpp index d9ed56da58c..e58ba68df46 100755 --- a/src/server/game/Battlegrounds/BattlegroundMgr.cpp +++ b/src/server/game/Battlegrounds/BattlegroundMgr.cpp @@ -111,9 +111,6 @@ void BattlegroundMgr::Update(uint32 diff) if (!m_ClientBattlegroundIds[i][bg->GetBracketId()].empty()) m_ClientBattlegroundIds[i][bg->GetBracketId()].erase(bg->GetClientInstanceID()); - // Free up the instance id and allow it to be reused - sMapMgr->FreeInstanceId(bg->GetInstanceID()); - delete bg; } } diff --git a/src/server/game/Maps/MapInstanced.cpp b/src/server/game/Maps/MapInstanced.cpp index 1567bcf2397..7dc126ce237 100755 --- a/src/server/game/Maps/MapInstanced.cpp +++ b/src/server/game/Maps/MapInstanced.cpp @@ -245,9 +245,15 @@ bool MapInstanced::DestroyInstance(InstancedMaps::iterator &itr) // so in the next map creation, (EnsureGridCreated actually) VMaps will be reloaded Map::UnloadAll(); } + + // Free up the instance id and allow it to be reused for bgs and arenas (other instances are handled in the InstanceSaveMgr) + if (itr->second->IsBattlegroundOrArena()) + sMapMgr->FreeInstanceId(itr->second->GetInstanceId()); + // erase map delete itr->second; m_InstancedMaps.erase(itr++); + return true; } -- cgit v1.2.3