From 99a9129a72a594cab8f3b15d9da388cf99afa47b Mon Sep 17 00:00:00 2001 From: Shauren Date: Fri, 10 May 2019 23:30:50 +0200 Subject: Core/Movement: Prevent rooted units from falling * Fixes a client freeze Closes #23042 --- src/server/game/Movement/MotionMaster.cpp | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'src') 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); -- cgit v1.2.3