aboutsummaryrefslogtreecommitdiff
path: root/src/game/WorldSession.cpp
diff options
context:
space:
mode:
authormegamage <none@none>2009-01-08 21:48:38 -0600
committermegamage <none@none>2009-01-08 21:48:38 -0600
commit2377f49ea86b5c6a7f29b5d1949cd90b1594b660 (patch)
treed0d62dd56391544b4a09d0be189d28fefd339769 /src/game/WorldSession.cpp
parentb57516e170cb3dd09ee7d4335dee0f8bbbc4a1df (diff)
*Update charm and possess code.
--HG-- branch : trunk
Diffstat (limited to 'src/game/WorldSession.cpp')
-rw-r--r--src/game/WorldSession.cpp13
1 files changed, 6 insertions, 7 deletions
diff --git a/src/game/WorldSession.cpp b/src/game/WorldSession.cpp
index f2e08969a96..eb2612a1543 100644
--- a/src/game/WorldSession.cpp
+++ b/src/game/WorldSession.cpp
@@ -249,6 +249,12 @@ 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);
+
if (uint64 lguid = GetPlayer()->GetLootGUID())
DoLootRelease(lguid);
@@ -370,13 +376,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