Core/Movement: adjust deactivation/reset logic inside GenericMovementGenerator

Port From (https://github.com/TrinityCore/TrinityCore/commit/4487933bd078c2d0087610de967f69f46cf4da60)
This commit is contained in:
hondacrx
2021-09-29 19:23:47 -04:00
parent 5ace2d2c55
commit 8d052d7d51
@@ -48,14 +48,14 @@ namespace Game.Movement
public override void Initialize(Unit owner) public override void Initialize(Unit owner)
{ {
if (HasFlag(MovementGeneratorFlags.Deactivated)) // Resume spline is not supported if (HasFlag(MovementGeneratorFlags.Deactivated) && !HasFlag(MovementGeneratorFlags.InitializationPending)) // Resume spline is not supported
{ {
RemoveFlag(MovementGeneratorFlags.Deactivated); RemoveFlag(MovementGeneratorFlags.Deactivated);
AddFlag(MovementGeneratorFlags.Finalized); AddFlag(MovementGeneratorFlags.Finalized);
return; return;
} }
RemoveFlag(MovementGeneratorFlags.InitializationPending); RemoveFlag(MovementGeneratorFlags.InitializationPending | MovementGeneratorFlags.Deactivated);
AddFlag(MovementGeneratorFlags.Initialized); AddFlag(MovementGeneratorFlags.Initialized);
_duration.Reset(_splineInit.Launch()); _duration.Reset(_splineInit.Launch());