Undo part of a previous change because of sorting issues

This commit is contained in:
Matt Nadareski
2016-05-13 12:41:06 -07:00
parent ec228fc499
commit 6f025b3dfa

View File

@@ -568,32 +568,69 @@ namespace SabreTools.Helper
{ {
List<RomData> outroms = new List<RomData>(); List<RomData> outroms = new List<RomData>();
// First sort the roms by sha1, sysid, srcid, md5, crc, size (in order) if not sorted already // First sort the roms by size, crc, sysid, srcid, md5, and sha1 (in order), if not sorted already
if (!presorted) if (!presorted)
{ {
inroms.Sort(delegate (RomData x, RomData y) inroms.Sort(delegate (RomData x, RomData y)
{ {
if (x.SHA1 == y.SHA1) if (x.Size == y.Size)
{ {
if (x.SystemID == y.SystemID) if (x.CRC == y.CRC)
{ {
if (x.SourceID == y.SourceID) // If the CRC is blank, use MD5 before SystemID
if (x.CRC == "")
{ {
if (x.MD5 == y.MD5) if (x.MD5 == y.MD5)
{ {
if (x.CRC == y.CRC) // If the MD5 is blank, use SHA1 before SystemID
if (x.MD5 == "")
{ {
return (int)(x.Size - y.Size); if (x.SHA1 == y.SHA1)
{
if (x.SystemID == y.SystemID)
{
return x.SourceID - y.SourceID;
}
return x.SystemID - y.SystemID;
}
return String.Compare(x.SHA1, y.SHA1);
}
else
{
if (x.SystemID == y.SystemID)
{
if (x.SourceID == y.SourceID)
{
return String.Compare(x.SHA1, y.SHA1);
}
return x.SourceID - y.SourceID;
}
return x.SystemID - y.SystemID;
} }
return String.Compare(x.CRC, y.CRC);
} }
return String.Compare(x.MD5, y.MD5); return String.Compare(x.MD5, y.MD5);
} }
return x.SourceID - y.SourceID; else
{
if (x.SystemID == y.SystemID)
{
if (x.SourceID == y.SourceID)
{
if (x.MD5 == y.MD5)
{
return String.Compare(x.SHA1, y.SHA1);
}
return String.Compare(x.MD5, y.MD5);
}
return x.SourceID - y.SourceID;
}
return x.SystemID - y.SystemID;
}
} }
return x.SystemID - y.SystemID; return String.Compare(x.CRC, y.CRC);
} }
return String.Compare(x.SHA1, y.SHA1); return (int)(x.Size - y.Size);
}); });
} }