From e10d7dd45cfc073c791cd5e5f3f964d14b37df3d Mon Sep 17 00:00:00 2001 From: ccrs Date: Mon, 6 Nov 2017 22:19:23 +0100 Subject: Core/Misc: waypoint movement - Creature: update current waypoint to store nodeId and pathId - MotionMaster: change variable type on GetMotionSlotType and GetMotionSlot to keep consistency and prevent errors (ASSERT is now no longer needed) - UnitAI: add new waypoint hooks WaypointPathStarted and WaypointPathEnded - SAI: handle WAYPOINT related events if creature is no escorting * SMART_EVENT_WAYPOINT_RESUMED still not implemented for no escorting TODO: the new hooks can save, now duplicated, logic on EscortAI and SAI closes #20777 updates #20310 updates 21bd52cb99 --- src/server/game/Movement/MotionMaster.cpp | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) (limited to 'src/server/game/Movement/MotionMaster.cpp') diff --git a/src/server/game/Movement/MotionMaster.cpp b/src/server/game/Movement/MotionMaster.cpp index b2027144487..3f77e472189 100644 --- a/src/server/game/Movement/MotionMaster.cpp +++ b/src/server/game/Movement/MotionMaster.cpp @@ -155,17 +155,19 @@ MovementGeneratorType MotionMaster::GetCurrentMovementGeneratorType() const return top()->GetMovementGeneratorType(); } -MovementGeneratorType MotionMaster::GetMotionSlotType(int slot) const +MovementGeneratorType MotionMaster::GetMotionSlotType(MovementSlot slot) const { - if (!_slot[slot]) + if (empty() || slot >= MAX_MOTION_SLOT || !_slot[slot]) return MAX_MOTION_TYPE; - else - return _slot[slot]->GetMovementGeneratorType(); + + return _slot[slot]->GetMovementGeneratorType(); } -MovementGenerator* MotionMaster::GetMotionSlot(int slot) const +MovementGenerator* MotionMaster::GetMotionSlot(MovementSlot slot) const { - ASSERT(slot >= 0); + if (empty() || slot >= MAX_MOTION_SLOT || !_slot[slot]) + return nullptr; + return _slot[slot]; } -- cgit v1.2.3