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