aboutsummaryrefslogtreecommitdiff
path: root/src/server/game
diff options
context:
space:
mode:
Diffstat (limited to 'src/server/game')
-rw-r--r--src/server/game/Movement/Spline/MoveSplineInit.cpp2
-rw-r--r--src/server/game/Movement/Spline/MoveSplineInit.h15
-rw-r--r--src/server/game/Server/Packets/MovementPackets.cpp2
-rw-r--r--src/server/game/Server/Packets/MovementPackets.h2
4 files changed, 12 insertions, 9 deletions
diff --git a/src/server/game/Movement/Spline/MoveSplineInit.cpp b/src/server/game/Movement/Spline/MoveSplineInit.cpp
index 0f8ac3c2cc4..0bbfbc46910 100644
--- a/src/server/game/Movement/Spline/MoveSplineInit.cpp
+++ b/src/server/game/Movement/Spline/MoveSplineInit.cpp
@@ -272,7 +272,7 @@ namespace Movement
args.facing.type = MONSTER_MOVE_FACING_ANGLE;
}
- void MoveSplineInit::MovebyPath(PointsArray const& path, int32 pointId)
+ void MoveSplineInit::MovebyPath(std::span<Vector3 const> path, int32 pointId)
{
args.path_Idx_offset = pointId;
args.path.resize(path.size());
diff --git a/src/server/game/Movement/Spline/MoveSplineInit.h b/src/server/game/Movement/Spline/MoveSplineInit.h
index 2461fc1b5d3..8902b4ae943 100644
--- a/src/server/game/Movement/Spline/MoveSplineInit.h
+++ b/src/server/game/Movement/Spline/MoveSplineInit.h
@@ -19,6 +19,7 @@
#define TRINITYSERVER_MOVESPLINEINIT_H
#include "MoveSplineInitArgs.h"
+#include <span>
#include <variant>
class ObjectGuid;
@@ -82,7 +83,7 @@ namespace Movement
* @param path - array of points, shouldn't be empty
* @param pointId - Id of fisrt point of the path. Example: when third path point will be done it will notify that pointId + 3 done
*/
- void MovebyPath(PointsArray const& path, int32 pointId = 0);
+ void MovebyPath(std::span<Vector3 const> path, int32 pointId = 0);
/* Initializes simple A to B motion, A is current unit's position, B is destination
*/
@@ -190,6 +191,7 @@ namespace Movement
args.parabolic_amplitude = amplitude;
args.vertical_acceleration = 0.0f;
args.flags.Parabolic = true;
+ args.animTier.reset();
}
inline void MoveSplineInit::SetParabolicVerticalAcceleration(float vertical_acceleration, int32 start_point)
@@ -198,16 +200,17 @@ namespace Movement
args.parabolic_amplitude = 0.0f;
args.vertical_acceleration = vertical_acceleration;
args.flags.Parabolic = true;
+ args.animTier.reset();
}
inline void MoveSplineInit::SetAnimation(AnimTier anim, uint32 tierTransitionId /*= 0*/, int32 transitionStartPoint /*= 0*/)
{
args.effect_start_point = transitionStartPoint;
- args.animTier.emplace();
- args.animTier->TierTransitionId = tierTransitionId;
- args.animTier->AnimTier = anim;
- if (!tierTransitionId)
- args.flags.Animation = true;
+ AnimTierTransition& animTier = args.animTier.emplace();
+ animTier.TierTransitionId = tierTransitionId;
+ animTier.AnimTier = anim;
+ args.flags.Raw &= ~args.flags.Animation.DisallowedFlag;
+ args.flags.Animation = tierTransitionId == 0;
}
inline void MoveSplineInit::DisableTransportPathTransformations() { args.TransformForTransport = false; }
diff --git a/src/server/game/Server/Packets/MovementPackets.cpp b/src/server/game/Server/Packets/MovementPackets.cpp
index 07ff6f59274..c07b91f2997 100644
--- a/src/server/game/Server/Packets/MovementPackets.cpp
+++ b/src/server/game/Server/Packets/MovementPackets.cpp
@@ -320,7 +320,7 @@ ByteBuffer& operator<<(ByteBuffer& data, MonsterSplineAnimTierTransition const&
data << int32(animTierTransition.TierTransitionID);
data << uint8(animTierTransition.AnimTier);
data << uint32(animTierTransition.StartTime);
- data << uint32(animTierTransition.EndTime);
+ data << uint32(animTierTransition.ExtraDuration);
return data;
}
diff --git a/src/server/game/Server/Packets/MovementPackets.h b/src/server/game/Server/Packets/MovementPackets.h
index 8ad8b641cf5..9f9cd70ccf4 100644
--- a/src/server/game/Server/Packets/MovementPackets.h
+++ b/src/server/game/Server/Packets/MovementPackets.h
@@ -101,7 +101,7 @@ namespace WorldPackets
{
int32 TierTransitionID = 0;
uint32 StartTime = 0;
- uint32 EndTime = 0;
+ uint32 ExtraDuration = 0; ///< Duration of the transition (unit does not move during this time)
uint8 AnimTier = 0;
};