diff --git a/SabreTools.Helper/Data/Build.cs b/SabreTools.Helper/Data/Build.cs index 9dae8815..f82154ba 100644 --- a/SabreTools.Helper/Data/Build.cs +++ b/SabreTools.Helper/Data/Build.cs @@ -204,7 +204,7 @@ namespace SabreTools.Helper.Data helptext.Add(" -ls, --lvl-split Split a SuperDAT or folder by internal path"); helptext.Add(" -out= Output directory"); helptext.Add(" -s, --short Use short output names"); - helptext.Add(" -r, --restore Restore original filename to each output DAT"); + helptext.Add(" -ba, --base Use source DAT as base name for outputs"); // Sort helptext.Add(" -ss, --sort Sort input files by a set of DATs"); diff --git a/SabreTools.Helper/Dats/DatFile.cs b/SabreTools.Helper/Dats/DatFile.cs index ec7ca54e..bf02696a 100644 --- a/SabreTools.Helper/Dats/DatFile.cs +++ b/SabreTools.Helper/Dats/DatFile.cs @@ -5026,10 +5026,10 @@ namespace SabreTools.Helper.Dats /// Name of the directory to write the DATs out to /// Parent path for replacement /// True if short names should be used, false otherwise - /// True if original filenames should be used as the base for output filename, false otherwise + /// True if original filenames should be used as the base for output filename, false otherwise /// Logger object for console and file writing /// True if split succeeded, false otherwise - public bool SplitByLevel(string outDir, string basepath, bool shortname, bool restore, Logger logger) + public bool SplitByLevel(string outDir, string basepath, bool shortname, bool basedat, Logger logger) { // Sanitize the basepath to be more predictable basepath = (basepath.EndsWith(Path.DirectorySeparatorChar.ToString()) ? basepath : basepath + Path.DirectorySeparatorChar); @@ -5052,7 +5052,7 @@ namespace SabreTools.Helper.Dats if (tempDat.Name != null && tempDat.Name != Style.GetDirectoryName(key)) { // Process and output the DAT - SplitByLevelHelper(tempDat, outDir, shortname, restore, logger); + SplitByLevelHelper(tempDat, outDir, shortname, basedat, logger); // Reset the DAT for the next items tempDat = (DatFile)CloneHeader(); @@ -5079,7 +5079,7 @@ namespace SabreTools.Helper.Dats } // Then we write the last DAT out since it would be skipped otherwise - SplitByLevelHelper(tempDat, outDir, shortname, restore, logger); + SplitByLevelHelper(tempDat, outDir, shortname, basedat, logger); return true; } diff --git a/SabreTools/Partials/SabreTools_Inits.cs b/SabreTools/Partials/SabreTools_Inits.cs index 2970b162..c215b768 100644 --- a/SabreTools/Partials/SabreTools_Inits.cs +++ b/SabreTools/Partials/SabreTools_Inits.cs @@ -257,8 +257,8 @@ namespace SabreTools /// List of inputs to be used /// Output directory for the split files /// True if short filenames should be used, false otherwise - /// True if original filenames should be used as the base for output filename, false otherwise - private static void InitLevelSplit(List inputs, string outDir, bool shortname, bool restore) + /// True if original filenames should be used as the base for output filename, false otherwise + private static void InitLevelSplit(List inputs, string outDir, bool shortname, bool basedat) { // Loop over the input files foreach (string input in inputs) @@ -267,7 +267,7 @@ namespace SabreTools { DatFile datFile = new DatFile(); datFile.Parse(Path.GetFullPath(input), 0, 0, _logger, softlist: true, keep: true); - datFile.SplitByLevel(outDir, Path.GetDirectoryName(input), shortname, restore, _logger); + datFile.SplitByLevel(outDir, Path.GetDirectoryName(input), shortname, basedat, _logger); } else if (Directory.Exists(input)) { @@ -275,7 +275,7 @@ namespace SabreTools { DatFile datFile = new DatFile(); datFile.Parse(Path.GetFullPath(file), 0, 0, _logger, softlist: true, keep: true); - datFile.SplitByLevel(outDir, (input.EndsWith(Path.DirectorySeparatorChar.ToString()) ? input : input + Path.DirectorySeparatorChar), shortname, restore, _logger); + datFile.SplitByLevel(outDir, (input.EndsWith(Path.DirectorySeparatorChar.ToString()) ? input : input + Path.DirectorySeparatorChar), shortname, basedat, _logger); } } else diff --git a/SabreTools/SabreTools.cs b/SabreTools/SabreTools.cs index 0d4901f5..20fe0b02 100644 --- a/SabreTools/SabreTools.cs +++ b/SabreTools/SabreTools.cs @@ -69,6 +69,7 @@ namespace SabreTools // User flags bool addBlankFilesForEmptyFolder = false, addFileDates = false, + basedat = false, cleanGameNames = false, copyFiles = false, datPrefix = false, @@ -209,6 +210,10 @@ namespace SabreTools case "--bare": removeDateFromAutomaticName = true; break; + case "-ba": + case "--base": + basedat = true; + break; case "-bc": case "--baddump-col": showBaddumpColumn = true; @@ -994,7 +999,7 @@ namespace SabreTools // Split a SuperDAT by lowest available level else if (splitByLevel) { - InitLevelSplit(inputs, outDir, shortname, restore); + InitLevelSplit(inputs, outDir, shortname, basedat); } // Split a DAT by item type