Core/Movement: prevent double initialization calls if the generator was deactivated before being initialized

Port From (https://github.com/TrinityCore/TrinityCore/commit/30583be0252ff02f190e74d6f5a69da3e5ea7bb5)
This commit is contained in:
hondacrx
2021-09-29 18:35:14 -04:00
parent f8fd31b8c3
commit 5ace2d2c55
12 changed files with 13 additions and 15 deletions
@@ -51,7 +51,7 @@ namespace Game.Movement
public override void Initialize(Unit owner)
{
RemoveFlag(MovementGeneratorFlags.InitializationPending);
RemoveFlag(MovementGeneratorFlags.InitializationPending | MovementGeneratorFlags.Deactivated);
AddFlag(MovementGeneratorFlags.Initialized);
owner.SetWalk(false);
@@ -36,7 +36,7 @@ namespace Game.Movement
public override void DoInitialize(T owner)
{
RemoveFlag(MovementGeneratorFlags.InitializationPending);
RemoveFlag(MovementGeneratorFlags.InitializationPending | MovementGeneratorFlags.Transitory | MovementGeneratorFlags.Deactivated);
AddFlag(MovementGeneratorFlags.Initialized);
if (!owner || !owner.IsAlive())
@@ -39,7 +39,7 @@ namespace Game.Movement
public override void DoInitialize(T owner)
{
RemoveFlag(MovementGeneratorFlags.InitializationPending);
RemoveFlag(MovementGeneratorFlags.InitializationPending | MovementGeneratorFlags.Transitory | MovementGeneratorFlags.Deactivated);
AddFlag(MovementGeneratorFlags.Initialized);
if (owner == null || !owner.IsAlive())
@@ -38,7 +38,7 @@ namespace Game.Movement
public override void DoInitialize(Player owner)
{
RemoveFlag(MovementGeneratorFlags.InitializationPending);
RemoveFlag(MovementGeneratorFlags.InitializationPending | MovementGeneratorFlags.Deactivated);
AddFlag(MovementGeneratorFlags.Initialized);
DoReset(owner);
@@ -51,7 +51,7 @@ namespace Game.Movement
public override void Initialize(Unit owner)
{
RemoveFlag(MovementGeneratorFlags.InitializationPending);
RemoveFlag(MovementGeneratorFlags.InitializationPending | MovementGeneratorFlags.Deactivated);
AddFlag(MovementGeneratorFlags.Initialized);
owner.StopMoving();
@@ -38,7 +38,7 @@ namespace Game.Movement
public override void DoInitialize(Creature owner)
{
RemoveFlag(MovementGeneratorFlags.InitializationPending);
RemoveFlag(MovementGeneratorFlags.InitializationPending | MovementGeneratorFlags.Transitory | MovementGeneratorFlags.Deactivated);
AddFlag(MovementGeneratorFlags.Initialized);
if (owner.HasUnitState(UnitState.NotMove) || owner.IsMovementPreventedByCasting())
@@ -81,7 +81,6 @@ namespace Game.Movement
{
RemoveFlag(MovementGeneratorFlags.Transitory | MovementGeneratorFlags.Deactivated);
owner.StopMoving();
DoInitialize(owner);
}
@@ -33,7 +33,7 @@ namespace Game.AI
public override void DoInitialize(T owner)
{
RemoveFlag(MovementGeneratorFlags.InitializationPending);
RemoveFlag(MovementGeneratorFlags.InitializationPending | MovementGeneratorFlags.Deactivated);
AddFlag(MovementGeneratorFlags.Initialized);
SetTargetLocation(owner);
@@ -76,7 +76,7 @@ namespace Game.Movement
public override void Initialize(Unit owner)
{
RemoveFlag(MovementGeneratorFlags.InitializationPending);
RemoveFlag(MovementGeneratorFlags.InitializationPending | MovementGeneratorFlags.Deactivated);
AddFlag(MovementGeneratorFlags.Initialized);
owner.StopMoving();
@@ -161,7 +161,7 @@ namespace Game.Movement
public override void Initialize(Unit owner)
{
RemoveFlag(MovementGeneratorFlags.InitializationPending);
RemoveFlag(MovementGeneratorFlags.InitializationPending | MovementGeneratorFlags.Deactivated);
AddFlag(MovementGeneratorFlags.Initialized);
// Distracted creatures stand up if not standing
@@ -40,7 +40,7 @@ namespace Game.Movement
public override void DoInitialize(T owner)
{
RemoveFlag(MovementGeneratorFlags.InitializationPending);
RemoveFlag(MovementGeneratorFlags.InitializationPending | MovementGeneratorFlags.Deactivated);
AddFlag(MovementGeneratorFlags.Initialized);
if (_movementId == EventId.ChargePrepath)
@@ -84,7 +84,6 @@ namespace Game.Movement
{
RemoveFlag(MovementGeneratorFlags.Transitory | MovementGeneratorFlags.Deactivated);
owner.StopMoving();
DoInitialize(owner);
}
@@ -38,7 +38,7 @@ namespace Game.Movement
public override void DoInitialize(Creature owner)
{
RemoveFlag(MovementGeneratorFlags.InitializationPending);
RemoveFlag(MovementGeneratorFlags.InitializationPending | MovementGeneratorFlags.Transitory | MovementGeneratorFlags.Deactivated);
AddFlag(MovementGeneratorFlags.Initialized);
if (owner == null || !owner.IsAlive())
@@ -59,7 +59,7 @@ namespace Game.Movement
public override void Initialize(Unit owner)
{
RemoveFlag(MovementGeneratorFlags.InitializationPending);
RemoveFlag(MovementGeneratorFlags.InitializationPending | MovementGeneratorFlags.Deactivated);
AddFlag(MovementGeneratorFlags.Initialized);
if (_chainSize == 0)
@@ -95,7 +95,7 @@ namespace Game.Movement
public override void DoInitialize(Creature owner)
{
RemoveFlag(MovementGeneratorFlags.InitializationPending);
RemoveFlag(MovementGeneratorFlags.InitializationPending | MovementGeneratorFlags.Transitory | MovementGeneratorFlags.Deactivated);
if (_loadedFromDB)
{