From b521bf1d3a4e59abf0d7c15200de5fff7430d2ed Mon Sep 17 00:00:00 2001 From: ccrs Date: Tue, 8 Aug 2017 19:49:12 +0200 Subject: Core/Movement: PropagateSpeedChange should only be called on the top (current active) movement generator (cherry picked from commit 40903dcd65ef2b15efed6a32669c6b659685e7bd) --- src/server/game/Movement/MotionMaster.cpp | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) (limited to 'src/server') diff --git a/src/server/game/Movement/MotionMaster.cpp b/src/server/game/Movement/MotionMaster.cpp index 19e900a8806..a29684dfbe2 100644 --- a/src/server/game/Movement/MotionMaster.cpp +++ b/src/server/game/Movement/MotionMaster.cpp @@ -178,11 +178,14 @@ MovementGenerator* MotionMaster::GetMotionSlot(int slot) const void MotionMaster::PropagateSpeedChange() { - for (int i = 0; i <= _top; ++i) - { - if (_slot[i]) - _slot[i]->UnitSpeedChanged(); - } + if (empty()) + return; + + MovementGenerator* movement = top(); + if (!movement) + return; + + movement->UnitSpeedChanged(); } bool MotionMaster::GetDestination(float &x, float &y, float &z) -- cgit v1.2.3