diff --git a/Source/Game/AI/CoreAI/CreatureAI.cs b/Source/Game/AI/CoreAI/CreatureAI.cs index 93cf5d500..19f08cfbe 100644 --- a/Source/Game/AI/CoreAI/CreatureAI.cs +++ b/Source/Game/AI/CoreAI/CreatureAI.cs @@ -500,6 +500,16 @@ namespace Game.AI } public virtual void QuestReward(Player player, Quest quest, LootItemType type, uint opt) { } + /// == Waypoints system ============================= + + public virtual void WaypointPathStarted(uint pathId) { } + + public virtual void WaypointStarted(uint nodeId, uint pathId) { } + + public virtual void WaypointReached(uint nodeId, uint pathId) { } + + public virtual void WaypointPathEnded(uint nodeId, uint pathId) { } + public virtual void PassengerBoarded(Unit passenger, sbyte seatId, bool apply) { } public virtual void OnSpellClick(Unit clicker, ref bool result) { } diff --git a/Source/Game/AI/CoreAI/UnitAI.cs b/Source/Game/AI/CoreAI/UnitAI.cs index 24c207bac..22b3303a5 100644 --- a/Source/Game/AI/CoreAI/UnitAI.cs +++ b/Source/Game/AI/CoreAI/UnitAI.cs @@ -496,14 +496,6 @@ namespace Game.AI /// public virtual void OnGameEvent(bool start, ushort eventId) { } - public virtual void WaypointPathStarted(uint nodeId, uint pathId) { } - - public virtual void WaypointStarted(uint nodeId, uint pathId) { } - - public virtual void WaypointReached(uint nodeId, uint pathId) { } - - public virtual void WaypointPathEnded(uint nodeId, uint pathId) { } - public static AISpellInfoType GetAISpellInfo(uint spellId, Difficulty difficulty) { return _aiSpellInfo.LookupByKey((spellId, difficulty)); diff --git a/Source/Game/AI/SmartScripts/SmartAI.cs b/Source/Game/AI/SmartScripts/SmartAI.cs index 5b747d91a..f6cbffdee 100644 --- a/Source/Game/AI/SmartScripts/SmartAI.cs +++ b/Source/Game/AI/SmartScripts/SmartAI.cs @@ -390,11 +390,12 @@ namespace Game.AI return true; } - public override void WaypointPathStarted(uint nodeId, uint pathId) + public override void WaypointPathStarted(uint pathId) { if (!HasEscortState(SmartEscortState.Escorting)) { - GetScript().ProcessEventsFor(SmartEvents.WaypointStart, null, nodeId, pathId); + // @todo remove the constant 1 at some point, it's never anything different + GetScript().ProcessEventsFor(SmartEvents.WaypointStart, null, 1, pathId); return; } } diff --git a/Source/Game/Movement/Generators/WaypointMovement.cs b/Source/Game/Movement/Generators/WaypointMovement.cs index 47257f59f..3150f0394 100644 --- a/Source/Game/Movement/Generators/WaypointMovement.cs +++ b/Source/Game/Movement/Generators/WaypointMovement.cs @@ -59,8 +59,8 @@ namespace Game.Movement _nextMoveTime.Reset(1000); // inform AI - if (creature.GetAI() != null) - creature.GetAI().WaypointPathStarted(1, _path.id); + if (creature.IsAIEnabled) + creature.GetAI().WaypointPathStarted(_path.id); } public override void DoInitialize(Creature creature)