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:
@@ -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)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user