From 1d766ef349f7b86d356f3479a94aa3586c830e84 Mon Sep 17 00:00:00 2001 From: Joonas Rikkonen Date: Sun, 31 Mar 2019 20:22:33 +0300 Subject: [PATCH] (b6b2972ea) Fixed linked subs not getting docked correctly when loading a saved game. Closes #1381 --- .../BarotraumaShared/Source/Items/Components/DockingPort.cs | 3 +-- Barotrauma/BarotraumaShared/Source/Map/LinkedSubmarine.cs | 2 ++ 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/Barotrauma/BarotraumaShared/Source/Items/Components/DockingPort.cs b/Barotrauma/BarotraumaShared/Source/Items/Components/DockingPort.cs index 89ee1b073..189a94651 100644 --- a/Barotrauma/BarotraumaShared/Source/Items/Components/DockingPort.cs +++ b/Barotrauma/BarotraumaShared/Source/Items/Components/DockingPort.cs @@ -880,8 +880,7 @@ namespace Barotrauma.Items.Components List linked = new List(item.linkedTo); foreach (MapEntity entity in linked) { - Item linkedItem = entity as Item; - if (linkedItem == null) { continue; } + if (!(entity is Item linkedItem)) { continue; } var dockingPort = linkedItem.GetComponent(); if (dockingPort != null) diff --git a/Barotrauma/BarotraumaShared/Source/Map/LinkedSubmarine.cs b/Barotrauma/BarotraumaShared/Source/Map/LinkedSubmarine.cs index 21689c792..eb660c90e 100644 --- a/Barotrauma/BarotraumaShared/Source/Map/LinkedSubmarine.cs +++ b/Barotrauma/BarotraumaShared/Source/Map/LinkedSubmarine.cs @@ -229,6 +229,8 @@ namespace Barotrauma if (myPort != null) { + myPort.Undock(); + Vector2 portDiff = myPort.Item.WorldPosition - sub.WorldPosition; Vector2 offset = (myPort.IsHorizontal ? Vector2.UnitX * Math.Sign(linkedPort.Item.WorldPosition.X - myPort.Item.WorldPosition.X) :