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

This commit is contained in:
Treeston
2018-01-01 17:22:29 +01:00
committed by Ovahlord
parent 85884c49bf
commit 2cc36c5eec
5 changed files with 16 additions and 13 deletions

View File

@@ -321,11 +321,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

@@ -208,6 +208,13 @@ class TC_GAME_API CreatureAI : public UnitAI
// Called when a player completes a quest and is rewarded, opt is the selected item's index or 0
virtual void QuestReward(Player* /*player*/, Quest const* /*quest*/, 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

@@ -417,11 +417,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

@@ -68,7 +68,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

@@ -59,8 +59,8 @@ void WaypointMovementGenerator<Creature>::DoInitialize(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>::DoFinalize(Creature* creature)
@@ -102,7 +102,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);
@@ -159,7 +159,7 @@ void WaypointMovementGenerator<Creature>::StartMove(Creature* creature, bool rel
creature->UpdateCurrentWaypointInfo(0, 0);
// inform AI
if (creature->AI())
if (creature->IsAIEnabled)
creature->AI()->WaypointPathEnded(waypoint.id, _path->id);
return;
}
@@ -167,7 +167,7 @@ void WaypointMovementGenerator<Creature>::StartMove(Creature* creature, bool rel
_currentNode = (_currentNode + 1) % _path->nodes.size();
// inform AI
if (creature->AI())
if (creature->IsAIEnabled)
creature->AI()->WaypointStarted(waypoint.id, _path->id);
}