From ae27ba21579121ab3a7b5eb8ccec47f31d415ef7 Mon Sep 17 00:00:00 2001 From: Matt Nadareski Date: Wed, 21 Sep 2016 15:45:40 -0700 Subject: [PATCH] [ALL] Add full status backup, not just nodump --- SabreTools.Helper/Data/Enums.cs | 12 ++ SabreTools.Helper/Objects/Dat/DatFile.cs | 162 ++++++++++++++++++----- SabreTools.Helper/Objects/Dat/DatItem.cs | 12 +- SabreTools.Helper/Objects/Dat/Disk.cs | 25 ++-- SabreTools.Helper/Objects/Dat/Rom.cs | 18 +-- SabreTools.Helper/Objects/Stats.cs | 4 +- 6 files changed, 168 insertions(+), 65 deletions(-) diff --git a/SabreTools.Helper/Data/Enums.cs b/SabreTools.Helper/Data/Enums.cs index 3149761d..737fe151 100644 --- a/SabreTools.Helper/Data/Enums.cs +++ b/SabreTools.Helper/Data/Enums.cs @@ -83,6 +83,18 @@ Archive = 5, } + /// + /// Determine the status of the item + /// + public enum ItemStatus + { + None = 0, + Good = 1, + BadDump = 2, + Nodump = 3, + Verified = 4, + } + #endregion #region Skippers and Mappers diff --git a/SabreTools.Helper/Objects/Dat/DatFile.cs b/SabreTools.Helper/Objects/Dat/DatFile.cs index 2121ac21..42b7a2e4 100644 --- a/SabreTools.Helper/Objects/Dat/DatFile.cs +++ b/SabreTools.Helper/Objects/Dat/DatFile.cs @@ -824,11 +824,11 @@ namespace SabreTools.Helper { if (item.Type == ItemType.Rom) { - ((Rom)item).Nodump = true; + ((Rom)item).ItemStatus = ItemStatus.Nodump; } else if (item.Type == ItemType.Disk) { - ((Disk)item).Nodump = true; + ((Disk)item).ItemStatus = ItemStatus.Nodump; } } // Even number of quotes, not in a quote, not in attribute @@ -882,15 +882,48 @@ namespace SabreTools.Helper } break; case "flags": - if (gc[i].Replace("\"", "").ToLowerInvariant() == "nodump") + if (val.ToLowerInvariant() == "good") { if (item.Type == ItemType.Rom) { - ((Rom)item).Nodump = true; + ((Rom)item).ItemStatus = ItemStatus.Good; } else if (item.Type == ItemType.Disk) { - ((Disk)item).Nodump = true; + ((Disk)item).ItemStatus = ItemStatus.Good; + } + } + else if (val.ToLowerInvariant() == "baddump") + { + if (item.Type == ItemType.Rom) + { + ((Rom)item).ItemStatus = ItemStatus.BadDump; + } + else if (item.Type == ItemType.Disk) + { + ((Disk)item).ItemStatus = ItemStatus.BadDump; + } + } + else if (val.ToLowerInvariant() == "nodump") + { + if (item.Type == ItemType.Rom) + { + ((Rom)item).ItemStatus = ItemStatus.Nodump; + } + else if (item.Type == ItemType.Disk) + { + ((Disk)item).ItemStatus = ItemStatus.Nodump; + } + } + else if (val.ToLowerInvariant() == "verified") + { + if (item.Type == ItemType.Rom) + { + ((Rom)item).ItemStatus = ItemStatus.Verified; + } + else if (item.Type == ItemType.Disk) + { + ((Disk)item).ItemStatus = ItemStatus.Verified; } } break; @@ -977,15 +1010,48 @@ namespace SabreTools.Helper } break; case "flags": - if (val.ToLowerInvariant() == "nodump") + if (val.ToLowerInvariant() == "good") { if (item.Type == ItemType.Rom) { - ((Rom)item).Nodump = true; + ((Rom)item).ItemStatus = ItemStatus.Good; } else if (item.Type == ItemType.Disk) { - ((Disk)item).Nodump = true; + ((Disk)item).ItemStatus = ItemStatus.Good; + } + } + else if (val.ToLowerInvariant() == "baddump") + { + if (item.Type == ItemType.Rom) + { + ((Rom)item).ItemStatus = ItemStatus.BadDump; + } + else if (item.Type == ItemType.Disk) + { + ((Disk)item).ItemStatus = ItemStatus.BadDump; + } + } + else if (val.ToLowerInvariant() == "nodump") + { + if (item.Type == ItemType.Rom) + { + ((Rom)item).ItemStatus = ItemStatus.Nodump; + } + else if (item.Type == ItemType.Disk) + { + ((Disk)item).ItemStatus = ItemStatus.Nodump; + } + } + else if (val.ToLowerInvariant() == "verified") + { + if (item.Type == ItemType.Rom) + { + ((Rom)item).ItemStatus = ItemStatus.Verified; + } + else if (item.Type == ItemType.Disk) + { + ((Disk)item).ItemStatus = ItemStatus.Verified; } } break; @@ -1303,7 +1369,7 @@ namespace SabreTools.Helper */ string[] rominfo = line.Split('¬'); - Rom rom = new Rom(rominfo[5], Int64.Parse(rominfo[7]), rominfo[6], null, null, false, null, rominfo[3], null, + Rom rom = new Rom(rominfo[5], Int64.Parse(rominfo[7]), rominfo[6], null, null, ItemStatus.None, null, rominfo[3], null, rominfo[4], null, null, rominfo[8], rominfo[1], null, null, false, null, null, sysid, null, srcid, null); // Now process and add the rom @@ -1373,9 +1439,10 @@ namespace SabreTools.Helper { // Prepare all internal variables XmlReader subreader, headreader, flagreader; - bool superdat = false, isnodump = false, empty = true; + bool superdat = false, empty = true; string key = "", date = ""; long size = -1; + ItemStatus its = ItemStatus.None; List parent = new List(); XmlTextReader xtr = GetXmlTextReader(filename, logger); @@ -1819,13 +1886,27 @@ namespace SabreTools.Helper case "disk": empty = false; - // If the rom is nodump, flag it - isnodump = false; + // If the rom has a status, flag it + its = ItemStatus.None; + if (subreader.GetAttribute("flags") == "good" || subreader.GetAttribute("status") == "good") + { + its = ItemStatus.Good; + } + if (subreader.GetAttribute("flags") == "baddump" || subreader.GetAttribute("status") == "baddump") + { + logger.Log("Bad dump detected: " + + (subreader.GetAttribute("name") != null && subreader.GetAttribute("name") != "" ? "\"" + xtr.GetAttribute("name") + "\"" : "ROM NAME NOT FOUND")); + its = ItemStatus.BadDump; + } if (subreader.GetAttribute("flags") == "nodump" || subreader.GetAttribute("status") == "nodump") { logger.Log("Nodump detected: " + (subreader.GetAttribute("name") != null && subreader.GetAttribute("name") != "" ? "\"" + xtr.GetAttribute("name") + "\"" : "ROM NAME NOT FOUND")); - isnodump = true; + its = ItemStatus.Nodump; + } + if (subreader.GetAttribute("flags") == "verified" || subreader.GetAttribute("status") == "verified") + { + its = ItemStatus.Verified; } // If the rom has a Date attached, read it in and then sanitize it @@ -1880,13 +1961,13 @@ namespace SabreTools.Helper { case "disk": inrom = new Disk(subreader.GetAttribute("name"), subreader.GetAttribute("md5"), subreader.GetAttribute("sha1"), - isnodump, tempname, null, gamedesc, null, null, romof, cloneof, sampleof, null, false, null, null, sysid, + its, tempname, null, gamedesc, null, null, romof, cloneof, sampleof, null, false, null, null, sysid, filename, srcid, null); break; case "rom": default: inrom = new Rom(subreader.GetAttribute("name"), size, subreader.GetAttribute("crc"), subreader.GetAttribute("md5"), - subreader.GetAttribute("sha1"), isnodump, date, tempname, null, gamedesc, null, null, romof, cloneof, sampleof, + subreader.GetAttribute("sha1"), its, date, tempname, null, gamedesc, null, null, romof, cloneof, sampleof, null, false, null, null, sysid, filename, srcid, null); break; } @@ -1942,7 +2023,7 @@ namespace SabreTools.Helper empty = false; // If the rom is nodump, flag it - isnodump = false; + its = ItemStatus.None; flagreader = xtr.ReadSubtree(); if (flagreader != null) { @@ -1964,10 +2045,21 @@ namespace SabreTools.Helper string content = flagreader.GetAttribute("value"); switch (flagreader.GetAttribute("name")) { + case "good": + its = ItemStatus.Good; + break; + case "baddump": + logger.Log("Bad dump detected: " + (xtr.GetAttribute("name") != null && xtr.GetAttribute("name") != "" ? + "\"" + xtr.GetAttribute("name") + "\"" : "ROM NAME NOT FOUND")); + its = ItemStatus.BadDump; + break; case "nodump": logger.Log("Nodump detected: " + (xtr.GetAttribute("name") != null && xtr.GetAttribute("name") != "" ? "\"" + xtr.GetAttribute("name") + "\"" : "ROM NAME NOT FOUND")); - isnodump = true; + its = ItemStatus.Nodump; + break; + case "verified": + its = ItemStatus.Verified; break; } } @@ -2028,13 +2120,13 @@ namespace SabreTools.Helper { case "disk": rom = new Disk(xtr.GetAttribute("name"), xtr.GetAttribute("md5")?.ToLowerInvariant(), - xtr.GetAttribute("sha1")?.ToLowerInvariant(), isnodump, tempname, null, tempname, null, null, + xtr.GetAttribute("sha1")?.ToLowerInvariant(), its, tempname, null, tempname, null, null, null, null, null, null, false, null, null, sysid, filename, srcid, null); break; case "rom": default: rom = new Rom(xtr.GetAttribute("name"), size, xtr.GetAttribute("crc")?.ToLowerInvariant(), - xtr.GetAttribute("md5")?.ToLowerInvariant(), xtr.GetAttribute("sha1")?.ToLowerInvariant(), isnodump, + xtr.GetAttribute("md5")?.ToLowerInvariant(), xtr.GetAttribute("sha1")?.ToLowerInvariant(), its, date, tempname, null, tempname, null, null, null, null, null, null, false, null, null, sysid, filename, srcid, null); break; @@ -2115,7 +2207,7 @@ namespace SabreTools.Helper else if (itemRom.Type == ItemType.Rom && (itemRom.Size == 0 || itemRom.Size == -1)) { logger.Warning("Incomplete entry for \"" + itemRom.Name + "\" will be output as nodump"); - itemRom.Nodump = true; + itemRom.ItemStatus = ItemStatus.Nodump; } item = itemRom; @@ -2172,18 +2264,18 @@ namespace SabreTools.Helper datdata.TotalSize += 0; datdata.MD5Count += (String.IsNullOrEmpty(((Disk)item).MD5) ? 0 : 1); datdata.SHA1Count += (String.IsNullOrEmpty(((Disk)item).SHA1) ? 0 : 1); - datdata.NodumpCount += (((Disk)item).Nodump ? 1 : 0); + datdata.NodumpCount += (((Disk)item).ItemStatus == ItemStatus.Nodump ? 1 : 0); break; case ItemType.Rom: key = ((Rom)item).Size + "-" + ((Rom)item).CRC; // Add statistical data datdata.RomCount += 1; - datdata.TotalSize += (((Rom)item).Nodump ? 0 : ((Rom)item).Size); + datdata.TotalSize += (((Rom)item).ItemStatus == ItemStatus.Nodump ? 0 : ((Rom)item).Size); datdata.CRCCount += (String.IsNullOrEmpty(((Rom)item).CRC) ? 0 : 1); datdata.MD5Count += (String.IsNullOrEmpty(((Rom)item).MD5) ? 0 : 1); datdata.SHA1Count += (String.IsNullOrEmpty(((Rom)item).SHA1) ? 0 : 1); - datdata.NodumpCount += (((Rom)item).Nodump ? 1 : 0); + datdata.NodumpCount += (((Rom)item).ItemStatus == ItemStatus.Nodump ? 1 : 0); break; default: key = "default"; @@ -3398,7 +3490,7 @@ namespace SabreTools.Helper state += "\tdisk ( name \"" + rom.Name + "\"" + (!String.IsNullOrEmpty(((Disk)rom).MD5) ? " md5 " + ((Disk)rom).MD5.ToLowerInvariant() : "") + (!String.IsNullOrEmpty(((Disk)rom).SHA1) ? " sha1 " + ((Disk)rom).SHA1.ToLowerInvariant() : "") - + (((Disk)rom).Nodump ? " flags nodump" : "") + + (((Disk)rom).ItemStatus != ItemStatus.None ? " flags " + ((Disk)rom).ItemStatus.ToString().ToLowerInvariant() : "") + " )\n"; break; case ItemType.Release: @@ -3418,7 +3510,7 @@ namespace SabreTools.Helper + (!String.IsNullOrEmpty(((Rom)rom).MD5) ? " md5 " + ((Rom)rom).MD5.ToLowerInvariant() : "") + (!String.IsNullOrEmpty(((Rom)rom).SHA1) ? " sha1 " + ((Rom)rom).SHA1.ToLowerInvariant() : "") + (!String.IsNullOrEmpty(((Rom)rom).Date) ? " date \"" + ((Rom)rom).Date + "\"" : "") - + (((Rom)rom).Nodump ? " flags nodump" : "") + + (((Rom)rom).ItemStatus != ItemStatus.None ? " flags " + ((Rom)rom).ItemStatus.ToString().ToLowerInvariant() : "") + " )\n"; break; case ItemType.Sample: @@ -3539,7 +3631,7 @@ namespace SabreTools.Helper + separator + "\"" + ((Rom)rom).CRC + "\"" + separator + "\"" + ((Rom)rom).MD5 + "\"" + separator + "\"" + ((Rom)rom).SHA1 + "\"" - + separator + (((Rom)rom).Nodump ? "\"Nodump\"" : "\"\""); + + separator + (((Rom)rom).ItemStatus != ItemStatus.None ? "\"" + ((Rom)rom).ItemStatus.ToString() + "\"" : "\"\""); state += pre + inline + post + "\n"; } else if (rom.Type == ItemType.Disk) @@ -3556,7 +3648,7 @@ namespace SabreTools.Helper + separator + "\"\"" + separator + "\"" + ((Disk)rom).MD5 + "\"" + separator + "\"" + ((Disk)rom).SHA1 + "\"" - + separator + (((Disk)rom).Nodump ? "\"Nodump\"" : "\"\""); + + separator + (((Disk)rom).ItemStatus != ItemStatus.None ? "\"" + ((Disk)rom).ItemStatus.ToString() + "\"" : "\"\""); state += pre + inline + post + "\n"; } } @@ -3669,8 +3761,8 @@ namespace SabreTools.Helper state += "\n" + prefix + "\t\n" + - prefix + "\t\t\n" + + + (((Disk)rom).ItemStatus != ItemStatus.None ? prefix + "/>\n" + prefix + "\t\n" + + prefix + "\t\t\n" + prefix + "\t\n" + prefix + "\n" : "/>\n"); break; @@ -3691,8 +3783,8 @@ namespace SabreTools.Helper + (!String.IsNullOrEmpty(((Rom)rom).MD5) ? " md5=\"" + ((Rom)rom).MD5.ToLowerInvariant() + "\"" : "") + (!String.IsNullOrEmpty(((Rom)rom).SHA1) ? " sha1=\"" + ((Rom)rom).SHA1.ToLowerInvariant() + "\"" : "") + (!String.IsNullOrEmpty(((Rom)rom).Date) ? " date=\"" + ((Rom)rom).Date + "\"" : "") - + (((Rom)rom).Nodump ? prefix + "/>\n" + prefix + "\t\n" + - prefix + "\t\t\n" + + + (((Rom)rom).ItemStatus != ItemStatus.None ? prefix + "/>\n" + prefix + "\t\n" + + prefix + "\t\t\n" + prefix + "\t\n" + prefix + "\n" : "/>\n"); break; @@ -3721,7 +3813,7 @@ namespace SabreTools.Helper state += "\t\t\n"; break; case ItemType.Release: @@ -3741,7 +3833,7 @@ namespace SabreTools.Helper + (!String.IsNullOrEmpty(((Rom)rom).MD5) ? " md5=\"" + ((Rom)rom).MD5.ToLowerInvariant() + "\"" : "") + (!String.IsNullOrEmpty(((Rom)rom).SHA1) ? " sha1=\"" + ((Rom)rom).SHA1.ToLowerInvariant() + "\"" : "") + (!String.IsNullOrEmpty(((Rom)rom).Date) ? " date=\"" + ((Rom)rom).Date + "\"" : "") - + (((Rom)rom).Nodump ? " status=\"nodump\"" : "") + + (((Rom)rom).ItemStatus != ItemStatus.None ? " status=\"" + ((Rom)rom).ItemStatus.ToString().ToLowerInvariant() + "\"" : "") + "/>\n"; break; case ItemType.Sample: @@ -4138,8 +4230,8 @@ namespace SabreTools.Helper } // If the file is a nodump - if ((rom.Type == ItemType.Rom && ((Rom)rom).Nodump) - || (rom.Type == ItemType.Disk && ((Disk)rom).Nodump)) + if ((rom.Type == ItemType.Rom && ((Rom)rom).ItemStatus == ItemStatus.Nodump) + || (rom.Type == ItemType.Disk && ((Disk)rom).ItemStatus == ItemStatus.Nodump)) { if (nodump.Files.ContainsKey(key)) { diff --git a/SabreTools.Helper/Objects/Dat/DatItem.cs b/SabreTools.Helper/Objects/Dat/DatItem.cs index a967dbbf..9da6ae20 100644 --- a/SabreTools.Helper/Objects/Dat/DatItem.cs +++ b/SabreTools.Helper/Objects/Dat/DatItem.cs @@ -261,11 +261,11 @@ namespace SabreTools.Helper Rom rom = (Rom)itemdata; // Filter on nodump status - if (nodump == true && !rom.Nodump) + if (nodump == true && rom.ItemStatus != ItemStatus.Nodump) { return false; } - if (nodump == false && rom.Nodump) + if (nodump == false && rom.ItemStatus == ItemStatus.Nodump) { return false; } @@ -391,11 +391,11 @@ namespace SabreTools.Helper Disk rom = (Disk)itemdata; // Filter on nodump status - if (nodump == true && !rom.Nodump) + if (nodump == true && rom.ItemStatus != ItemStatus.Nodump) { return false; } - if (nodump == false && rom.Nodump) + if (nodump == false && rom.ItemStatus == ItemStatus.Nodump) { return false; } @@ -567,12 +567,12 @@ namespace SabreTools.Helper foreach (DatItem file in infiles) { // If it's a nodump, add and skip - if (file.Type == ItemType.Rom && ((Rom)file).Nodump) + if (file.Type == ItemType.Rom && ((Rom)file).ItemStatus == ItemStatus.Nodump) { outfiles.Add(file); continue; } - else if (file.Type == ItemType.Disk && ((Disk)file).Nodump) + else if (file.Type == ItemType.Disk && ((Disk)file).ItemStatus == ItemStatus.Nodump) { outfiles.Add(file); continue; diff --git a/SabreTools.Helper/Objects/Dat/Disk.cs b/SabreTools.Helper/Objects/Dat/Disk.cs index 5210ace4..2a6c496d 100644 --- a/SabreTools.Helper/Objects/Dat/Disk.cs +++ b/SabreTools.Helper/Objects/Dat/Disk.cs @@ -10,8 +10,7 @@ namespace SabreTools.Helper protected string _md5; protected string _sha1; // private string _merge; - // private DiskStatus _romStatus; - protected bool _nodump; + protected ItemStatus _itemStatus; #endregion @@ -28,10 +27,10 @@ namespace SabreTools.Helper get { return _sha1; } set { _sha1 = value; } } - public bool Nodump + public ItemStatus ItemStatus { - get { return _nodump; } - set { _nodump = value; } + get { return _itemStatus; } + set { _itemStatus = value; } } #endregion @@ -46,7 +45,7 @@ namespace SabreTools.Helper _name = ""; _itemType = ItemType.Disk; _dupeType = DupeType.None; - _nodump = false; + _itemStatus = ItemStatus.None; } /// @@ -55,14 +54,14 @@ namespace SabreTools.Helper /// Name of the item, including extension /// String representation of the MD5 /// String representation of the SHA-1 - /// True if the file is a nodump, false otherwise - public Disk(string name, string md5, string sha1, bool nodump) + /// Status of the current item + public Disk(string name, string md5, string sha1, ItemStatus itemStatus) { _name = name; _itemType = ItemType.Disk; _md5 = md5?.ToLowerInvariant(); _sha1 = sha1?.ToLowerInvariant(); - _nodump = nodump; + _itemStatus = itemStatus; } /// @@ -71,7 +70,7 @@ namespace SabreTools.Helper /// Name of the item, including extension /// String representation of the MD5 /// String representation of the SHA-1 - /// True if the file is a nodump, false otherwise + /// Status of the current item /// Name for the machine/game /// Comment for the machine/game /// Description for the machine/game @@ -88,7 +87,7 @@ namespace SabreTools.Helper /// System Name to be associated with /// Source ID to be associated with /// Source Name to be associated with - public Disk(string name, string md5, string sha1, bool nodump, string machineName, string comment, + public Disk(string name, string md5, string sha1, ItemStatus itemStatus, string machineName, string comment, string machineDescription, string year, string manufacturer, string romOf, string cloneOf, string sampleOf, string sourceFile, bool isBios, string board, string rebuildTo, int systemId, string systemName, int sourceId, string sourceName) { @@ -96,7 +95,7 @@ namespace SabreTools.Helper _itemType = ItemType.Disk; _md5 = md5?.ToLowerInvariant(); _sha1 = sha1?.ToLowerInvariant(); - _nodump = nodump; + _itemStatus = itemStatus; _machineName = machineName; _comment = comment; _machineDescription = machineDescription; @@ -133,7 +132,7 @@ namespace SabreTools.Helper Disk newOther = (Disk)other; // If either is a nodump, it's never a match - if (_nodump || newOther.Nodump) + if (_itemStatus == ItemStatus.Nodump || newOther.ItemStatus == ItemStatus.Nodump) { return dupefound; } diff --git a/SabreTools.Helper/Objects/Dat/Rom.cs b/SabreTools.Helper/Objects/Dat/Rom.cs index 04d92a91..5ffef5ba 100644 --- a/SabreTools.Helper/Objects/Dat/Rom.cs +++ b/SabreTools.Helper/Objects/Dat/Rom.cs @@ -44,7 +44,7 @@ namespace SabreTools.Helper _name = ""; _itemType = ItemType.Rom; _dupeType = DupeType.None; - _nodump = false; + _itemStatus = ItemStatus.None; _date = ""; } @@ -54,7 +54,7 @@ namespace SabreTools.Helper /// /// public Rom(string name, string machineName) : - this(name, -1, "null", "null", "null", false, null, machineName, null, machineName, null, null, null, null, null, null, false, null, null, -1, null, -1, null) + this(name, -1, "null", "null", "null", ItemStatus.None, null, machineName, null, machineName, null, null, null, null, null, null, false, null, null, -1, null, -1, null) { } @@ -66,9 +66,9 @@ namespace SabreTools.Helper /// String representation of the CRC /// String representation of the MD5 /// String representation of the SHA-1 - /// True if the file is a nodump, false otherwise + /// Status of the current item /// String representation of the Date - public Rom(string name, long size, string crc, string md5, string sha1, bool nodump, string date) + public Rom(string name, long size, string crc, string md5, string sha1, ItemStatus itemStatus, string date) { _name = name; _itemType = ItemType.Rom; @@ -76,7 +76,7 @@ namespace SabreTools.Helper _crc = crc?.ToLowerInvariant(); _md5 = md5?.ToLowerInvariant(); _sha1 = sha1?.ToLowerInvariant(); - _nodump = nodump; + _itemStatus = itemStatus; _date = date; } @@ -88,7 +88,7 @@ namespace SabreTools.Helper /// String representation of the CRC /// String representation of the MD5 /// String representation of the SHA-1 - /// True if the file is a nodump, false otherwise + /// Status of the current item /// String representation of the Date /// Name for the machine/game /// Comment for the machine/game @@ -106,7 +106,7 @@ namespace SabreTools.Helper /// System Name to be associated with /// Source ID to be associated with /// Source Name to be associated with - public Rom(string name, long size, string crc, string md5, string sha1, bool nodump, string date, string machineName, + public Rom(string name, long size, string crc, string md5, string sha1, ItemStatus itemStatus, string date, string machineName, string comment, string machineDescription, string year, string manufacturer, string romOf, string cloneOf, string sampleOf, string sourceFile, bool isBios, string board, string rebuildTo, int systemId, string systemName, int sourceId, string sourceName) { @@ -116,7 +116,7 @@ namespace SabreTools.Helper _crc = crc?.ToLowerInvariant(); _md5 = md5?.ToLowerInvariant(); _sha1 = sha1?.ToLowerInvariant(); - _nodump = nodump; + _itemStatus = itemStatus; _date = date; _machineName = machineName; _comment = comment; @@ -154,7 +154,7 @@ namespace SabreTools.Helper Rom newOther = (Rom)other; // If either is a nodump, it's never a match - if (_nodump || newOther.Nodump) + if (_itemStatus == ItemStatus.Nodump || newOther.ItemStatus == ItemStatus.Nodump) { return dupefound; } diff --git a/SabreTools.Helper/Objects/Stats.cs b/SabreTools.Helper/Objects/Stats.cs index c213fd9e..409f385e 100644 --- a/SabreTools.Helper/Objects/Stats.cs +++ b/SabreTools.Helper/Objects/Stats.cs @@ -122,11 +122,11 @@ Please check the log folder if the stats scrolled offscreen"); { datdata.RomCount += (rom.Type == ItemType.Rom ? 1 : 0); datdata.DiskCount += (rom.Type == ItemType.Disk ? 1 : 0); - datdata.TotalSize += (rom.Nodump ? 0 : rom.Size); + datdata.TotalSize += (rom.ItemStatus == ItemStatus.Nodump ? 0 : rom.Size); datdata.CRCCount += (String.IsNullOrEmpty(rom.CRC) ? 0 : 1); datdata.MD5Count += (String.IsNullOrEmpty(rom.MD5) ? 0 : 1); datdata.SHA1Count += (String.IsNullOrEmpty(rom.SHA1) ? 0 : 1); - datdata.NodumpCount += (rom.Nodump ? 1 : 0); + datdata.NodumpCount += (rom.ItemStatus == ItemStatus.Nodump ? 1 : 0); } } }