diff options
| author | visagalis <none@none> | 2008-11-14 17:03:03 -0600 |
|---|---|---|
| committer | visagalis <none@none> | 2008-11-14 17:03:03 -0600 |
| commit | bfa9e7516177af9e13391a09d4e1356c74a4c2ba (patch) | |
| tree | b4b4c98fac8e547db4a165e5e8cc0fb03c21c005 /src/game/World.cpp | |
| parent | d1e759479b3f31cccc270e40d3e6af13204eb627 (diff) | |
[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
Diffstat (limited to 'src/game/World.cpp')
| -rw-r--r-- | src/game/World.cpp | 17 |
1 files changed, 9 insertions, 8 deletions
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; } |
