diff options
Diffstat (limited to 'src/server/game/Server/GameClient.cpp')
-rw-r--r-- | src/server/game/Server/GameClient.cpp | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/src/server/game/Server/GameClient.cpp b/src/server/game/Server/GameClient.cpp index f2a662d63dd..9dde28b3bfb 100644 --- a/src/server/game/Server/GameClient.cpp +++ b/src/server/game/Server/GameClient.cpp @@ -28,6 +28,9 @@ GameClient::GameClient(WorldSession* sessionToServer) void GameClient::AddAllowedMover(Unit* unit) { + if (GameClient* previousController = unit->GetGameClientMovingMe()) + previousController->RemoveAllowedMover(unit); + _allowedMovers.insert(unit->GetGUID()); unit->SetGameClientMovingMe(this); } @@ -36,7 +39,10 @@ void GameClient::RemoveAllowedMover(Unit* unit) { _allowedMovers.erase(unit->GetGUID()); if (unit->GetGameClientMovingMe() == this) + { unit->SetGameClientMovingMe(nullptr); + SetActivelyMovedUnit(nullptr); + } } bool GameClient::IsAllowedToMove(Unit* unit) const |