Let's support Nodumps for output as well

This commit is contained in:
Matt Nadareski
2016-05-18 16:59:34 -07:00
parent b08433cd52
commit 5364f88c76
3 changed files with 11 additions and 6 deletions

View File

@@ -173,6 +173,7 @@ namespace SabreTools.Helper
(rom.CRC != "" ? " crc " + rom.CRC.ToLowerInvariant() : "") + (rom.CRC != "" ? " crc " + rom.CRC.ToLowerInvariant() : "") +
(rom.MD5 != "" ? " md5 " + rom.MD5.ToLowerInvariant() : "") + (rom.MD5 != "" ? " md5 " + rom.MD5.ToLowerInvariant() : "") +
(rom.SHA1 != "" ? " sha1 " + rom.SHA1.ToLowerInvariant() : "") + (rom.SHA1 != "" ? " sha1 " + rom.SHA1.ToLowerInvariant() : "") +
(rom.Nodump ? " flags nodump" : "") +
" )\n"; " )\n";
break; break;
case OutputFormat.MissFile: case OutputFormat.MissFile:
@@ -234,6 +235,7 @@ namespace SabreTools.Helper
(rom.CRC != "" ? " crc=\"" + rom.CRC.ToLowerInvariant() + "\"" : "") + (rom.CRC != "" ? " crc=\"" + rom.CRC.ToLowerInvariant() + "\"" : "") +
(rom.MD5 != "" ? " md5=\"" + rom.MD5.ToLowerInvariant() + "\"" : "") + (rom.MD5 != "" ? " md5=\"" + rom.MD5.ToLowerInvariant() + "\"" : "") +
(rom.SHA1 != "" ? " sha1=\"" + rom.SHA1.ToLowerInvariant() + "\"" : "") + (rom.SHA1 != "" ? " sha1=\"" + rom.SHA1.ToLowerInvariant() + "\"" : "") +
(rom.Nodump ? " status=\"nodump\"" : "") +
"/>\n"; "/>\n";
break; break;
} }

View File

@@ -288,12 +288,13 @@ namespace SabreTools.Helper
{ {
case "rom": case "rom":
case "disk": case "disk":
// If the rom is nodump, skip it // If the rom is nodump, flag it
bool nodump = false;
if (xtr.GetAttribute("flags") == "nodump" || xtr.GetAttribute("status") == "nodump") if (xtr.GetAttribute("flags") == "nodump" || xtr.GetAttribute("status") == "nodump")
{ {
logger.Log("Nodump detected: " + logger.Log("Nodump detected: " +
(xtr.GetAttribute("name") != null && xtr.GetAttribute("name") != "" ? "\"" + xtr.GetAttribute("name") + "\"" : "ROM NAME NOT FOUND") + "; skipping..."); (xtr.GetAttribute("name") != null && xtr.GetAttribute("name") != "" ? "\"" + xtr.GetAttribute("name") + "\"" : "ROM NAME NOT FOUND"));
break; nodump = true;
} }
// Take care of hex-sized files // Take care of hex-sized files
@@ -343,12 +344,12 @@ namespace SabreTools.Helper
// If the file has no size and it's not the above case, skip and log // If the file has no size and it's not the above case, skip and log
else if (subreader.Name == "rom" && (size == 0 || size == -1)) else if (subreader.Name == "rom" && (size == 0 || size == -1))
{ {
logger.Warning("Potentially incomplete entry found for \"" + xtr.GetAttribute("name") + "\""); logger.Error("Incomplete entry for \"" + xtr.GetAttribute("name") + "\" will be output as nodump");
break; nodump = true;
} }
// Only add the rom if there's useful information in it // Only add the rom if there's useful information in it
if (!(crc == "" && md5 == "" && sha1 == "")) if (!(crc == "" && md5 == "" && sha1 == "") || nodump)
{ {
// Get the new values to add // Get the new values to add
key = size + "-" + crc; key = size + "-" + crc;
@@ -365,6 +366,7 @@ namespace SabreTools.Helper
MD5 = md5, MD5 = md5,
SHA1 = sha1, SHA1 = sha1,
System = filename, System = filename,
Nodump = nodump,
}; };
if (datdata.Roms.ContainsKey(key)) if (datdata.Roms.ContainsKey(key))

View File

@@ -21,6 +21,7 @@ namespace SabreTools.Helper
public string MD5; public string MD5;
public string SHA1; public string SHA1;
public DupeType Dupe; public DupeType Dupe;
public bool Nodump;
} }
/// <summary> /// <summary>