From 22d00763a9bf0e5b093ce90ee058418c463c91bb Mon Sep 17 00:00:00 2001 From: biwa <6475593+biwa@users.noreply.github.com> Date: Fri, 19 Jun 2020 23:30:01 +0200 Subject: [PATCH] The script editor is now only shown if the current game configuration supports scripts. Resolves #427. --- Source/Core/Config/GameConfiguration.cs | 10 ++++++++++ Source/Core/General/MapManager.cs | 4 ++++ Source/Core/Windows/MainForm.cs | 2 +- 3 files changed, 15 insertions(+), 1 deletion(-) diff --git a/Source/Core/Config/GameConfiguration.cs b/Source/Core/Config/GameConfiguration.cs index cb75477fe..efaca9123 100755 --- a/Source/Core/Config/GameConfiguration.cs +++ b/Source/Core/Config/GameConfiguration.cs @@ -20,6 +20,7 @@ using System; using System.Collections; using System.Collections.Generic; using System.Globalization; +using System.Linq; using CodeImp.DoomBuilder.IO; using CodeImp.DoomBuilder.Map; using CodeImp.DoomBuilder.Editing; @@ -1225,6 +1226,15 @@ namespace CodeImp.DoomBuilder.Config // Unknown sector effect... return new SectorEffectInfo(effect, "Unknown", false, false); } + + /// <summary> + /// Checks if there a script lumps defined in the configuration + /// </summary> + /// <returns>true if there are script lumps defined, false if not</returns> + public bool HasScriptLumps() + { + return maplumps.Values.Count(o => o.ScriptBuild) > 0; + } #endregion } diff --git a/Source/Core/General/MapManager.cs b/Source/Core/General/MapManager.cs index bb480b202..5a4cc071e 100755 --- a/Source/Core/General/MapManager.cs +++ b/Source/Core/General/MapManager.cs @@ -1892,6 +1892,10 @@ namespace CodeImp.DoomBuilder [BeginAction("openscripteditor")] internal void ShowScriptEditor() { + // Only show the script editor if there a script lumps defined + if (!General.Map.Config.HasScriptLumps()) + return; + Cursor.Current = Cursors.WaitCursor; // Load the window? diff --git a/Source/Core/Windows/MainForm.cs b/Source/Core/Windows/MainForm.cs index 4fadcab09..54b0ae82f 100755 --- a/Source/Core/Windows/MainForm.cs +++ b/Source/Core/Windows/MainForm.cs @@ -2060,7 +2060,7 @@ namespace CodeImp.DoomBuilder.Windows buttonnewmap.Visible = General.Settings.ToolbarFile; buttonopenmap.Visible = General.Settings.ToolbarFile; buttonsavemap.Visible = General.Settings.ToolbarFile; - buttonscripteditor.Visible = General.Settings.ToolbarScript && maploaded; + buttonscripteditor.Visible = General.Settings.ToolbarScript && maploaded && General.Map.Config.HasScriptLumps(); // Only show script editor if there a script lumps defined buttonundo.Visible = General.Settings.ToolbarUndo && maploaded; buttonredo.Visible = General.Settings.ToolbarUndo && maploaded; buttoncut.Visible = General.Settings.ToolbarCopy && maploaded; -- GitLab