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