aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2019-05-10 23:30:50 +0200
committerShauren <shauren.trinity@gmail.com>2021-12-05 14:38:26 +0100
commit34eedc2ad86b78662127561b6eb0835b652e533e (patch)
treedc76ddb862c8b5449f60c785c61027a7d7699d38
parentab988dc98284285b8ed0253f0bca1ddeb7eb9982 (diff)
Core/Movement: Prevent rooted units from falling
* Fixes a client freeze Closes #23042 (cherry picked from commit 99a9129a72a594cab8f3b15d9da388cf99afa47b)
-rw-r--r--src/server/game/Movement/MotionMaster.cpp4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/server/game/Movement/MotionMaster.cpp b/src/server/game/Movement/MotionMaster.cpp
index 2cee75d556f..7a6a1b8da80 100644
--- a/src/server/game/Movement/MotionMaster.cpp
+++ b/src/server/game/Movement/MotionMaster.cpp
@@ -944,6 +944,10 @@ void MotionMaster::MoveFall(uint32 id/* = 0*/)
if (std::fabs(_owner->GetPositionZ() - tz) < 0.1f)
return;
+ // rooted units don't move (also setting falling+root flag causes client freezes)
+ if (_owner->IsRooted())
+ return;
+
_owner->SetFall(true);
// Don't run spline movement for players