[7359] Fixed crash when removing battleground from BGFreeSlotQueue. Author: Triply

Fixed player will now drop a flag before he logs out, if he is in BG.

--HG--
branch : trunk
This commit is contained in:
megamage
2009-03-02 16:46:43 -06:00
parent e73d01182f
commit f503f320ad
3 changed files with 8 additions and 2 deletions
+4 -1
View File
@@ -646,8 +646,9 @@ void BattleGroundQueue::Update(BattleGroundTypeId bgTypeId, BGQueueIdBasedOnLeve
//battleground with free slot for player should be always in the beggining of the queue
// maybe it would be better to create bgfreeslotqueue for each queue_id_based_on_level
bool continueAdding = true;
BGFreeSlotQueueType::iterator itr, next;
for (itr = sBattleGroundMgr.BGFreeSlotQueue[bgTypeId].begin(); itr != sBattleGroundMgr.BGFreeSlotQueue[bgTypeId].end(); itr = next)
for (itr = sBattleGroundMgr.BGFreeSlotQueue[bgTypeId].begin(); continueAdding && itr != sBattleGroundMgr.BGFreeSlotQueue[bgTypeId].end(); itr = next)
{
next = itr;
++next;
@@ -673,6 +674,8 @@ void BattleGroundQueue::Update(BattleGroundTypeId bgTypeId, BGQueueIdBasedOnLeve
if( !bg->HasFreeSlots() )
{
if( next == sBattleGroundMgr.BGFreeSlotQueue[bgTypeId].end() )
continueAdding = false;
// remove BG from BGFreeSlotQueue
bg->RemoveFromBGFreeSlotQueue();
}