aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/server/game/AI/CoreAI/UnitAI.h5
-rw-r--r--src/server/game/AI/CreatureAI.h7
-rw-r--r--src/server/game/AI/SmartScripts/SmartAI.cpp5
-rw-r--r--src/server/game/AI/SmartScripts/SmartAI.h2
-rw-r--r--src/server/game/Movement/MovementGenerators/WaypointMovementGenerator.cpp10
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);
}