From 696ab70f7f5f612cc61d50ff38b7d0de0d2d6440 Mon Sep 17 00:00:00 2001 From: Ovahlord Date: Mon, 29 Jun 2020 12:15:17 +0200 Subject: [PATCH] Core/Movement: moved the cleanup of the idle motion slot to CleanupBeforeRemoveFromMap --- src/server/game/Entities/Unit/Unit.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/server/game/Entities/Unit/Unit.cpp b/src/server/game/Entities/Unit/Unit.cpp index c9beaa1a79f..9483f04394e 100644 --- a/src/server/game/Entities/Unit/Unit.cpp +++ b/src/server/game/Entities/Unit/Unit.cpp @@ -10449,8 +10449,6 @@ void Unit::RemoveFromWorld() RemoveAreaAurasDueToLeaveWorld(); - GetMotionMaster()->Clear(MOTION_SLOT_IDLE); // clear idle movement slot to finalize follow movement to unregister formation targets - if (GetCharmerGUID()) { TC_LOG_FATAL("entities.unit", "Unit %u has charmer guid when removed from world", GetEntry()); @@ -10476,6 +10474,9 @@ void Unit::CleanupBeforeRemoveFromMap(bool finalCleanup) // This needs to be before RemoveFromWorld to make GetCaster() return a valid pointer on aura removal InterruptNonMeleeSpells(true); + // clear idle movement slot to finalize follow movement to unregister formation targets + GetMotionMaster()->Clear(MOTION_SLOT_IDLE); + if (IsInWorld()) RemoveFromWorld();