Fix GAME prefix not DAT prefix

This commit is contained in:
Matt Nadareski
2016-04-20 17:45:39 -07:00
parent 4755345f70
commit 07ce694ae3
3 changed files with 22 additions and 31 deletions

View File

@@ -54,7 +54,7 @@ namespace SabreTools
convertMiss = false, convertMiss = false,
convertRV = false, convertRV = false,
convertXml = false, convertXml = false,
datname = false, gamename = false,
disableForce = false, disableForce = false,
extsplit = false, extsplit = false,
generate = false, generate = false,
@@ -114,10 +114,6 @@ namespace SabreTools
case "--disable-force": case "--disable-force":
disableForce = true; disableForce = true;
break; break;
case "-dp":
case "--dat-prefix":
datname = true;
break;
case "-es": case "-es":
case "--ext-split": case "--ext-split":
extsplit = true; extsplit = true;
@@ -130,6 +126,10 @@ namespace SabreTools
case "--generate-all": case "--generate-all":
genall = true; genall = true;
break; break;
case "-gp":
case "--game-prefix":
gamename = true;
break;
case "-i": case "-i":
case "--import": case "--import":
import = true; import = true;
@@ -299,7 +299,7 @@ namespace SabreTools
{ {
foreach (string input in inputs) foreach (string input in inputs)
{ {
InitConvertMiss(input, usegame, prefix, postfix, quotes, repext, addext, datname); InitConvertMiss(input, usegame, prefix, postfix, quotes, repext, addext, gamename);
} }
} }
@@ -885,7 +885,7 @@ or 'b' to go back to the previous menu:
private static void ConvertMissMenu() private static void ConvertMissMenu()
{ {
string selection = "", input = "", prefix = "", postfix = "", addext = "", repext = ""; string selection = "", input = "", prefix = "", postfix = "", addext = "", repext = "";
bool usegame = true, quotes = false, datname = false; bool usegame = true, quotes = false, gamename = false;
while (selection.ToLowerInvariant() != "b") while (selection.ToLowerInvariant() != "b")
{ {
Console.Clear(); Console.Clear();
@@ -901,8 +901,8 @@ Make a selection:
5) " + (quotes ? "Don't add quotes around each item" : "Add quotes around each item") + @" 5) " + (quotes ? "Don't add quotes around each item" : "Add quotes around each item") + @"
6) Replace all extensions with another" + (repext != "" ? ":\t" + repext : "") + @" 6) Replace all extensions with another" + (repext != "" ? ":\t" + repext : "") + @"
7) Add extensions to each item" + (addext != "" ? ":\n\t" + addext : "") + @" 7) Add extensions to each item" + (addext != "" ? ":\n\t" + addext : "") + @"
8) " + (datname ? "Don't add dat name before every item" : "Add dat name before every item") + @" " + (!usegame ? " 8) " + (gamename ? "Don't add game name before every item" : "Add game name before every item") + "\n" : "") +
9) Begin conversion @" 9) Begin conversion
B) Go back to the previous menu B) Go back to the previous menu
"); ");
Console.Write("Enter selection: "); Console.Write("Enter selection: ");
@@ -941,11 +941,11 @@ Make a selection:
addext = Console.ReadLine(); addext = Console.ReadLine();
break; break;
case "8": case "8":
datname = !datname; gamename = !gamename;
break; break;
case "9": case "9":
Console.Clear(); Console.Clear();
InitConvertMiss(input, usegame, prefix, postfix, quotes, repext, addext, datname); InitConvertMiss(input, usegame, prefix, postfix, quotes, repext, addext, gamename);
Console.Write("\nPress any key to continue..."); Console.Write("\nPress any key to continue...");
Console.ReadKey(); Console.ReadKey();
break; break;
@@ -963,8 +963,8 @@ Make a selection:
/// <param name="quotes">Add quotes to each item</param> /// <param name="quotes">Add quotes to each item</param>
/// <param name="repext">Replace all extensions with another</param> /// <param name="repext">Replace all extensions with another</param>
/// <param name="addext">Add an extension to all items</param> /// <param name="addext">Add an extension to all items</param>
/// <param name="datname">Add the dat name as a directory prefix</param> /// <param name="gamename">Add the dat name as a directory prefix</param>
private static void InitConvertMiss(string input, bool usegame, string prefix, string postfix, bool quotes, string repext, string addext, bool datname) private static void InitConvertMiss(string input, bool usegame, string prefix, string postfix, bool quotes, string repext, string addext, bool gamename)
{ {
// Strip any quotations from the name // Strip any quotations from the name
input = input.Replace("\"", ""); input = input.Replace("\"", "");
@@ -977,16 +977,9 @@ Make a selection:
// Get the output name // Get the output name
string name = Path.GetFileNameWithoutExtension(input) + "-miss.txt"; string name = Path.GetFileNameWithoutExtension(input) + "-miss.txt";
// Get the DAT name string
string datstring = "";
if (datname)
{
datstring = RomManipulation.GetDatName(input, logger);
}
// Read in the roms from the DAT and then write them to the file // Read in the roms from the DAT and then write them to the file
logger.Log("Converting " + input); logger.Log("Converting " + input);
Output.WriteToText(name, Path.GetDirectoryName(input), RomManipulation.Parse(input, 0, 0, logger), logger, usegame, prefix, postfix, addext, repext, quotes, datstring); Output.WriteToText(name, Path.GetDirectoryName(input), RomManipulation.Parse(input, 0, 0, logger), logger, usegame, prefix, postfix, addext, repext, quotes, gamename);
logger.Log(input + " converted to: " + name); logger.Log(input + " converted to: " + name);
return; return;
} }

