Revert "Fixed: consequential duplicate maps weren't handled properly"

This reverts commit 6bd76dee4e.
This commit is contained in:
spherallic 2023-05-30 16:49:18 +02:00
parent 5cbf236d50
commit 72231d330d
1 changed files with 8 additions and 9 deletions

View File

@ -1452,11 +1452,15 @@ namespace CodeImp.DoomBuilder
//
while (true)
{
int nextindex = target.FindLumpIndex(targetmapname, tgtheaderindex);
int nextindex = target.FindLumpIndex(targetmapname, tgtheaderindex + 1);
// note that this (and the original algorithm too) would break if you have a patch or a texture named MAP01 for example...
// this is the case for multiple megawads that have level selection screen (Duel40-style), but luckily most of them are using the PK3 format.
if (nextindex < 0) break; // next lump not found
// remove the header lump
target.RemoveAt(nextindex, false);
writeheaders = true;
//
tgtheaderindex = nextindex;
// try to detect the format used for this map.
// if more than one format matches, do... idk what actually.
// todo: move this code out and call it something like DetectMapConfiguration
@ -1496,7 +1500,7 @@ namespace CodeImp.DoomBuilder
{
int matches = 0;
int maxcnt = lst.Count;
int checkindex = nextindex+1;
int checkindex = nextindex;
foreach (string lmp in lst)
{
if (checkindex >= target.Lumps.Count)
@ -1517,7 +1521,7 @@ namespace CodeImp.DoomBuilder
// if we didn't find anything it's weird...
if (trylist != null)
{
int checkindex = nextindex+1;
int checkindex = nextindex;
foreach (string lmp in trylist)
{
if (checkindex >= target.Lumps.Count)
@ -1527,11 +1531,6 @@ namespace CodeImp.DoomBuilder
else break; // stop deleting on first non-matching lump
}
}
// how if trylist was not null, we need to remove the header as well.
target.RemoveAt(nextindex, false);
writeheaders = true;
tgtheaderindex = nextindex;
}
if (writeheaders) target.WriteHeaders();