From bfa9e7516177af9e13391a09d4e1356c74a4c2ba Mon Sep 17 00:00:00 2001 From: visagalis Date: Fri, 14 Nov 2008 17:03:03 -0600 Subject: [svn] *** Source: MaNGOS *** * Implement localization of creature/gameobject name that say/yell. Author: evilstar (rewrited by: Vladimir) * Fix auth login queue. Author: Derex * Allowed switching INVTYPE_HOLDABLE items during combat, used correct spells for triggering global cooldown at weapon switch. Author: mobel/simak * Fixed some format arg type/value pairs. Other warnings. Author: Vladimir * [238_world.sql] Allow have team dependent graveyards at entrance map for instances. Author: Vladimir NOTE: Entrance map graveyards selected by same way as local (by distance from entrance) Until DB support will work in old way base at current DB data. --HG-- branch : trunk --- src/game/World.cpp | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) (limited to 'src/game/World.cpp') diff --git a/src/game/World.cpp b/src/game/World.cpp index ab7b6fe04fa..d6017ac0669 100644 --- a/src/game/World.cpp +++ b/src/game/World.cpp @@ -202,13 +202,16 @@ World::AddSession_ (WorldSession* s) return; } - WorldSession* old = m_sessions[s->GetAccountId ()]; - m_sessions[s->GetAccountId ()] = s; - // if session already exist, prepare to it deleting at next world update // NOTE - KickPlayer() should be called on "old" in RemoveSession() - if (old) - m_kicked_sessions.insert (old); + { + SessionMap::const_iterator old = m_sessions.find(s->GetAccountId ()); + + if(old != m_sessions.end()) + m_kicked_sessions.insert (old->second); + } + + m_sessions[s->GetAccountId ()] = s; uint32 Sessions = GetActiveAndQueuedSessionCount (); uint32 pLimit = GetPlayerAmountLimit (); @@ -291,9 +294,7 @@ void World::RemoveQueuedPlayer(WorldSession* sess) { if(*iter==sess) { - Queue::iterator iter2 = iter; - ++iter; - m_QueuedPlayer.erase(iter2); + iter = m_QueuedPlayer.erase(iter); decrease_session = false; // removing queued session break; } -- cgit v1.2.3