diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/server/game/AI/CoreAI/UnitAI.h | 5 | ||||
| -rw-r--r-- | src/server/game/AI/CreatureAI.h | 7 | ||||
| -rw-r--r-- | src/server/game/AI/SmartScripts/SmartAI.cpp | 5 | ||||
| -rw-r--r-- | src/server/game/AI/SmartScripts/SmartAI.h | 2 | ||||
| -rw-r--r-- | src/server/game/Movement/MovementGenerators/WaypointMovementGenerator.cpp | 10 |
5 files changed, 16 insertions, 13 deletions
diff --git a/src/server/game/AI/CoreAI/UnitAI.h b/src/server/game/AI/CoreAI/UnitAI.h index bb5aee7b9d9..b2cf0564546 100644 --- a/src/server/game/AI/CoreAI/UnitAI.h +++ b/src/server/game/AI/CoreAI/UnitAI.h @@ -319,11 +319,6 @@ class TC_GAME_API UnitAI // Called when a game event starts or ends virtual void OnGameEvent(bool /*start*/, uint16 /*eventId*/) { } - virtual void WaypointPathStarted(uint32 /*nodeId*/, uint32 /*pathId*/) { } - virtual void WaypointStarted(uint32 /*nodeId*/, uint32 /*pathId*/) { } - virtual void WaypointReached(uint32 /*nodeId*/, uint32 /*pathId*/) { } - virtual void WaypointPathEnded(uint32 /*nodeId*/, uint32 /*pathId*/) { } - private: UnitAI(UnitAI const& right) = delete; UnitAI& operator=(UnitAI const& right) = delete; diff --git a/src/server/game/AI/CreatureAI.h b/src/server/game/AI/CreatureAI.h index fca77f0a5a4..007285a297a 100644 --- a/src/server/game/AI/CreatureAI.h +++ b/src/server/game/AI/CreatureAI.h @@ -193,6 +193,13 @@ class TC_GAME_API CreatureAI : public UnitAI virtual void QuestReward(Player* player, Quest const* quest, uint32 opt); virtual void QuestReward(Player* /*player*/, Quest const* /*quest*/, LootItemType /*type*/, uint32 /*opt*/) { } + /// == Waypoints system ============================= + + virtual void WaypointPathStarted(uint32 /*pathId*/) { } + virtual void WaypointStarted(uint32 /*nodeId*/, uint32 /*pathId*/) { } + virtual void WaypointReached(uint32 /*nodeId*/, uint32 /*pathId*/) { } + virtual void WaypointPathEnded(uint32 /*nodeId*/, uint32 /*pathId*/) { } + /// == Fields ======================================= virtual void PassengerBoarded(Unit* /*passenger*/, int8 /*seatId*/, bool /*apply*/) { } diff --git a/src/server/game/AI/SmartScripts/SmartAI.cpp b/src/server/game/AI/SmartScripts/SmartAI.cpp index 09458097d77..10efffbca77 100644 --- a/src/server/game/AI/SmartScripts/SmartAI.cpp +++ b/src/server/game/AI/SmartScripts/SmartAI.cpp @@ -342,11 +342,12 @@ bool SmartAI::IsEscortInvokerInRange() } ///@todo move escort related logic -void SmartAI::WaypointPathStarted(uint32 nodeId, uint32 pathId) +void SmartAI::WaypointPathStarted(uint32 pathId) { if (!HasEscortState(SMART_ESCORT_ESCORTING)) { - GetScript()->ProcessEventsFor(SMART_EVENT_WAYPOINT_START, nullptr, nodeId, pathId); + // @todo remove the constant 1 at some point, it's never anything different + GetScript()->ProcessEventsFor(SMART_EVENT_WAYPOINT_START, nullptr, 1, pathId); return; } } diff --git a/src/server/game/AI/SmartScripts/SmartAI.h b/src/server/game/AI/SmartScripts/SmartAI.h index 10aa34cc4a1..9b2d24906ba 100644 --- a/src/server/game/AI/SmartScripts/SmartAI.h +++ b/src/server/game/AI/SmartScripts/SmartAI.h @@ -69,7 +69,7 @@ class TC_GAME_API SmartAI : public CreatureAI void StopFollow(bool complete); bool IsEscortInvokerInRange(); - void WaypointPathStarted(uint32 nodeId, uint32 pathId) override; + void WaypointPathStarted(uint32 pathId) override; void WaypointStarted(uint32 nodeId, uint32 pathId) override; void WaypointReached(uint32 nodeId, uint32 pathId) override; void WaypointPathEnded(uint32 nodeId, uint32 pathId) override; diff --git a/src/server/game/Movement/MovementGenerators/WaypointMovementGenerator.cpp b/src/server/game/Movement/MovementGenerators/WaypointMovementGenerator.cpp index 8835131a81a..e5b0c475f0c 100644 --- a/src/server/game/Movement/MovementGenerators/WaypointMovementGenerator.cpp +++ b/src/server/game/Movement/MovementGenerators/WaypointMovementGenerator.cpp @@ -62,8 +62,8 @@ void WaypointMovementGenerator<Creature>::LoadPath(Creature* creature) _nextMoveTime.Reset(1000); // inform AI - if (creature->AI()) - creature->AI()->WaypointPathStarted(1, _path->id); + if (creature->IsAIEnabled) + creature->AI()->WaypointPathStarted(_path->id); } void WaypointMovementGenerator<Creature>::DoInitialize(Creature* creature) @@ -111,7 +111,7 @@ void WaypointMovementGenerator<Creature>::OnArrived(Creature* creature) } // inform AI - if (creature->AI()) + if (creature->IsAIEnabled) { creature->AI()->MovementInform(WAYPOINT_MOTION_TYPE, _currentNode); creature->AI()->WaypointReached(waypoint.id, _path->id); @@ -168,7 +168,7 @@ bool WaypointMovementGenerator<Creature>::StartMove(Creature* creature) creature->UpdateCurrentWaypointInfo(0, 0); // inform AI - if (creature->AI()) + if (creature->IsAIEnabled) creature->AI()->WaypointPathEnded(waypoint.id, _path->id); return true; } @@ -176,7 +176,7 @@ bool WaypointMovementGenerator<Creature>::StartMove(Creature* creature) _currentNode = (_currentNode + 1) % _path->nodes.size(); // inform AI - if (creature->AI()) + if (creature->IsAIEnabled) creature->AI()->WaypointStarted(waypoint.id, _path->id); } |
