Reduce DedupeType enum to reasonable values

This commit is contained in:
Matt Nadareski
2025-01-21 10:59:33 -05:00
parent 475075f6e4
commit e17809d104
3 changed files with 24 additions and 15 deletions

View File

@@ -174,19 +174,22 @@ namespace SabreTools.DatFiles
/// </summary>
public enum DedupeType
{
/// <summary>
/// No deduplication
/// </summary>
None = 0,
/// <summary>
/// Deduplicate across all available fields
/// </summary>
/// <remarks>Requires sorting by any hash</remarks>
Full,
// Force only deduping with certain types
/// <summary>
/// Deduplicate on a per-machine basis
/// </summary>
/// <remarks>Requires sorting by machine</remarks>
Game,
CRC,
MD2,
MD4,
MD5,
SHA1,
SHA256,
SHA384,
SHA512,
}
/// <summary>

View File

@@ -393,6 +393,10 @@ namespace SabreTools.DatFiles
if (dedupeType == DedupeType.None)
return;
// Ensure Game deduplication is valid
if (dedupeType == DedupeType.Game && _bucketedBy != ItemKey.Machine)
return;
#if NET452_OR_GREATER || NETCOREAPP
Parallel.ForEach(SortedKeys, Core.Globals.ParallelOptions, key =>
#elif NET40_OR_GREATER
@@ -407,8 +411,7 @@ namespace SabreTools.DatFiles
// Sort the list of items to be consistent
Sort(ref sortedList, false);
// If we're merging the roms, do so
if (dedupeType == DedupeType.Full || (dedupeType == DedupeType.Game && _bucketedBy == ItemKey.Machine))
// Merge the items
sortedList = DatFileTool.Merge(sortedList);
// Add the list back to the dictionary

View File

@@ -688,6 +688,10 @@ namespace SabreTools.DatFiles
if (dedupeType == DedupeType.None)
return;
// Ensure Game deduplication is valid
if (dedupeType == DedupeType.Game && _bucketedBy != ItemKey.Machine)
return;
#if NET452_OR_GREATER || NETCOREAPP
Parallel.ForEach(SortedKeys, Core.Globals.ParallelOptions, key =>
#elif NET40_OR_GREATER
@@ -702,8 +706,7 @@ namespace SabreTools.DatFiles
// Sort the list of items to be consistent
Sort(ref sortedList, false);
// If we're merging the roms, do so
if (dedupeType == DedupeType.Full || (dedupeType == DedupeType.Game && _bucketedBy == ItemKey.Machine))
// Merge the items
sortedList = Merge(sortedList);
// Get all existing mappings