From 32d7be07eee7f9d4e0e02b0ddff9647e16a79d51 Mon Sep 17 00:00:00 2001 From: Regalis Date: Thu, 2 Feb 2017 19:24:42 +0200 Subject: [PATCH] ClosestCharacter is saved into NetInputMem (clients can drag characters again) --- Subsurface/Source/Characters/Character.cs | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/Subsurface/Source/Characters/Character.cs b/Subsurface/Source/Characters/Character.cs index 232abedbc..63d8d14fe 100644 --- a/Subsurface/Source/Characters/Character.cs +++ b/Subsurface/Source/Characters/Character.cs @@ -1378,7 +1378,16 @@ namespace Barotrauma cursorPosition = (ViewTarget == null ? AnimController.Collider.Position : ViewTarget.Position) + new Vector2((float)Math.Cos(aimAngle), (float)Math.Sin(aimAngle)) * 60.0f; - closestItem = Entity.FindEntityByID(memInput[memInput.Count - 1].interact) as Item; + var closestEntity = Entity.FindEntityByID(memInput[memInput.Count - 1].interact); + if (closestEntity is Item) + { + closestItem = closestEntity as Item; + } + else if (closestEntity is Character) + { + closestCharacter = closestEntity as Character; + } + memInput.RemoveAt(memInput.Count - 1); TransformCursorPos(); @@ -1419,7 +1428,14 @@ namespace Barotrauma NetInputMem newMem = new NetInputMem(); newMem.states = newInput; newMem.intAim = intAngle; - newMem.interact = closestItem != null ? closestItem.ID : (UInt16)0; + if (closestItem != null) + { + newMem.interact = closestItem.ID; + } + else if (closestCharacter != null) + { + newMem.interact = closestCharacter.ID; + } memInput.Insert(0, newMem); LastNetworkUpdateID++;