mirror of
https://git.do.srb2.org/STJr/ZoneBuilder.git
synced 2025-02-05 07:11:12 +00:00
Revert "Internal: reverted mysterious MaxED edit in map saving functions"
This reverts commit 4d97f41a4b
.
This commit is contained in:
parent
37b872787f
commit
554f79f585
1 changed files with 22 additions and 12 deletions
|
@ -401,7 +401,7 @@ namespace CodeImp.DoomBuilder
|
|||
|
||||
// Copy the map lumps to the temp file
|
||||
General.WriteLogLine("Copying map lumps to temporary file...");
|
||||
CopyLumpsByType(mapwad, options.CurrentName, tempwad, TEMP_MAP_HEADER, true, true, true, true);
|
||||
CopyLumpsByType(mapwad, options.CurrentName, tempwad, TEMP_MAP_HEADER, REPLACE_TARGET_MAP, true, true, true, true);
|
||||
|
||||
// Close the map file
|
||||
mapwad.Dispose();
|
||||
|
@ -508,7 +508,7 @@ namespace CodeImp.DoomBuilder
|
|||
|
||||
// Copy the map lumps to the temp file
|
||||
General.WriteLogLine("Copying map lumps to temporary file...");
|
||||
CopyLumpsByType(mapwad, options.CurrentName, tempwad, TEMP_MAP_HEADER, true, true, true, true);
|
||||
CopyLumpsByType(mapwad, options.CurrentName, tempwad, TEMP_MAP_HEADER, REPLACE_TARGET_MAP, true, true, true, true);
|
||||
|
||||
// Close the map file
|
||||
mapwad.Dispose();
|
||||
|
@ -902,6 +902,7 @@ namespace CodeImp.DoomBuilder
|
|||
// Determine original map name
|
||||
string origmapname = (!string.IsNullOrEmpty(options.PreviousName) && purpose != SavePurpose.IntoFile) ? options.PreviousName : options.CurrentName;
|
||||
string origwadfile = string.Empty; //mxd
|
||||
int mapheaderindex = REPLACE_TARGET_MAP; //mxd. Lump index of the map file header in the source WAD
|
||||
|
||||
try
|
||||
{
|
||||
|
@ -987,7 +988,7 @@ namespace CodeImp.DoomBuilder
|
|||
}
|
||||
|
||||
// Copy map lumps to target file
|
||||
CopyLumpsByType(tempwad, TEMP_MAP_HEADER, targetwad, origmapname, true, true, includenodes, true);
|
||||
CopyLumpsByType(tempwad, TEMP_MAP_HEADER, targetwad, origmapname, mapheaderindex, true, true, includenodes, true);
|
||||
|
||||
// mxd. Was the map renamed?
|
||||
if(options.LevelNameChanged)
|
||||
|
@ -1197,7 +1198,7 @@ namespace CodeImp.DoomBuilder
|
|||
|
||||
// Copy lumps to buildwad
|
||||
General.WriteLogLine("Copying map lumps to temporary build file...");
|
||||
CopyLumpsByType(tempwad, TEMP_MAP_HEADER, buildwad, BUILD_MAP_HEADER, true, false, false, true);
|
||||
CopyLumpsByType(tempwad, TEMP_MAP_HEADER, buildwad, BUILD_MAP_HEADER, REPLACE_TARGET_MAP, true, false, false, true);
|
||||
|
||||
// Close buildwad
|
||||
buildwad.Dispose();
|
||||
|
@ -1242,7 +1243,7 @@ namespace CodeImp.DoomBuilder
|
|||
{
|
||||
// Copy nodebuilder lumps to temp file
|
||||
General.WriteLogLine("Copying nodebuilder lumps to temporary file...");
|
||||
CopyLumpsByType(buildwad, BUILD_MAP_HEADER, tempwad, TEMP_MAP_HEADER, false, false, true, false);
|
||||
CopyLumpsByType(buildwad, BUILD_MAP_HEADER, tempwad, TEMP_MAP_HEADER, REPLACE_TARGET_MAP, false, false, true, false);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -1442,11 +1443,13 @@ namespace CodeImp.DoomBuilder
|
|||
// This copies specific map lumps from one WAD to another
|
||||
private void CopyLumpsByType(WAD source, string sourcemapname,
|
||||
WAD target, string targetmapname,
|
||||
int targetheaderinsertindex, //mxd
|
||||
bool copyrequired, bool copyblindcopy,
|
||||
bool copynodebuild, bool copyscript)
|
||||
{
|
||||
// Find the map header in target (mxd. Or use the provided one)
|
||||
int tgtheaderindex = target.FindLumpIndex(targetmapname);
|
||||
bool replacetargetmap = (targetheaderinsertindex == REPLACE_TARGET_MAP); //mxd
|
||||
int tgtheaderindex = (replacetargetmap ? target.FindLumpIndex(targetmapname) : targetheaderinsertindex); //mxd
|
||||
if(tgtheaderindex == -1)
|
||||
{
|
||||
// If this header doesnt exists in the target
|
||||
|
@ -1477,6 +1480,8 @@ namespace CodeImp.DoomBuilder
|
|||
if(sourceindex > -1)
|
||||
{
|
||||
//mxd. Don't do this when inserting a map (SaveMap() removes the old version of the map before calling CopyLumpsByType())
|
||||
if(replacetargetmap)
|
||||
{
|
||||
// Remove lump at target
|
||||
int lumpindex = RemoveSpecificLump(target, tgtlumpname, tgtheaderindex, targetmapname, config.MapLumps);
|
||||
|
||||
|
@ -1484,6 +1489,7 @@ namespace CodeImp.DoomBuilder
|
|||
// When original lump was found and removed then insert at that position
|
||||
// otherwise insert after last insertion position
|
||||
if(lumpindex > -1) targetindex = lumpindex; else targetindex++;
|
||||
}
|
||||
if(targetindex > target.Lumps.Count) targetindex = target.Lumps.Count;
|
||||
|
||||
// Copy the lump to the target
|
||||
|
@ -1491,6 +1497,9 @@ namespace CodeImp.DoomBuilder
|
|||
Lump lump = source.Lumps[sourceindex];
|
||||
Lump newlump = target.Insert(tgtlumpname, targetindex, lump.Length, false);
|
||||
lump.CopyTo(newlump);
|
||||
|
||||
//mxd. We still need to increment targetindex...
|
||||
if(!replacetargetmap) targetindex++;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -1505,6 +1514,7 @@ namespace CodeImp.DoomBuilder
|
|||
}
|
||||
|
||||
target.WriteHeaders(); //mxd
|
||||
target.Compress(); // [ZZ]
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue