From 4caf00dd9d3fdc7e0d5033a4ce6d16c8272fa208 Mon Sep 17 00:00:00 2001 From: juanjp600 Date: Tue, 11 Oct 2016 19:40:35 -0300 Subject: [PATCH] Some extra checks to prevent character flinging New netcode will solve all of these problems the right way. --- Subsurface/Source/Characters/Character.cs | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/Subsurface/Source/Characters/Character.cs b/Subsurface/Source/Characters/Character.cs index 9f78e2aff..a9d4da231 100644 --- a/Subsurface/Source/Characters/Character.cs +++ b/Subsurface/Source/Characters/Character.cs @@ -2028,9 +2028,15 @@ namespace Barotrauma AnimController.Teleport(pos - SimPosition, Vector2.Zero); } + if ((pos-SimPosition).Length()>600.0f) + { + AnimController.Teleport(pos - SimPosition, -AnimController.RefLimb.LinearVelocity); + } + if (inSub) { //AnimController.FindHull(ConvertUnits.ToDisplayUnits(pos) - Submarine.Loaded.WorldPosition); + Submarine prevSub = Submarine; Hull newHull = Hull.FindHull(ConvertUnits.ToDisplayUnits(pos), AnimController.CurrentHull, false); if (newHull != null) @@ -2038,6 +2044,11 @@ namespace Barotrauma AnimController.CurrentHull = newHull; Submarine = newHull.Submarine; } + + if (prevSub != null && Submarine != null && prevSub!=Submarine) + { + AnimController.Teleport(pos - SimPosition, Vector2.Zero); + } } else {