Core/Movement: remove redundant method MovementGenerator::NotifyAIOnFinalize and use existing Finalize - MovementInform implementation

Port From (https://github.com/TrinityCore/TrinityCore/commit/0e0deaefd4e84c8069f6249778774f605fc5e628)
This commit is contained in:
hondacrx
2022-05-26 20:08:35 -04:00
parent 20a4e31167
commit 558e976a5e
5 changed files with 13 additions and 17 deletions
+1 -1
View File
@@ -118,7 +118,7 @@ namespace Game.AI
me.SetControlled(true, UnitState.Fleeing); me.SetControlled(true, UnitState.Fleeing);
} }
public override void OnMovementGeneratorFinalized(MovementGeneratorType type) public override void MovementInform(MovementGeneratorType type, uint id)
{ {
if (type == MovementGeneratorType.TimedFleeing) if (type == MovementGeneratorType.TimedFleeing)
EnterEvadeMode(EvadeReason.Other); EnterEvadeMode(EvadeReason.Other);
-2
View File
@@ -498,8 +498,6 @@ namespace Game.AI
/// </summary> /// </summary>
public virtual void OnGameEvent(bool start, ushort eventId) { } public virtual void OnGameEvent(bool start, ushort eventId) { }
public virtual void OnMovementGeneratorFinalized(MovementGeneratorType type) { }
public virtual string GetDebugInfo() public virtual string GetDebugInfo()
{ {
return $"Me: {(me != null ? me.GetDebugInfo() : "NULL")}"; return $"Me: {(me != null ? me.GetDebugInfo() : "NULL")}";
@@ -16,6 +16,7 @@
*/ */
using Framework.Constants; using Framework.Constants;
using Game.AI;
using Game.Entities; using Game.Entities;
using System; using System;
@@ -208,9 +209,9 @@ namespace Game.Movement
TimeTracker _timer; TimeTracker _timer;
} }
public class TimedFleeingGenerator : FleeingMovementGenerator<Creature> public class TimedFleeingMovementGenerator : FleeingMovementGenerator<Creature>
{ {
public TimedFleeingGenerator(ObjectGuid fright, uint time) : base(fright) public TimedFleeingMovementGenerator(ObjectGuid fright, uint time) : base(fright)
{ {
_totalFleeTime = new TimeTracker(time); _totalFleeTime = new TimeTracker(time);
} }
@@ -243,6 +244,14 @@ namespace Game.Movement
owner.ToCreature().GetAI().AttackStart(victim); owner.ToCreature().GetAI().AttackStart(victim);
} }
} }
if (movementInform)
{
Creature ownerCreature = owner.ToCreature();
CreatureAI ai = ownerCreature != null ? ownerCreature.GetAI() : null;
if (ai != null)
ai.MovementInform(MovementGeneratorType.TimedFleeing, 0);
}
} }
public override MovementGeneratorType GetMovementGeneratorType() public override MovementGeneratorType GetMovementGeneratorType()
@@ -61,12 +61,6 @@ namespace Game.Movement
return false; return false;
} }
public void NotifyAIOnFinalize(Unit obj)
{
UnitAI ai = obj.GetAI();
ai?.OnMovementGeneratorFinalized(GetMovementGeneratorType());
}
public void AddFlag(MovementGeneratorFlags flag) { Flags |= flag; } public void AddFlag(MovementGeneratorFlags flag) { Flags |= flag; }
public bool HasFlag(MovementGeneratorFlags flag) { return (Flags & flag) != 0; } public bool HasFlag(MovementGeneratorFlags flag) { return (Flags & flag) != 0; }
public void RemoveFlag(MovementGeneratorFlags flag) { Flags &= ~flag; } public void RemoveFlag(MovementGeneratorFlags flag) { Flags &= ~flag; }
+1 -6
View File
@@ -580,7 +580,7 @@ namespace Game.Movement
if (_owner.IsCreature()) if (_owner.IsCreature())
{ {
if (time != 0) if (time != 0)
Add(new TimedFleeingGenerator(enemy.GetGUID(), time)); Add(new TimedFleeingMovementGenerator(enemy.GetGUID(), time));
else else
Add(new FleeingMovementGenerator<Creature>(enemy.GetGUID())); Add(new FleeingMovementGenerator<Creature>(enemy.GetGUID()));
} }
@@ -1119,10 +1119,7 @@ namespace Game.Movement
{ {
case MovementSlot.Default: case MovementSlot.Default:
if (_defaultGenerator != null) if (_defaultGenerator != null)
{
_defaultGenerator.Finalize(_owner, _generators.Empty(), false); _defaultGenerator.Finalize(_owner, _generators.Empty(), false);
_defaultGenerator.NotifyAIOnFinalize(_owner);
}
_defaultGenerator = movement; _defaultGenerator = movement;
if (IsStatic(movement)) if (IsStatic(movement))
@@ -1160,14 +1157,12 @@ namespace Game.Movement
void Delete(MovementGenerator movement, bool active, bool movementInform) void Delete(MovementGenerator movement, bool active, bool movementInform)
{ {
movement.Finalize(_owner, active, movementInform); movement.Finalize(_owner, active, movementInform);
movement.NotifyAIOnFinalize(_owner);
ClearBaseUnitState(movement); ClearBaseUnitState(movement);
} }
void DeleteDefault(bool active, bool movementInform) void DeleteDefault(bool active, bool movementInform)
{ {
_defaultGenerator.Finalize(_owner, active, movementInform); _defaultGenerator.Finalize(_owner, active, movementInform);
_defaultGenerator.NotifyAIOnFinalize(_owner);
_defaultGenerator = GetIdleMovementGenerator(); _defaultGenerator = GetIdleMovementGenerator();
AddFlag(MotionMasterFlags.StaticInitializationPending); AddFlag(MotionMasterFlags.StaticInitializationPending);
} }