aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/server/game/Entities/Unit/Unit.cpp2
-rw-r--r--src/server/game/Movement/MotionMaster.h1
-rw-r--r--src/server/game/Movement/MovementGenerators/ChaseMovementGenerator.cpp2
3 files changed, 3 insertions, 2 deletions
diff --git a/src/server/game/Entities/Unit/Unit.cpp b/src/server/game/Entities/Unit/Unit.cpp
index 390d9855ce1..f5a4e806dca 100644
--- a/src/server/game/Entities/Unit/Unit.cpp
+++ b/src/server/game/Entities/Unit/Unit.cpp
@@ -8064,7 +8064,7 @@ void Unit::UpdateSpeed(UnitMoveType mtype)
if (creature->HasUnitTypeMask(UNIT_MASK_MINION) && !creature->IsInCombat())
{
- MovementGenerator* top = creature->GetMotionMaster()->top();
+ MovementGenerator* top = creature->GetMotionMaster()->topOrNull();
if (top && top->GetMovementGeneratorType() == FOLLOW_MOTION_TYPE)
{
Unit* followed = ASSERT_NOTNULL(dynamic_cast<AbstractFollower*>(top))->GetTarget();
diff --git a/src/server/game/Movement/MotionMaster.h b/src/server/game/Movement/MotionMaster.h
index f03f553e288..c3cf37424cb 100644
--- a/src/server/game/Movement/MotionMaster.h
+++ b/src/server/game/Movement/MotionMaster.h
@@ -144,6 +144,7 @@ class TC_GAME_API MotionMaster
bool empty() const { return (_top < 0); }
int size() const { return _top + 1; }
+ MovementGenerator* topOrNull() const { return empty() ? nullptr : top(); }
MovementGenerator* top() const { ASSERT(!empty()); return _slot[_top]; }
void Initialize();
diff --git a/src/server/game/Movement/MovementGenerators/ChaseMovementGenerator.cpp b/src/server/game/Movement/MovementGenerators/ChaseMovementGenerator.cpp
index a84139cca2d..230edbdc861 100644
--- a/src/server/game/Movement/MovementGenerators/ChaseMovementGenerator.cpp
+++ b/src/server/game/Movement/MovementGenerators/ChaseMovementGenerator.cpp
@@ -26,7 +26,7 @@
static bool IsMutualChase(Unit* owner, Unit* target)
{
- MovementGenerator const* gen = target->GetMotionMaster()->top();
+ MovementGenerator const* gen = target->GetMotionMaster()->topOrNull();
if (!gen || gen->GetMovementGeneratorType() != CHASE_MOTION_TYPE)
return false;
return (static_cast<ChaseMovementGenerator const*>(gen)->GetTarget() == owner);