Core/AI: UnitAI.h trimming part two. WaypointX methods kicked upstairs to CreatureAI.h.

(cherry picked from commit 9c1e675590)
This commit is contained in:
Treeston
2018-01-01 17:22:29 +01:00
committed by Shauren
parent 0aed5a35ef
commit e0afca513a
5 changed files with 16 additions and 13 deletions

View File

@@ -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;

View File

@@ -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*/) { }

View File

@@ -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;
}
}

View File

@@ -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;

View File

@@ -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);
}