mirror of
https://github.com/TrinityCore/TrinityCore.git
synced 2026-01-16 07:30:42 +01:00
Core/AI: UnitAI.h trimming part two. WaypointX methods kicked upstairs to CreatureAI.h.
(cherry picked from commit 9c1e675590)
This commit is contained in:
@@ -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;
|
||||
|
||||
@@ -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*/) { }
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user