From 65007add1277d904e73ec92235b77565e75efa7d Mon Sep 17 00:00:00 2001 From: Hondacrx Date: Sun, 4 Aug 2024 16:40:44 -0400 Subject: [PATCH] Core/Movement: Added Velocity field to waypoint_path table Port From (https://github.com/TrinityCore/TrinityCore/commit/e8f7d4153622aea70ac74fb73e134d51cdac821d) --- .../Game/Movement/Generators/WaypointMovement.cs | 3 +++ Source/Game/Movement/WaypointManager.cs | 14 +++++++++++++- 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/Source/Game/Movement/Generators/WaypointMovement.cs b/Source/Game/Movement/Generators/WaypointMovement.cs index 63f4d6723..3dc4071a1 100644 --- a/Source/Game/Movement/Generators/WaypointMovement.cs +++ b/Source/Game/Movement/Generators/WaypointMovement.cs @@ -430,6 +430,9 @@ namespace Game.Movement break; } + if (_path.Velocity.HasValue && !_speed.HasValue) + _speed = _path.Velocity; + if (_speed.HasValue) init.SetVelocity(_speed.Value); diff --git a/Source/Game/Movement/WaypointManager.cs b/Source/Game/Movement/WaypointManager.cs index 545820034..e19706bbb 100644 --- a/Source/Game/Movement/WaypointManager.cs +++ b/Source/Game/Movement/WaypointManager.cs @@ -76,7 +76,6 @@ namespace Game uint pathId = fields.Read(0); WaypointPath path = new(); - path.Id = pathId; path.MoveType = (WaypointMoveType)fields.Read(1); if (path.MoveType >= WaypointMoveType.Max) @@ -84,7 +83,19 @@ namespace Game Log.outError(LogFilter.Sql, $"PathId {pathId} in `waypoint_path` has invalid MoveType {path.MoveType}, ignoring"); return; } + + path.Id = pathId; path.Flags = (WaypointPathFlags)fields.Read(2); + + if (!fields.IsNull(3)) + { + float velocity = fields.Read(3); + if (velocity > 0.0f) + path.Velocity = velocity; + else + Log.outError(LogFilter.Sql, $"PathId {pathId} in `waypoint_path` has invalid velocity {velocity}, using default velocity instead"); + } + path.Nodes.Clear(); _pathStorage.Add(pathId, path); @@ -325,6 +336,7 @@ namespace Game public uint Id; public WaypointMoveType MoveType; public WaypointPathFlags Flags = WaypointPathFlags.None; + public float? Velocity; } public enum WaypointMoveType