diff --git a/DatToMiss/DatToMiss.cs b/DatToMiss/DatToMiss.cs
index e6750a2e..0c682416 100644
--- a/DatToMiss/DatToMiss.cs
+++ b/DatToMiss/DatToMiss.cs
@@ -33,7 +33,7 @@ namespace SabreTools
// Output the title
Build.Start("DatToMiss");
- string prefix = "", postfix = "", input = "";
+ string prefix = "", postfix = "", input = "", addext = "", repext = "";
bool tofile = false, help = false, usegame = true, quotes = false;
foreach (string arg in args)
{
@@ -57,14 +57,22 @@ namespace SabreTools
quotes = true;
break;
default:
- if ((arg.StartsWith("-pre=") || arg.StartsWith("--prefix=")) && prefix == "")
+ if (arg.StartsWith("-pre=") || arg.StartsWith("--prefix="))
{
prefix = arg.Split('=')[1];
}
- else if ((arg.StartsWith("-post=") || arg.StartsWith("--postfix=")) && postfix == "")
+ else if (arg.StartsWith("-post=") || arg.StartsWith("--postfix="))
{
postfix = arg.Split('=')[1];
}
+ else if (arg.StartsWith("-ae=") || arg.StartsWith("-add-ext="))
+ {
+ addext = arg.Split('=')[1];
+ }
+ else if (arg.StartsWith("-re=") || arg.StartsWith("-rep-ext="))
+ {
+ repext = arg.Split('=')[1];
+ }
else if (input == "" && File.Exists(arg.Replace("\"", "")))
{
input = arg.Replace("\"", "");
@@ -93,7 +101,7 @@ namespace SabreTools
name += Path.GetFileNameWithoutExtension(input) + "-miss.txt";
// Read in the roms from the DAT and then write them to the file
- Output.WriteToText(name, Path.GetDirectoryName(input), RomManipulation.Parse(input, 0, 0, logger), logger, usegame, prefix, postfix, quotes);
+ Output.WriteToText(name, Path.GetDirectoryName(input), RomManipulation.Parse(input, 0, 0, logger), logger, usegame, prefix, postfix, addext, repext, quotes);
}
}
}
diff --git a/SabreHelper/Build.cs b/SabreHelper/Build.cs
index fad0932b..6d742388 100644
--- a/SabreHelper/Build.cs
+++ b/SabreHelper/Build.cs
@@ -170,7 +170,9 @@ Options:
-r, --roms Output roms to miss instead of sets
-pre=, --prefix= Set prefix to be printed in front of all lines
-post=, --postfix= Set postfix to be printed behind all lines
- -q, --quotes Put double-quotes around each outputted item (not prefix/postfix)");
+ -q, --quotes Put double-quotes around each outputted item (not prefix/postfix)
+ -ae=, --add-ext= Add an extension to each outputted item
+ -re=, --rep-ext= Replace all extensions with specified");
break;
default:
Console.Write("This is the default help output");
diff --git a/SabreHelper/Output.cs b/SabreHelper/Output.cs
index 13d1e643..7157d537 100644
--- a/SabreHelper/Output.cs
+++ b/SabreHelper/Output.cs
@@ -138,7 +138,8 @@ namespace SabreTools.Helper
/// Arbitrary string to postfix each line
/// True if quotes should be put around the item, false otherwise (default)
/// True if the file was written, false otherwise
- public static bool WriteToText(string textfile, string outdir, List roms, Logger logger, bool useGame = true, string prefix = "", string postfix = "", bool quotes = false)
+ public static bool WriteToText(string textfile, string outdir, List roms, Logger logger, bool useGame = true, string prefix = "",
+ string postfix = "", string addext = "", string repext = "", bool quotes = false)
{
// Normalize the output directory
if (outdir == "")
@@ -166,6 +167,20 @@ namespace SabreTools.Helper
string lastgame = "";
foreach (RomData rom in roms)
{
+ string pre = prefix + (quotes ? "\"" : "");
+ string post = (quotes ? "\"" : "") + postfix;
+ string name = (useGame ? rom.Game : rom.Name);
+ if (repext != "")
+ {
+ string dir = Path.GetDirectoryName(name);
+ dir = (dir.EndsWith(Path.DirectorySeparatorChar.ToString()) ? dir : dir + Path.DirectorySeparatorChar);
+ name = dir + Path.GetFileNameWithoutExtension(name) + repext;
+ }
+ if (addext != "")
+ {
+ name += addext;
+ }
+
if (useGame && rom.Game != lastgame)
{
sw.WriteLine(prefix + (quotes ? "\"" : "") + rom.Game + (quotes ? "\"" : "") + postfix);