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) :