aboutsummaryrefslogtreecommitdiff
path: root/src/game/WorldSession.cpp
diff options
context:
space:
mode:
authormegamage <none@none>2009-01-09 16:43:23 -0600
committermegamage <none@none>2009-01-09 16:43:23 -0600
commit1ffb1cef3344206dfea149cb78146c30449d51c2 (patch)
tree655ac591f6f5aaca3dc65d67f3940f589e2394db /src/game/WorldSession.cpp
parent5c8f52d134899e10484dd47e91b612e2228842bf (diff)
parent90a82a81ad5d20d5e7188d6e9d660280f0b1eab4 (diff)
*Merge.
--HG-- branch : trunk
Diffstat (limited to 'src/game/WorldSession.cpp')
-rw-r--r--src/game/WorldSession.cpp15
1 files changed, 8 insertions, 7 deletions
diff --git a/src/game/WorldSession.cpp b/src/game/WorldSession.cpp
index 231d7783d9e..78bc11f62e0 100644
--- a/src/game/WorldSession.cpp
+++ b/src/game/WorldSession.cpp
@@ -249,6 +249,14 @@ void WorldSession::LogoutPlayer(bool Save)
if (_player)
{
+ // Unpossess the current possessed unit of player
+ _player->StopCharmOrPossess();
+
+ // Remove any possession of this player on logout
+ _player->RemoveCharmedOrPossessedBy(NULL);
+
+ _player->DestroyForNearbyPlayers();
+
if (uint64 lguid = GetPlayer()->GetLootGUID())
DoLootRelease(lguid);
@@ -374,13 +382,6 @@ void WorldSession::LogoutPlayer(bool Save)
if(_player->GetGroup() && !_player->GetGroup()->isRaidGroup() && m_Socket)
_player->RemoveFromGroup();
- // Unpossess the current possessed unit of player
- if (_player->isPossessing())
- _player->RemovePossess(false);
-
- // Remove any possession of this player on logout
- _player->UnpossessSelf(false);
-
///- Remove the player from the world
// the player may not be in the world when logging out
// e.g if he got disconnected during a transfer to another map