aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Movement/MotionMaster.cpp
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2024-04-07 00:05:46 +0200
committerShauren <shauren.trinity@gmail.com>2024-04-07 00:05:46 +0200
commitbe3ae90dc488894afea8e4cca74d9105558fff53 (patch)
tree4edff4d861660895128cc4a199e5fe726a3d0c64 /src/server/game/Movement/MotionMaster.cpp
parentb265c49977235dea5e7e69d7b6fb93f4943bf87a (diff)
Core/Movement: Ensure land and takeoff animations even if gravity enabled/disabled state is not what spline generator expects
Diffstat (limited to 'src/server/game/Movement/MotionMaster.cpp')
-rw-r--r--src/server/game/Movement/MotionMaster.cpp5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/server/game/Movement/MotionMaster.cpp b/src/server/game/Movement/MotionMaster.cpp
index 7b43eea41ae..aec3bc208a8 100644
--- a/src/server/game/Movement/MotionMaster.cpp
+++ b/src/server/game/Movement/MotionMaster.cpp
@@ -713,6 +713,8 @@ void MotionMaster::MoveLand(uint32 id, Position const& pos, Optional<int32> tier
{
init.MoveTo(PositionToVector3(pos), false);
init.SetAnimation(AnimTier::Ground, tierTransitionId.value_or(1));
+ init.SetFly(); // ensure smooth animation even if gravity is enabled before calling this function
+ init.SetSmooth();
switch (speedSelectionMode)
{
case MovementWalkRunSpeedSelectionMode::ForceRun:
@@ -740,7 +742,8 @@ void MotionMaster::MoveTakeoff(uint32 id, Position const& pos, Optional<int32> t
std::function<void(Movement::MoveSplineInit&)> initializer = [=](Movement::MoveSplineInit& init)
{
init.MoveTo(PositionToVector3(pos), false);
- init.SetAnimation(AnimTier::Hover, tierTransitionId.value_or(15));
+ init.SetAnimation(AnimTier::Fly, tierTransitionId.value_or(2));
+ init.SetFly(); // ensure smooth animation even if gravity is disabled after calling this function
switch (speedSelectionMode)
{
case MovementWalkRunSpeedSelectionMode::ForceRun: