From ea6bb10d12279c1cdf6f368e67d085c6e70f5cfd Mon Sep 17 00:00:00 2001 From: Shauren Date: Sun, 26 Oct 2025 09:55:59 +0100 Subject: Revert "Core/Entities: improve unit on death movement" This reverts commit f4d8105064afdf98212320b5bd1569f2af3fa68a. --- src/server/game/Entities/Creature/Creature.cpp | 7 +++++++ src/server/game/Entities/Unit/Unit.cpp | 21 +-------------------- src/server/game/Movement/MotionMaster.cpp | 2 ++ 3 files changed, 10 insertions(+), 20 deletions(-) (limited to 'src') diff --git a/src/server/game/Entities/Creature/Creature.cpp b/src/server/game/Entities/Creature/Creature.cpp index 0824a95f3c2..0cfa85c237b 100644 --- a/src/server/game/Entities/Creature/Creature.cpp +++ b/src/server/game/Entities/Creature/Creature.cpp @@ -2006,6 +2006,13 @@ void Creature::setDeathState(DeathState s) if (m_formation && m_formation->GetLeader() == this) m_formation->FormationReset(true); + bool needsFalling = (IsFlying() || IsHovering()) && !IsUnderWater(); + SetHover(false, false); + SetDisableGravity(false, false); + + if (needsFalling) + GetMotionMaster()->MoveFall(); + Unit::setDeathState(CORPSE); } else if (s == JUST_RESPAWNED) diff --git a/src/server/game/Entities/Unit/Unit.cpp b/src/server/game/Entities/Unit/Unit.cpp index cca0d47a7e2..213329d3e96 100644 --- a/src/server/game/Entities/Unit/Unit.cpp +++ b/src/server/game/Entities/Unit/Unit.cpp @@ -8760,28 +8760,9 @@ void Unit::setDeathState(DeathState s) if (!isOnVehicle) { if (GetMotionMaster()->StopOnDeath()) - { - if (!HasUnitState(UNIT_STATE_ROOT | UNIT_STATE_STUNNED) && GetTypeId() == TYPEID_UNIT && ToCreature()->IsInAir(*this, GetFloorZ(), false) && !IsUnderWater()) - { - GetMotionMaster()->AddFlag(MOTIONMASTER_FLAG_STATIC_PREVENT_INITIALIZATION); - SetFall(true); - Movement::MoveSplineInit init(this); - init.MoveTo(GetPositionX(), GetPositionY(), GetFloorZ(), false, true); - init.SetFall(); - init.Launch(); - } - else - { - StopMoving(); - DisableSpline(); - } - } + DisableSpline(); } - SetDisableGravity(false); - SetCanFly(false); - SetHover(false); - // without this when removing IncreaseMaxHealth aura player may stuck with 1 hp // do not why since in IncreaseMaxHealth currenthealth is checked SetHealth(0); diff --git a/src/server/game/Movement/MotionMaster.cpp b/src/server/game/Movement/MotionMaster.cpp index 444847d355d..b26d769da59 100644 --- a/src/server/game/Movement/MotionMaster.cpp +++ b/src/server/game/Movement/MotionMaster.cpp @@ -563,6 +563,8 @@ bool MotionMaster::StopOnDeath() MoveIdle(); } + _owner->StopMoving(); + return true; } -- cgit v1.2.3