From d27cafffa9468835c5e19a5c908bc72b0bbc0bb8 Mon Sep 17 00:00:00 2001 From: juanjp600 Date: Sun, 28 Aug 2016 20:26:36 -0300 Subject: [PATCH] Fixed access to items without PickDistance The ladder check is a horrible hack, but if you're horribly desynced then trying to interact with one will just kill you :) --- Subsurface/Source/Characters/Character.cs | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/Subsurface/Source/Characters/Character.cs b/Subsurface/Source/Characters/Character.cs index dd7088178..c08951ba0 100644 --- a/Subsurface/Source/Characters/Character.cs +++ b/Subsurface/Source/Characters/Character.cs @@ -868,7 +868,7 @@ namespace Barotrauma if (inventory.Owner is Item) { var owner = (Item)inventory.Owner; - if (Vector2.Distance(SimPosition, owner.SimPosition) > owner.PickDistance * 0.01f) + if (!CanAccessItem(owner)) { return false; } @@ -885,9 +885,14 @@ namespace Barotrauma return false; } return true; + } + + float maxDist = item.PickDistance; + if (maxDist<=0.01f) + { + maxDist = 150.0f; } - - if (Vector2.Distance(SimPosition, item.SimPosition) > item.PickDistance * 0.01f) + if (Vector2.Distance(SimPosition, item.SimPosition) > maxDist * 0.01f && item.ConfigFile.ToLower().IndexOf("ladder.xml")<0) { return false; }