diff --git a/Source/Core/Controls/ScriptEditorPanel.cs b/Source/Core/Controls/ScriptEditorPanel.cs index dba9a72..bbb440c 100644 --- a/Source/Core/Controls/ScriptEditorPanel.cs +++ b/Source/Core/Controls/ScriptEditorPanel.cs @@ -166,6 +166,7 @@ namespace CodeImp.DoomBuilder.Controls //Load the global script lumps foreach (ScriptLumpInfo scriptlumpinfo in General.Map.Config.ScriptLumps.Values) { + List addedLumps = new List(); if (scriptlumpinfo.Script != null) { if (scriptlumpinfo.IsPrefix) @@ -174,6 +175,8 @@ namespace CodeImp.DoomBuilder.Controls { if (l.Name.ToUpperInvariant().StartsWith(scriptlumpinfo.Name.ToUpperInvariant())) { + //Don't add lumps with duplicate names. + if (addedLumps.Contains(l.Name.ToUpperInvariant())) continue; GlobalScriptLumpDocumentTab t = new GlobalScriptLumpDocumentTab(this, l.Name, scriptlumpinfo.Script, General.Map.FilePathName); //mxd. Apply stored settings? @@ -187,6 +190,7 @@ namespace CodeImp.DoomBuilder.Controls t.OnTextChanged += tabpage_OnTextChanged; t.Scintilla.UpdateUI += scintilla_OnUpdateUI; tabs.TabPages.Add(t); + addedLumps.Add(l.Name.ToUpperInvariant()); } } } diff --git a/Source/Core/Data/WADReader.cs b/Source/Core/Data/WADReader.cs index 0a77d11..aeddd31 100644 --- a/Source/Core/Data/WADReader.cs +++ b/Source/Core/Data/WADReader.cs @@ -872,7 +872,7 @@ namespace CodeImp.DoomBuilder.Data foreach (Lump lump in file.Lumps) { - if (lump.Name.StartsWith(prefix)) + if (lump.Name.StartsWith(prefix) && !streams.ContainsKey(lump.Name)) { streams.Add(lump.Name, lump.Stream); } @@ -889,7 +889,7 @@ namespace CodeImp.DoomBuilder.Data foreach (Lump lump in file.Lumps) { - if (lump.Name.StartsWith(prefix)) + if (lump.Name.StartsWith(prefix) && !streams.ContainsKey(lump.Name)) { streams.Add(lump.Name, lump.Stream); }