mirror of
https://github.com/claunia/SabreTools.git
synced 2025-12-16 19:14:27 +00:00
[DatFile, DatItem, Utilities] Method cleanup
This commit is contained in:
@@ -644,168 +644,11 @@ namespace SabreTools.Library.DatItems
|
||||
// If we're not already sorted, take care of it
|
||||
if (!sorted)
|
||||
{
|
||||
// If all items are supposed to have a SHA-512, we sort by that
|
||||
if (datdata.RomCount + datdata.DiskCount - datdata.NodumpCount == datdata.SHA512Count
|
||||
&& ((_itemType == ItemType.Rom && !String.IsNullOrWhiteSpace(((Rom)this).SHA512))
|
||||
|| (_itemType == ItemType.Disk && !String.IsNullOrWhiteSpace(((Disk)this).SHA512))))
|
||||
{
|
||||
datdata.BucketBy(SortedBy.SHA512, DedupeType.None);
|
||||
}
|
||||
|
||||
// If all items are supposed to have a SHA-384, we sort by that
|
||||
else if (datdata.RomCount + datdata.DiskCount - datdata.NodumpCount == datdata.SHA384Count
|
||||
&& ((_itemType == ItemType.Rom && !String.IsNullOrWhiteSpace(((Rom)this).SHA384))
|
||||
|| (_itemType == ItemType.Disk && !String.IsNullOrWhiteSpace(((Disk)this).SHA384))))
|
||||
{
|
||||
datdata.BucketBy(SortedBy.SHA384, DedupeType.None);
|
||||
}
|
||||
|
||||
// If all items are supposed to have a SHA-256, we sort by that
|
||||
else if (datdata.RomCount + datdata.DiskCount - datdata.NodumpCount == datdata.SHA256Count
|
||||
&& ((_itemType == ItemType.Rom && !String.IsNullOrWhiteSpace(((Rom)this).SHA256))
|
||||
|| (_itemType == ItemType.Disk && !String.IsNullOrWhiteSpace(((Disk)this).SHA256))))
|
||||
{
|
||||
if (_itemType == ItemType.Rom)
|
||||
{
|
||||
key = ((Rom)this).SHA256;
|
||||
datdata.BucketBy(SortedBy.SHA256, DedupeType.None);
|
||||
}
|
||||
else
|
||||
{
|
||||
key = ((Disk)this).SHA256;
|
||||
datdata.BucketBy(SortedBy.SHA256, DedupeType.None);
|
||||
}
|
||||
}
|
||||
|
||||
// If all items are supposed to have a SHA-1, we sort by that
|
||||
else if (datdata.RomCount + datdata.DiskCount - datdata.NodumpCount == datdata.SHA1Count
|
||||
&& ((_itemType == ItemType.Rom && !String.IsNullOrWhiteSpace(((Rom)this).SHA1))
|
||||
|| (_itemType == ItemType.Disk && !String.IsNullOrWhiteSpace(((Disk)this).SHA1))))
|
||||
{
|
||||
if (_itemType == ItemType.Rom)
|
||||
{
|
||||
key = ((Rom)this).SHA1;
|
||||
datdata.BucketBy(SortedBy.SHA1, DedupeType.None);
|
||||
}
|
||||
else
|
||||
{
|
||||
key = ((Disk)this).SHA1;
|
||||
datdata.BucketBy(SortedBy.SHA1, DedupeType.None);
|
||||
}
|
||||
}
|
||||
|
||||
// If all items are supposed to have an MD5, we sort by that
|
||||
else if (datdata.RomCount + datdata.DiskCount - datdata.NodumpCount == datdata.MD5Count
|
||||
&& ((_itemType == ItemType.Rom && !String.IsNullOrWhiteSpace(((Rom)this).MD5))
|
||||
|| (_itemType == ItemType.Disk && !String.IsNullOrWhiteSpace(((Disk)this).MD5))))
|
||||
{
|
||||
if (_itemType == ItemType.Rom)
|
||||
{
|
||||
key = ((Rom)this).MD5;
|
||||
datdata.BucketBy(SortedBy.MD5, DedupeType.None);
|
||||
}
|
||||
else
|
||||
{
|
||||
key = ((Disk)this).MD5;
|
||||
datdata.BucketBy(SortedBy.MD5, DedupeType.None);
|
||||
}
|
||||
}
|
||||
}
|
||||
datdata.BucketByBestAvailable();
|
||||
}
|
||||
|
||||
// Now that we have the sorted type, we get the proper key
|
||||
switch (datdata.SortedBy)
|
||||
{
|
||||
case SortedBy.SHA512:
|
||||
if (_itemType == ItemType.Rom)
|
||||
{
|
||||
key = ((Rom)this).SHA512;
|
||||
}
|
||||
else if (_itemType == ItemType.Disk)
|
||||
{
|
||||
key = ((Disk)this).SHA512;
|
||||
}
|
||||
break;
|
||||
case SortedBy.SHA384:
|
||||
if (_itemType == ItemType.Rom)
|
||||
{
|
||||
key = ((Rom)this).SHA384;
|
||||
}
|
||||
else if (_itemType == ItemType.Disk)
|
||||
{
|
||||
key = ((Disk)this).SHA384;
|
||||
}
|
||||
break;
|
||||
case SortedBy.SHA256:
|
||||
if (_itemType == ItemType.Rom)
|
||||
{
|
||||
key = ((Rom)this).SHA256;
|
||||
}
|
||||
else if (_itemType == ItemType.Disk)
|
||||
{
|
||||
key = ((Disk)this).SHA256;
|
||||
}
|
||||
break;
|
||||
case SortedBy.SHA1:
|
||||
if (_itemType == ItemType.Rom)
|
||||
{
|
||||
key = ((Rom)this).SHA1;
|
||||
}
|
||||
else if (_itemType == ItemType.Disk)
|
||||
{
|
||||
key = ((Disk)this).SHA1;
|
||||
}
|
||||
break;
|
||||
case SortedBy.MD5:
|
||||
if (_itemType == ItemType.Rom)
|
||||
{
|
||||
key = ((Rom)this).MD5;
|
||||
}
|
||||
else if (_itemType == ItemType.Disk)
|
||||
{
|
||||
key = ((Disk)this).MD5;
|
||||
}
|
||||
break;
|
||||
case SortedBy.CRC:
|
||||
if (_itemType == ItemType.Rom)
|
||||
{
|
||||
key = ((Rom)this).CRC;
|
||||
}
|
||||
break;
|
||||
case SortedBy.Game:
|
||||
key = this.MachineName;
|
||||
break;
|
||||
case SortedBy.Size:
|
||||
if (_itemType == ItemType.Rom)
|
||||
{
|
||||
key = ((Rom)this).Size.ToString();
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
// If we got here and the key is still null...
|
||||
if (key == null)
|
||||
{
|
||||
// If we've gotten here and we have a Disk, sort by MD5
|
||||
if (_itemType == ItemType.Disk)
|
||||
{
|
||||
key = ((Disk)this).MD5;
|
||||
datdata.BucketBy(SortedBy.MD5, DedupeType.None);
|
||||
}
|
||||
|
||||
// If we've gotten here and we have a Rom, sort by CRC
|
||||
else if (_itemType == ItemType.Rom)
|
||||
{
|
||||
key = ((Rom)this).CRC;
|
||||
datdata.BucketBy(SortedBy.CRC, DedupeType.None);
|
||||
}
|
||||
|
||||
// Otherwise, we use -1 as the key
|
||||
else
|
||||
{
|
||||
key = "-1";
|
||||
datdata.BucketBy(SortedBy.Size, DedupeType.None);
|
||||
}
|
||||
}
|
||||
key = Utilities.GetKeyFromDatItem(this, datdata.SortedBy);
|
||||
|
||||
return key;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user