[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:
@@ -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();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user