diff --git a/SabreTools.Helper/Tools/DatTools.cs b/SabreTools.Helper/Tools/DatTools.cs index 1a681c21..4593d4c7 100644 --- a/SabreTools.Helper/Tools/DatTools.cs +++ b/SabreTools.Helper/Tools/DatTools.cs @@ -1573,6 +1573,37 @@ namespace SabreTools.Helper return outroms; } + /// + /// List all duplicates found in a DAT based on a rom + /// + /// Rom to use as a base + /// DAT to match against + /// List of matched RomData objects + public static List ListDuplicates(RomData lastrom, DatData datdata) + { + List output = new List(); + + // Check for an empty rom list first + if (datdata.Roms == null || datdata.Roms.Count == 0) + { + return output; + } + + // Try to find duplicates + foreach (List roms in datdata.Roms.Values) + { + foreach (RomData rom in roms) + { + if (RomDuplicate(rom, lastrom)) + { + output.Add(rom); + } + } + } + + return output; + } + /// /// Determine if a file is a duplicate using partial matching logic ///