Use DictionaryBase for removal

This commit is contained in:
Matt Nadareski
2024-03-05 01:42:42 -05:00
parent 8f594f09a6
commit 539e4367e0
48 changed files with 1044 additions and 813 deletions

View File

@@ -4,6 +4,7 @@ using Newtonsoft.Json.Converters;
using SabreTools.Core;
using SabreTools.Core.Tools;
using SabreTools.FileTypes;
using SabreTools.Filter;
namespace SabreTools.DatItems.Formats
{
@@ -285,6 +286,31 @@ namespace SabreTools.DatItems.Formats
#endregion
#region Manipulation
/// <inheritdoc/>
public override bool RemoveField(DatItemField datItemField)
{
// Get the correct internal field name
string? fieldName = datItemField switch
{
DatItemField.Index => Models.Metadata.Disk.IndexKey,
DatItemField.MD5 => Models.Metadata.Disk.MD5Key,
DatItemField.Merge => Models.Metadata.Disk.MergeKey,
DatItemField.Optional => Models.Metadata.Disk.OptionalKey,
DatItemField.Region => Models.Metadata.Disk.RegionKey,
DatItemField.SHA1 => Models.Metadata.Disk.SHA1Key,
DatItemField.Status => Models.Metadata.Disk.StatusKey,
DatItemField.Writable => Models.Metadata.Disk.WritableKey,
_ => null,
};
// Remove the field and return
return FieldManipulator.RemoveField(_internal, fieldName);
}
#endregion
#region Sorting and Merging
/// <inheritdoc/>