From 6c15fb00e5b7cf39cd6dc97c302418710bc21212 Mon Sep 17 00:00:00 2001 From: Ovahlord Date: Sun, 25 Feb 2024 15:12:46 +0100 Subject: Core/Units: Update facing spline movement immediately after launching (#29494) --- src/server/game/Entities/Unit/Unit.cpp | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) (limited to 'src/server') diff --git a/src/server/game/Entities/Unit/Unit.cpp b/src/server/game/Entities/Unit/Unit.cpp index c19f5f1c05c..b67e15cdc0c 100644 --- a/src/server/game/Entities/Unit/Unit.cpp +++ b/src/server/game/Entities/Unit/Unit.cpp @@ -12582,7 +12582,9 @@ void Unit::SetFacingTo(float ori, bool force) init.SetFacing(ori); //GetMotionMaster()->LaunchMoveSpline(std::move(init), EVENT_FACE, MOTION_PRIORITY_HIGHEST); - init.Launch(); + UpdateSplineMovement(init.Launch()); + if (Creature* creature = ToCreature()) + creature->AI()->MovementInform(EFFECT_MOTION_TYPE, EVENT_FACE); } void Unit::SetFacingToObject(WorldObject const* object, bool force) @@ -12597,7 +12599,9 @@ void Unit::SetFacingToObject(WorldObject const* object, bool force) init.SetFacing(GetAbsoluteAngle(object)); // when on transport, GetAbsoluteAngle will still return global coordinates (and angle) that needs transforming //GetMotionMaster()->LaunchMoveSpline(std::move(init), EVENT_FACE, MOTION_PRIORITY_HIGHEST); - init.Launch(); + UpdateSplineMovement(init.Launch()); + if (Creature* creature = ToCreature()) + creature->AI()->MovementInform(EFFECT_MOTION_TYPE, EVENT_FACE); } void Unit::SetFacingToPoint(Position const& point, bool force) @@ -12614,7 +12618,9 @@ void Unit::SetFacingToPoint(Position const& point, bool force) init.SetFacing(point.GetPositionX(), point.GetPositionY(), point.GetPositionZ()); //GetMotionMaster()->LaunchMoveSpline(std::move(init), EVENT_FACE, MOTION_PRIORITY_HIGHEST); - init.Launch(); + UpdateSplineMovement(init.Launch()); + if (Creature* creature = ToCreature()) + creature->AI()->MovementInform(EFFECT_MOTION_TYPE, EVENT_FACE); } bool Unit::SetWalk(bool enable) -- cgit v1.2.3