Don't freak out when a WAD contains multiple script lumps with the same name - just ignore the duplicates.

This commit is contained in:
MascaraSnake 2016-09-22 10:24:03 +02:00
parent a1850cd82c
commit ee69237aad
2 changed files with 6 additions and 2 deletions

View File

@ -166,6 +166,7 @@ namespace CodeImp.DoomBuilder.Controls
//Load the global script lumps //Load the global script lumps
foreach (ScriptLumpInfo scriptlumpinfo in General.Map.Config.ScriptLumps.Values) foreach (ScriptLumpInfo scriptlumpinfo in General.Map.Config.ScriptLumps.Values)
{ {
List<string> addedLumps = new List<string>();
if (scriptlumpinfo.Script != null) if (scriptlumpinfo.Script != null)
{ {
if (scriptlumpinfo.IsPrefix) if (scriptlumpinfo.IsPrefix)
@ -174,6 +175,8 @@ namespace CodeImp.DoomBuilder.Controls
{ {
if (l.Name.ToUpperInvariant().StartsWith(scriptlumpinfo.Name.ToUpperInvariant())) 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); GlobalScriptLumpDocumentTab t = new GlobalScriptLumpDocumentTab(this, l.Name, scriptlumpinfo.Script, General.Map.FilePathName);
//mxd. Apply stored settings? //mxd. Apply stored settings?
@ -187,6 +190,7 @@ namespace CodeImp.DoomBuilder.Controls
t.OnTextChanged += tabpage_OnTextChanged; t.OnTextChanged += tabpage_OnTextChanged;
t.Scintilla.UpdateUI += scintilla_OnUpdateUI; t.Scintilla.UpdateUI += scintilla_OnUpdateUI;
tabs.TabPages.Add(t); tabs.TabPages.Add(t);
addedLumps.Add(l.Name.ToUpperInvariant());
} }
} }
} }

View File

@ -872,7 +872,7 @@ namespace CodeImp.DoomBuilder.Data
foreach (Lump lump in file.Lumps) 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); streams.Add(lump.Name, lump.Stream);
} }
@ -889,7 +889,7 @@ namespace CodeImp.DoomBuilder.Data
foreach (Lump lump in file.Lumps) 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); streams.Add(lump.Name, lump.Stream);
} }