diff options
author | Shauren <shauren.trinity@gmail.com> | 2019-05-10 23:30:50 +0200 |
---|---|---|
committer | Shauren <shauren.trinity@gmail.com> | 2019-05-10 23:30:50 +0200 |
commit | 99a9129a72a594cab8f3b15d9da388cf99afa47b (patch) | |
tree | 025aa84dc5e7b4fbbb54121d7e937203947cfeac /src | |
parent | 49d0a5bbb69dd352bac0009625ded2c472b66805 (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.cpp | 4 |
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); |