From eb3374690772366cf041c459ab2a0814e15dfa51 Mon Sep 17 00:00:00 2001 From: Regalis Date: Thu, 11 Aug 2016 21:52:57 +0300 Subject: [PATCH] Forcing hull/gap ids to correct ones if receiving a dockingport network event and the hulls/gaps have already been created, ItemContainers are active by default (to always check for potential statuseffects of the contained items), fixed NullReferenceException in Wire.Connect if attempting to connect to something outside the sub (shouldn't be possible unless messing something up in the editor) --- Subsurface/Source/Characters/AI/EnemyAIController.cs | 2 +- Subsurface/Source/Items/Components/DockingPort.cs | 5 +++++ Subsurface/Source/Items/Components/ItemContainer.cs | 2 ++ Subsurface/Source/Items/Components/Signal/Wire.cs | 2 ++ 4 files changed, 10 insertions(+), 1 deletion(-) diff --git a/Subsurface/Source/Characters/AI/EnemyAIController.cs b/Subsurface/Source/Characters/AI/EnemyAIController.cs index 6daac9237..ca82cf09a 100644 --- a/Subsurface/Source/Characters/AI/EnemyAIController.cs +++ b/Subsurface/Source/Characters/AI/EnemyAIController.cs @@ -580,7 +580,7 @@ namespace Barotrauma { message.WriteRangedInteger(0, Enum.GetValues(typeof(AiState)).Length-1, (int)state); - bool wallAttack = (wallAttackPos != Vector2.Zero && state == AiState.Attack); + //bool wallAttack = (wallAttackPos != Vector2.Zero && state == AiState.Attack); //message.Write(wallAttack); diff --git a/Subsurface/Source/Items/Components/DockingPort.cs b/Subsurface/Source/Items/Components/DockingPort.cs index 18310e991..ac6d9847c 100644 --- a/Subsurface/Source/Items/Components/DockingPort.cs +++ b/Subsurface/Source/Items/Components/DockingPort.cs @@ -620,6 +620,11 @@ namespace Barotrauma.Items.Components gapId = message.ReadUInt16(); + if (hulls[0] != null) hulls[0].ID = (ushort)hullIds[0]; + if (hulls[1] != null) hulls[1].ID = (ushort)hullIds[1]; + + if (gap != null) gap.ID = (ushort)gapId; + Dock(dockingTarget); } diff --git a/Subsurface/Source/Items/Components/ItemContainer.cs b/Subsurface/Source/Items/Components/ItemContainer.cs index 7829e3d5b..a31430cc7 100644 --- a/Subsurface/Source/Items/Components/ItemContainer.cs +++ b/Subsurface/Source/Items/Components/ItemContainer.cs @@ -121,6 +121,8 @@ namespace Barotrauma.Items.Components break; } } + + IsActive = true; } public void RemoveContained(Item item) diff --git a/Subsurface/Source/Items/Components/Signal/Wire.cs b/Subsurface/Source/Items/Components/Signal/Wire.cs index 4b8a0c39d..c61250113 100644 --- a/Subsurface/Source/Items/Components/Signal/Wire.cs +++ b/Subsurface/Source/Items/Components/Signal/Wire.cs @@ -119,6 +119,8 @@ namespace Barotrauma.Items.Components if (!addNode) break; + if (newConnection.Item.Submarine == null) continue; + if (Nodes.Count > 0 && Nodes[0] == newConnection.Item.Position - newConnection.Item.Submarine.HiddenSubPosition) break; if (Nodes.Count > 1 && Nodes[Nodes.Count-1] == newConnection.Item.Position - newConnection.Item.Submarine.HiddenSubPosition) break;