From 24387491aec19303a29b7390959e1b1846f31696 Mon Sep 17 00:00:00 2001 From: Matt Nadareski Date: Thu, 9 Jan 2025 05:52:33 -0500 Subject: [PATCH] Make duplicate suffix inherent --- SabreTools.DatFiles/DatFile.cs | 31 ++++++---------------------- SabreTools.DatItems/DatItem.cs | 6 ++++++ SabreTools.DatItems/Formats/Disk.cs | 6 ------ SabreTools.DatItems/Formats/File.cs | 2 +- SabreTools.DatItems/Formats/Media.cs | 6 ------ SabreTools.DatItems/Formats/Rom.cs | 6 ------ 6 files changed, 13 insertions(+), 44 deletions(-) diff --git a/SabreTools.DatFiles/DatFile.cs b/SabreTools.DatFiles/DatFile.cs index 04a6ad1c..fae89cd8 100644 --- a/SabreTools.DatFiles/DatFile.cs +++ b/SabreTools.DatFiles/DatFile.cs @@ -811,11 +811,9 @@ namespace SabreTools.DatFiles { _logger.Verbose($"Name duplicate found for '{datItemName}'"); - if (datItem is Disk || datItem is DatItems.Formats.File || datItem is Media || datItem is Rom) - { - datItemName += GetDuplicateSuffix(datItem); - lastrenamed ??= datItemName; - } + // Get the duplicate suffix + datItemName += datItem.GetDuplicateSuffix(); + lastrenamed ??= datItemName; // If we have a conflict with the last renamed item, do the right thing if (datItemName == lastrenamed) @@ -906,11 +904,9 @@ namespace SabreTools.DatFiles { _logger.Verbose($"Name duplicate found for '{datItemName}'"); - if (datItem.Value is Disk || datItem.Value is DatItems.Formats.File || datItem.Value is Media || datItem.Value is Rom) - { - datItemName += GetDuplicateSuffix(datItem.Value); - lastrenamed ??= datItemName; - } + // Get the duplicate suffix + datItemName += datItem.Value.GetDuplicateSuffix(); + lastrenamed ??= datItemName; // If we have a conflict with the last renamed item, do the right thing if (datItemName == lastrenamed) @@ -1017,21 +1013,6 @@ namespace SabreTools.DatFiles return false; } - /// - /// Get duplicate suffix based on the item type - /// - private static string GetDuplicateSuffix(DatItem datItem) - { - return datItem switch - { - Disk disk => disk.GetDuplicateSuffix(), - DatItems.Formats.File file => file.GetDuplicateSuffix(), - Media media => media.GetDuplicateSuffix(), - Rom rom => rom.GetDuplicateSuffix(), - _ => "_1", - }; - } - #endregion } } diff --git a/SabreTools.DatItems/DatItem.cs b/SabreTools.DatItems/DatItem.cs index e162a5c5..7b51cd1d 100644 --- a/SabreTools.DatItems/DatItem.cs +++ b/SabreTools.DatItems/DatItem.cs @@ -356,6 +356,12 @@ namespace SabreTools.DatItems #region Sorting and Merging + /// + /// Get unique duplicate suffix on name collision + /// + /// String representing the suffix + public virtual string GetDuplicateSuffix() => _internal.GetDuplicateSuffix(); + /// /// Get the dictionary key that should be used for a given item and bucketing type /// diff --git a/SabreTools.DatItems/Formats/Disk.cs b/SabreTools.DatItems/Formats/Disk.cs index 8fc8cc37..e5eba765 100644 --- a/SabreTools.DatItems/Formats/Disk.cs +++ b/SabreTools.DatItems/Formats/Disk.cs @@ -114,12 +114,6 @@ namespace SabreTools.DatItems.Formats public void FillMissingInformation(Disk other) => _internal.FillMissingHashes(other._internal); - /// - /// Get unique duplicate suffix on name collision - /// - /// String representing the suffix - public string GetDuplicateSuffix() => _internal.GetDuplicateSuffix(); - /// /// Returns if the Rom contains any hashes /// diff --git a/SabreTools.DatItems/Formats/File.cs b/SabreTools.DatItems/Formats/File.cs index b4439ebd..8745432e 100644 --- a/SabreTools.DatItems/Formats/File.cs +++ b/SabreTools.DatItems/Formats/File.cs @@ -216,7 +216,7 @@ namespace SabreTools.DatItems.Formats /// Get unique duplicate suffix on name collision /// /// String representing the suffix - public string GetDuplicateSuffix() + public override string GetDuplicateSuffix() { if (!_crc.IsNullOrEmpty()) return $"_{CRC}"; diff --git a/SabreTools.DatItems/Formats/Media.cs b/SabreTools.DatItems/Formats/Media.cs index 40ad17b7..39052b73 100644 --- a/SabreTools.DatItems/Formats/Media.cs +++ b/SabreTools.DatItems/Formats/Media.cs @@ -63,12 +63,6 @@ namespace SabreTools.DatItems.Formats public void FillMissingInformation(Media other) => _internal.FillMissingHashes(other._internal); - /// - /// Get unique duplicate suffix on name collision - /// - /// String representing the suffix - public string GetDuplicateSuffix() => _internal.GetDuplicateSuffix(); - /// /// Returns if the Rom contains any hashes /// diff --git a/SabreTools.DatItems/Formats/Rom.cs b/SabreTools.DatItems/Formats/Rom.cs index 46780532..2de1a990 100644 --- a/SabreTools.DatItems/Formats/Rom.cs +++ b/SabreTools.DatItems/Formats/Rom.cs @@ -105,12 +105,6 @@ namespace SabreTools.DatItems.Formats public void FillMissingInformation(Rom other) => _internal.FillMissingHashes(other._internal); - /// - /// Get unique duplicate suffix on name collision - /// - /// String representing the suffix - public string GetDuplicateSuffix() => _internal.GetDuplicateSuffix(); - /// /// Returns if the Rom contains any hashes ///