aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authortreeston <treeston.mmoc@gmail.com>2016-09-22 02:57:07 +0200
committerjoschiwald <joschiwald.trinity@gmail.com>2017-03-02 21:13:34 +0100
commit8dc441ce49bc81942245a8b68dee729d96af5fb4 (patch)
tree69914fdbcc232bfb45df9871efbbdd9c8db8242e /src
parent852b7f8264bb15abf1f90878466efd7f01dc89fc (diff)
Movement/SplineChain: Fix a potential critical bug where resume info returned during an edge case could fail an assertion when used.
(cherry picked from commit 55ac0186cc7b716a150f17daf755244cc58a6241)
Diffstat (limited to 'src')
-rw-r--r--src/server/game/Movement/MovementGenerators/SplineChainMovementGenerator.cpp7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/server/game/Movement/MovementGenerators/SplineChainMovementGenerator.cpp b/src/server/game/Movement/MovementGenerators/SplineChainMovementGenerator.cpp
index 43b4c6b029e..5cc96add7a6 100644
--- a/src/server/game/Movement/MovementGenerators/SplineChainMovementGenerator.cpp
+++ b/src/server/game/Movement/MovementGenerators/SplineChainMovementGenerator.cpp
@@ -135,7 +135,12 @@ SplineChainResumeInfo SplineChainMovementGenerator::GetResumeInfo(Unit const* me
if (!_nextIndex)
return SplineChainResumeInfo(_id, &_chain, _walk, 0, 0, _msToNext);
if (me->movespline->Finalized())
- return SplineChainResumeInfo(_id, &_chain, _walk, _nextIndex, 0, 1u);
+ {
+ if (_nextIndex < _chainSize)
+ return SplineChainResumeInfo(_id, &_chain, _walk, _nextIndex, 0, 1u);
+ else
+ return SplineChainResumeInfo();
+ }
return SplineChainResumeInfo(_id, &_chain, _walk, uint8(_nextIndex - 1), uint8(me->movespline->_currentSplineIdx()), _msToNext);
}