[DatFile] Be more mindful of item types

This commit is contained in:
Matt Nadareski
2017-01-26 20:59:11 -08:00
parent 52c50f54a7
commit a0adcc039f
2 changed files with 36 additions and 22 deletions

View File

@@ -524,12 +524,15 @@ namespace SabreTools.Helper.Dats
foreach (string key in Keys) foreach (string key in Keys)
{ {
List<DatItem> roms = this[key]; List<DatItem> roms = this[key];
foreach (Rom rom in roms) foreach (DatItem rom in roms)
{ {
if (rom.SourceID == 99) if (rom.SourceID == 99)
{ {
found = true; found = true;
matched.Add(rom.Size + "-" + rom.CRC, rom); if (rom.Type == ItemType.Disk || rom.Type == ItemType.Rom)
{
matched.Add(((Disk)rom).SHA1, rom);
}
} }
} }
} }

View File

@@ -49,27 +49,38 @@ namespace SabreTools.Helper.Dats
// Loop through and add // Loop through and add
foreach (string key in Keys) foreach (string key in Keys)
{ {
List<DatItem> roms = this[key]; List<DatItem> items = this[key];
foreach (Rom rom in roms) foreach (DatItem item in items)
{ {
RomCount += (rom.Type == ItemType.Rom ? 1 : 0); switch (item.Type)
DiskCount += (rom.Type == ItemType.Disk ? 1 : 0); {
case ItemType.Archive:
break;
case ItemType.BiosSet:
break;
case ItemType.Disk:
Disk disk = (Disk)item;
DiskCount += 1;
MD5Count += (String.IsNullOrEmpty(disk.MD5) ? 0 : 1);
SHA1Count += (String.IsNullOrEmpty(disk.SHA1) ? 0 : 1);
BaddumpCount += (disk.ItemStatus == ItemStatus.BadDump ? 1 : 0);
NodumpCount += (disk.ItemStatus == ItemStatus.Nodump ? 1 : 0);
break;
case ItemType.Release:
break;
case ItemType.Rom:
Rom rom = (Rom)item;
RomCount += 1;
TotalSize += (rom.ItemStatus == ItemStatus.Nodump ? 0 : rom.Size); TotalSize += (rom.ItemStatus == ItemStatus.Nodump ? 0 : rom.Size);
CRCCount += (String.IsNullOrEmpty(rom.CRC) ? 0 : 1); CRCCount += (String.IsNullOrEmpty(rom.CRC) ? 0 : 1);
MD5Count += (String.IsNullOrEmpty(rom.MD5) ? 0 : 1); MD5Count += (String.IsNullOrEmpty(rom.MD5) ? 0 : 1);
SHA1Count += (String.IsNullOrEmpty(rom.SHA1) ? 0 : 1); SHA1Count += (String.IsNullOrEmpty(rom.SHA1) ? 0 : 1);
BaddumpCount += (rom.Type == ItemType.Disk BaddumpCount += (rom.ItemStatus == ItemStatus.BadDump ? 1 : 0);
? (((Disk)rom).ItemStatus == ItemStatus.BadDump ? 1 : 0) NodumpCount += (rom.ItemStatus == ItemStatus.Nodump ? 1 : 0);
: (rom.Type == ItemType.Rom break;
? (((Rom)rom).ItemStatus == ItemStatus.BadDump ? 1 : 0) case ItemType.Sample:
: 0) break;
); }
NodumpCount += (rom.Type == ItemType.Disk
? (((Disk)rom).ItemStatus == ItemStatus.Nodump ? 1 : 0)
: (rom.Type == ItemType.Rom
? (((Rom)rom).ItemStatus == ItemStatus.Nodump ? 1 : 0)
: 0)
);
} }
} }
} }