Core/Movement: adjust deactivation/reset logic inside GenericMovementGenerator

Deactivated GMGenerators will now Initialize if they never did.
Mimiron's script needs still some movement love.

closes #22037

(cherry picked from commit 24a9598e2c)
This commit is contained in:
ccrs
2018-06-15 12:49:11 +02:00
committed by Shauren
parent 30583be025
commit 4487933bd0

View File

@@ -36,14 +36,14 @@ GenericMovementGenerator::GenericMovementGenerator(Movement::MoveSplineInit&& sp
void GenericMovementGenerator::Initialize(Unit* /*owner*/)
{
if (HasFlag(MOVEMENTGENERATOR_FLAG_DEACTIVATED)) // Resume spline is not supported
if (HasFlag(MOVEMENTGENERATOR_FLAG_DEACTIVATED) && !HasFlag(MOVEMENTGENERATOR_FLAG_INITIALIZATION_PENDING)) // Resume spline is not supported
{
RemoveFlag(MOVEMENTGENERATOR_FLAG_DEACTIVATED);
AddFlag(MOVEMENTGENERATOR_FLAG_FINALIZED);
return;
}
RemoveFlag(MOVEMENTGENERATOR_FLAG_INITIALIZATION_PENDING);
RemoveFlag(MOVEMENTGENERATOR_FLAG_INITIALIZATION_PENDING | MOVEMENTGENERATOR_FLAG_DEACTIVATED);
AddFlag(MOVEMENTGENERATOR_FLAG_INITIALIZED);
_duration.Reset(_splineInit.Launch());