From 62afe3bf8eb0b10007655c5d69f86b17d9d29407 Mon Sep 17 00:00:00 2001 From: hondacrx Date: Sun, 26 Sep 2021 17:27:33 -0400 Subject: [PATCH] re-enable CreatureAI::MovementInform for Chase/FollowMovementGenerator - didn't realize any AI used this Port From (https://github.com/TrinityCore/TrinityCore/commit/5f0f530c0859982bc2c0c230d928aa3fc8d86d23) --- .../Generators/ChaseMovementGenerator.cs | 19 ++++++++++++++----- .../Generators/FollowMovementGenerator.cs | 14 +++++++++++++- 2 files changed, 27 insertions(+), 6 deletions(-) diff --git a/Source/Game/Movement/Generators/ChaseMovementGenerator.cs b/Source/Game/Movement/Generators/ChaseMovementGenerator.cs index 5042ec18d..35ff5afd2 100644 --- a/Source/Game/Movement/Generators/ChaseMovementGenerator.cs +++ b/Source/Game/Movement/Generators/ChaseMovementGenerator.cs @@ -16,13 +16,9 @@ */ using Framework.Constants; +using Game.AI; using Game.Entities; using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using Framework.GameMath; namespace Game.Movement { @@ -95,6 +91,7 @@ namespace Game.Movement _path = null; owner.StopMoving(); owner.SetInFront(target); + DoMovementInform(owner, target); return true; } } @@ -106,6 +103,7 @@ namespace Game.Movement _path = null; owner.ClearUnitState(UnitState.ChaseMove); owner.SetInFront(target); + DoMovementInform(owner, target); } // if the target moved, we have to consider whether to adjust @@ -211,5 +209,16 @@ namespace Game.Movement return false; return !angle.HasValue || angle.Value.IsAngleOkay(target.GetRelativeAngle(owner)); } + + static void DoMovementInform(Unit owner, Unit target) + { + Creature cOwner = owner.ToCreature(); + if (cOwner != null) + { + CreatureAI ai = cOwner.GetAI(); + if (ai != null) + ai.MovementInform(MovementGeneratorType.Chase, (uint)target.GetGUID().GetCounter()); + } + } } } diff --git a/Source/Game/Movement/Generators/FollowMovementGenerator.cs b/Source/Game/Movement/Generators/FollowMovementGenerator.cs index 3991ce78b..6f952833a 100644 --- a/Source/Game/Movement/Generators/FollowMovementGenerator.cs +++ b/Source/Game/Movement/Generators/FollowMovementGenerator.cs @@ -16,7 +16,7 @@ */ using Framework.Constants; -using Framework.GameMath; +using Game.AI; using Game.Entities; using System; @@ -75,6 +75,7 @@ namespace Game.Movement { _path = null; owner.StopMoving(); + DoMovementInform(owner, target); return true; } } @@ -84,6 +85,7 @@ namespace Game.Movement { _path = null; owner.ClearUnitState(UnitState.FollowMove); + DoMovementInform(owner, target); } if (_lastTargetPosition.GetExactDistSq(target.GetPosition()) > 0.0f) @@ -175,5 +177,15 @@ namespace Game.Movement return !angle.HasValue || angle.Value.IsAngleOkay(target.GetRelativeAngle(owner)); } + + static void DoMovementInform(Unit owner, Unit target) + { + if (!owner.IsCreature()) + return; + + UnitAI ai = owner.GetAI(); + if (ai != null) + ((CreatureAI)ai).MovementInform(MovementGeneratorType.Follow, (uint)target.GetGUID().GetCounter()); + } } }