diff options
author | Chaouki Dhib <chaodhib@gmail.com> | 2021-05-22 14:54:58 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-05-22 14:54:58 +0200 |
commit | 19fa411431aa8a87a27206af116d4b0d1fb953ec (patch) | |
tree | 4377a2b9c373d49d6b5b4f1992d663608c1e8f2b /src/server/game/Server/GameClient.cpp | |
parent | 3e2dd51eed0b4f4724cb795e1a14d0c94fff4453 (diff) |
Core/Movement: Hotfix the crashes that can occur in the movement handlers (#26538)
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 |