From ebfce9863be34ab88251ab2e6578c02614824a9e Mon Sep 17 00:00:00 2001 From: Nico de Poel Date: Mon, 10 May 2021 12:37:14 +0200 Subject: [PATCH] Allow additional arguments to be passed from debug UI, giving me a few more testing options --- Assets/Scripts/Bootstrap.cs | 13 ++++++++++++- Assets/Scripts/UniQuake.cs | 4 ++++ 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/Assets/Scripts/Bootstrap.cs b/Assets/Scripts/Bootstrap.cs index 69bc2b8..abb3c9b 100644 --- a/Assets/Scripts/Bootstrap.cs +++ b/Assets/Scripts/Bootstrap.cs @@ -5,7 +5,7 @@ using UnityEngine; public class Bootstrap : MonoBehaviour { - private string mod; + private string mod, args; private float speed = 1.0f; private UniQuake uq; @@ -22,6 +22,7 @@ public class Bootstrap : MonoBehaviour uq = gameObject.AddComponent(); uq.BaseGame = MissionPack.Quake; uq.ModDirectory = mod; + uq.AdditionalArguments = ParseArgs(); } if (GUILayout.Button("Start Scourge of Armagon!")) @@ -29,6 +30,7 @@ public class Bootstrap : MonoBehaviour uq = gameObject.AddComponent(); uq.BaseGame = MissionPack.Hipnotic; uq.ModDirectory = mod; + uq.AdditionalArguments = ParseArgs(); } if (GUILayout.Button("Start Dissolution of Eternity!")) @@ -36,10 +38,14 @@ public class Bootstrap : MonoBehaviour uq = gameObject.AddComponent(); uq.BaseGame = MissionPack.Rogue; uq.ModDirectory = mod; + uq.AdditionalArguments = ParseArgs(); } GUILayout.Label("Mod directory:"); mod = GUILayout.TextField(mod); + + GUILayout.Label("Additional arguments:"); + args = GUILayout.TextField(args); GUILayout.Label("Time scale:"); speed = GUILayout.HorizontalSlider(speed, 0.1f, 5.0f, GUILayout.Width(250)); @@ -55,4 +61,9 @@ public class Bootstrap : MonoBehaviour uq = null; } } + + private string[] ParseArgs() + { + return args.Split(new[] {' ', '\t', '\r', '\n'}, StringSplitOptions.RemoveEmptyEntries); + } } diff --git a/Assets/Scripts/UniQuake.cs b/Assets/Scripts/UniQuake.cs index 7b3b163..9f05f3e 100644 --- a/Assets/Scripts/UniQuake.cs +++ b/Assets/Scripts/UniQuake.cs @@ -18,6 +18,7 @@ public partial class UniQuake: MonoBehaviour public MissionPack BaseGame { get; set; } public string ModDirectory { get; set; } + public string[] AdditionalArguments { get; set; } /// /// Time since startup for this particular instance of Quake @@ -63,6 +64,9 @@ public partial class UniQuake: MonoBehaviour { arguments.AddRange(new[] { "+developer", "1" }); } + + if (AdditionalArguments != null) + arguments.AddRange(AdditionalArguments); quakeParms = new QuakeParms {