From 6e28ecd22ea5ba8a7a2d0b08217aa68010b1cfc4 Mon Sep 17 00:00:00 2001 From: Giacomo Pozzoni Date: Tue, 28 May 2019 16:05:22 +0200 Subject: Core/Movement: Fix assertion triggered in SplineChainMovementGenerator Fix an assertion triggered in SplineChainMovementGenerator happening when a new generator is added while last spline of the SplineChainMovementGenerator is being processed but is not finalized yet. Fix #23077 (cherry picked from commit 5d7f0eef6e2f89d5dbeb0a702f7a35c95626240e) --- .../Movement/MovementGenerators/SplineChainMovementGenerator.cpp | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'src/server/game') diff --git a/src/server/game/Movement/MovementGenerators/SplineChainMovementGenerator.cpp b/src/server/game/Movement/MovementGenerators/SplineChainMovementGenerator.cpp index aad994a8c70..c3eed855aee 100644 --- a/src/server/game/Movement/MovementGenerators/SplineChainMovementGenerator.cpp +++ b/src/server/game/Movement/MovementGenerators/SplineChainMovementGenerator.cpp @@ -89,6 +89,13 @@ void SplineChainMovementGenerator::Initialize(Unit* owner) return; } + if (_nextIndex >= _chainSize) + { + TC_LOG_WARN("movement", "SplineChainMovementGenerator::Initialize: couldn't initialize generator, _nextIndex is >= _chainSize (%s)", owner->GetGUID().ToString().c_str()); + _msToNext = 0; + return; + } + if (_nextFirstWP) // this is a resumed movegen that has to start with a partial spline { if (HasFlag(MOVEMENTGENERATOR_FLAG_FINALIZED)) -- cgit v1.2.3