From 077ac3988da7e3f4385c97b713d3fa01763edb56 Mon Sep 17 00:00:00 2001 From: hondacrx Date: Mon, 11 Jul 2022 22:20:56 -0400 Subject: [PATCH] Core/Movement: Some movement fixes --- Source/Game/Handlers/MovementHandler.cs | 2 ++ Source/Game/Movement/Generators/ChaseMovementGenerator.cs | 4 ++-- Source/Game/Movement/Generators/FollowMovementGenerator.cs | 2 +- 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/Source/Game/Handlers/MovementHandler.cs b/Source/Game/Handlers/MovementHandler.cs index 614e777a0..48a21f131 100644 --- a/Source/Game/Handlers/MovementHandler.cs +++ b/Source/Game/Handlers/MovementHandler.cs @@ -40,6 +40,7 @@ namespace Game [WorldPacketHandler(ClientOpcodes.MoveHeartbeat, Processing = PacketProcessing.ThreadSafe)] [WorldPacketHandler(ClientOpcodes.MoveJump, Processing = PacketProcessing.ThreadSafe)] [WorldPacketHandler(ClientOpcodes.MoveSetFacing, Processing = PacketProcessing.ThreadSafe)] + [WorldPacketHandler(ClientOpcodes.MoveSetFacingHeartbeat, Processing = PacketProcessing.ThreadSafe)] [WorldPacketHandler(ClientOpcodes.MoveSetFly, Processing = PacketProcessing.ThreadSafe)] [WorldPacketHandler(ClientOpcodes.MoveSetPitch, Processing = PacketProcessing.ThreadSafe)] [WorldPacketHandler(ClientOpcodes.MoveSetRunMode, Processing = PacketProcessing.ThreadSafe)] @@ -61,6 +62,7 @@ namespace Game [WorldPacketHandler(ClientOpcodes.MoveStopStrafe, Processing = PacketProcessing.ThreadSafe)] [WorldPacketHandler(ClientOpcodes.MoveStopSwim, Processing = PacketProcessing.ThreadSafe)] [WorldPacketHandler(ClientOpcodes.MoveStopTurn, Processing = PacketProcessing.ThreadSafe)] + [WorldPacketHandler(ClientOpcodes.MoveUpdateFallSpeed, Processing = PacketProcessing.ThreadSafe)] void HandleMovement(ClientPlayerMovement packet) { HandleMovementOpcode(packet.GetOpcode(), packet.Status); diff --git a/Source/Game/Movement/Generators/ChaseMovementGenerator.cs b/Source/Game/Movement/Generators/ChaseMovementGenerator.cs index 1c057f7c3..350e3cc8a 100644 --- a/Source/Game/Movement/Generators/ChaseMovementGenerator.cs +++ b/Source/Game/Movement/Generators/ChaseMovementGenerator.cs @@ -266,9 +266,9 @@ namespace Game.Movement static bool PositionOkay(Unit owner, Unit target, float? minDistance, float? maxDistance, ChaseAngle? angle) { float distSq = owner.GetExactDistSq(target); - if (minDistance.HasValue && distSq < MathF.Sqrt(minDistance.Value)) + if (minDistance.HasValue && distSq < minDistance.Value * minDistance.Value) return false; - if (maxDistance.HasValue && distSq > MathF.Sqrt(maxDistance.Value)) + if (maxDistance.HasValue && distSq > maxDistance.Value * maxDistance.Value) return false; if (angle.HasValue && !angle.Value.IsAngleOkay(target.GetRelativeAngle(owner))) return false; diff --git a/Source/Game/Movement/Generators/FollowMovementGenerator.cs b/Source/Game/Movement/Generators/FollowMovementGenerator.cs index ec37818c1..2db53668f 100644 --- a/Source/Game/Movement/Generators/FollowMovementGenerator.cs +++ b/Source/Game/Movement/Generators/FollowMovementGenerator.cs @@ -210,7 +210,7 @@ namespace Game.Movement static bool PositionOkay(Unit owner, Unit target, float range, ChaseAngle? angle = null) { - if (owner.GetExactDistSq(target) > MathF.Sqrt(owner.GetCombatReach() + target.GetCombatReach() + range)) + if (owner.GetExactDistSq(target) > (owner.GetCombatReach() + target.GetCombatReach() + range) * (owner.GetCombatReach() + target.GetCombatReach() + range)) return false; return !angle.HasValue || angle.Value.IsAngleOkay(target.GetRelativeAngle(owner));