diff options
author | treeston <treeston.mmoc@gmail.com> | 2016-09-22 02:57:07 +0200 |
---|---|---|
committer | joschiwald <joschiwald.trinity@gmail.com> | 2017-03-02 21:13:34 +0100 |
commit | 8dc441ce49bc81942245a8b68dee729d96af5fb4 (patch) | |
tree | 69914fdbcc232bfb45df9871efbbdd9c8db8242e /src | |
parent | 852b7f8264bb15abf1f90878466efd7f01dc89fc (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.cpp | 7 |
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); } |