From a83532f7a98a504fe4c9d97060b11182fce8b7b7 Mon Sep 17 00:00:00 2001 From: Joonas Rikkonen Date: Tue, 4 Jun 2019 15:35:45 +0300 Subject: [PATCH] (5f61edb68) Allow to issue orders in single player while not controlling any character (freecam debug). --- .../Source/GameSession/CrewManager.cs | 13 ++++++++++--- .../Characters/AI/Objectives/AIObjectiveManager.cs | 1 + 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/Barotrauma/BarotraumaClient/Source/GameSession/CrewManager.cs b/Barotrauma/BarotraumaClient/Source/GameSession/CrewManager.cs index bf758c5ea..c2e36d361 100644 --- a/Barotrauma/BarotraumaClient/Source/GameSession/CrewManager.cs +++ b/Barotrauma/BarotraumaClient/Source/GameSession/CrewManager.cs @@ -505,7 +505,10 @@ namespace Barotrauma btn.OnClicked += (GUIButton button, object userData) => { - if (Character.Controlled == null || Character.Controlled.SpeechImpediment >= 100.0f) return false; +#if CLIENT + if (GameMain.Client != null && Character.Controlled == null) { return false; } +#endif + if (Character.Controlled != null && Character.Controlled.SpeechImpediment >= 100.0f) { return false; } if (btn.GetChildByUserData("selected").Visible) { @@ -919,7 +922,9 @@ namespace Barotrauma Font = GUI.SmallFont, OnClicked = (btn, userData) => { - if (Character.Controlled == null) return false; +#if CLIENT + if (GameMain.Client != null && Character.Controlled == null) { return false; } +#endif SetCharacterOrder(character, userData as Order, option, Character.Controlled); orderTargetFrame = null; OrderOptionButtons.Clear(); @@ -957,7 +962,9 @@ namespace Barotrauma UserData = item == null ? order : new Order(order, item, item.Components.FirstOrDefault(ic => ic.GetType() == order.ItemComponentType)), OnClicked = (btn, userData) => { - if (Character.Controlled == null) return false; +#if CLIENT + if (GameMain.Client != null && Character.Controlled == null) { return false; } +#endif SetCharacterOrder(character, userData as Order, option, Character.Controlled); orderTargetFrame = null; OrderOptionButtons.Clear(); diff --git a/Barotrauma/BarotraumaShared/Source/Characters/AI/Objectives/AIObjectiveManager.cs b/Barotrauma/BarotraumaShared/Source/Characters/AI/Objectives/AIObjectiveManager.cs index 19a21b7ff..ec1e63d2c 100644 --- a/Barotrauma/BarotraumaShared/Source/Characters/AI/Objectives/AIObjectiveManager.cs +++ b/Barotrauma/BarotraumaShared/Source/Characters/AI/Objectives/AIObjectiveManager.cs @@ -234,6 +234,7 @@ namespace Barotrauma switch (order.AITag.ToLowerInvariant()) { case "follow": + if (orderGiver == null) { return null; } newObjective = new AIObjectiveGoTo(orderGiver, character, this, repeat: true, priorityModifier: priorityModifier) { CloseEnough = 150,