View File

@@ -89,7 +89,7 @@ Options:
url= URL (source only) url= URL (source only)
-cm, --convert-miss -cm, --convert-miss
-r, --roms Output roms to miss instead of sets -r, --roms Output roms to miss instead of sets
-dp, --dat-prefix Add dat name as a prefix to each item -gp, --game-prefix Add game name as a prefix to each item
-pre=, --prefix= Set prefix to be printed in front of all lines -pre=, --prefix= Set prefix to be printed in front of all lines
-post=, --postfix= Set postfix to be printed behind all lines -post=, --postfix= Set postfix to be printed behind all lines
-q, --quotes Put double-quotes around each item -q, --quotes Put double-quotes around each item

View File

@@ -139,10 +139,10 @@ namespace SabreTools.Helper
/// <param name="quotes">True if quotes should be put around the item, false otherwise (default)</param> /// <param name="quotes">True if quotes should be put around the item, false otherwise (default)</param>
/// <param name="addext">Arbitrary extension added to the end of each item</param> /// <param name="addext">Arbitrary extension added to the end of each item</param>
/// <param name="repext">Arbitrary extension to replace all extensions in the item</param> /// <param name="repext">Arbitrary extension to replace all extensions in the item</param>
/// <param name="datname">The internal name of the DAT to prefix</param> /// <param name="gamename">True if the game name is appended (only when !usegame), false otherwise</param>
/// <returns>True if the file was written, false otherwise</returns> /// <returns>True if the file was written, false otherwise</returns>
public static bool WriteToText(string textfile, string outdir, List<RomData> roms, Logger logger, bool useGame = true, string prefix = "", public static bool WriteToText(string textfile, string outdir, List<RomData> roms, Logger logger, bool useGame = true, string prefix = "",
string postfix = "", string addext = "", string repext = "", bool quotes = false, string datname = "") string postfix = "", string addext = "", string repext = "", bool quotes = false, bool gamename = false)
{ {
// Normalize the output directory // Normalize the output directory
if (outdir == "") if (outdir == "")
@@ -154,12 +154,6 @@ namespace SabreTools.Helper
outdir += Path.DirectorySeparatorChar; outdir += Path.DirectorySeparatorChar;
} }
// Get the DAT name, if applicable
if (datname != "" && !datname.EndsWith(Path.DirectorySeparatorChar.ToString()))
{
datname = datname + Path.DirectorySeparatorChar;
}
// Make the output directory if it doesn't exist // Make the output directory if it doesn't exist
if (!Directory.Exists(outdir)) if (!Directory.Exists(outdir))
{ {
@@ -182,7 +176,7 @@ namespace SabreTools.Helper
{ {
string pre = prefix + (quotes ? "\"" : ""); string pre = prefix + (quotes ? "\"" : "");
string post = (quotes ? "\"" : "") + postfix; string post = (quotes ? "\"" : "") + postfix;
string name = datname + (useGame ? rom.Game : rom.Name); string name = (useGame ? rom.Game : rom.Name);
if (repext != "") if (repext != "")
{ {
string dir = Path.GetDirectoryName(name); string dir = Path.GetDirectoryName(name);
@@ -194,6 +188,10 @@ namespace SabreTools.Helper
{ {
name += addext; name += addext;
} }
if (!useGame && gamename)
{
name = (rom.Game.EndsWith(Path.DirectorySeparatorChar.ToString()) ? rom.Game : rom.Game + Path.DirectorySeparatorChar) + name;
}
if (useGame && rom.Game != lastgame) if (useGame && rom.Game != lastgame)
{ {