aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2019-05-10 23:30:50 +0200
committerShauren <shauren.trinity@gmail.com>2019-05-10 23:30:50 +0200
commit99a9129a72a594cab8f3b15d9da388cf99afa47b (patch)
tree025aa84dc5e7b4fbbb54121d7e937203947cfeac /src
parent49d0a5bbb69dd352bac0009625ded2c472b66805 (diff)
Core/Movement: Prevent rooted units from falling
* Fixes a client freeze Closes #23042
Diffstat (limited to 'src')
-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 ac592e3b47f..82107cabb97 100644
--- a/src/server/game/Movement/MotionMaster.cpp
+++ b/src/server/game/Movement/MotionMaster.cpp
@@ -888,6 +888,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->AddUnitMovementFlag(MOVEMENTFLAG_FALLING);
_owner->m_movementInfo.SetFallTime(0);