diff --git a/SabreTools.DatFiles/DatHeader.cs b/SabreTools.DatFiles/DatHeader.cs index 69d69388..9fee0f0b 100644 --- a/SabreTools.DatFiles/DatHeader.cs +++ b/SabreTools.DatFiles/DatHeader.cs @@ -286,59 +286,7 @@ namespace SabreTools.DatFiles /// /// Clone the current header /// - public object Clone() - { - var header = new DatHeader(); - header.SetFieldValue(DatHeader.AddExtensionKey, GetStringFieldValue(DatHeader.AddExtensionKey)); - header.SetFieldValue(Models.Metadata.Header.AuthorKey, GetStringFieldValue(Models.Metadata.Header.AuthorKey)); - header.SetFieldValue(Models.Metadata.Header.BiosModeKey, GetStringFieldValue(Models.Metadata.Header.BiosModeKey).AsEnumValue().AsStringValue()); - header.SetFieldValue(Models.Metadata.Header.BuildKey, GetStringFieldValue(Models.Metadata.Header.BuildKey)); - header.SetFieldValue(Models.Metadata.Header.CanOpenKey, GetStringArrayFieldValue(Models.Metadata.Header.CanOpenKey)); // TODO: Perform a deep clone - header.SetFieldValue(Models.Metadata.Header.CategoryKey, GetStringFieldValue(Models.Metadata.Header.CategoryKey)); - header.SetFieldValue(Models.Metadata.Header.CommentKey, GetStringFieldValue(Models.Metadata.Header.CommentKey)); - header.SetFieldValue(Models.Metadata.Header.DateKey, GetStringFieldValue(Models.Metadata.Header.DateKey)); - header.SetFieldValue(DatHeader.DatFormatKey, GetFieldValue(DatHeader.DatFormatKey)); - header.SetFieldValue(Models.Metadata.Header.DatVersionKey, GetStringFieldValue(Models.Metadata.Header.DatVersionKey)); - header.SetFieldValue(Models.Metadata.Header.DebugKey, GetBoolFieldValue(Models.Metadata.Header.DebugKey)); - header.SetFieldValue(Models.Metadata.Header.DescriptionKey, GetStringFieldValue(Models.Metadata.Header.DescriptionKey)); - header.SetFieldValue(Models.Metadata.Header.EmailKey, GetStringFieldValue(Models.Metadata.Header.EmailKey)); - header.SetFieldValue(DatHeader.FileNameKey, GetStringFieldValue(DatHeader.FileNameKey)); - header.SetFieldValue(Models.Metadata.Header.ForceMergingKey, GetStringFieldValue(Models.Metadata.Header.ForceMergingKey).AsEnumValue().AsStringValue()); - header.SetFieldValue(Models.Metadata.Header.ForceNodumpKey, GetStringFieldValue(Models.Metadata.Header.ForceNodumpKey).AsEnumValue().AsStringValue()); - header.SetFieldValue(Models.Metadata.Header.ForcePackingKey, GetStringFieldValue(Models.Metadata.Header.ForcePackingKey).AsEnumValue().AsStringValue()); - header.SetFieldValue(DatHeader.GameNameKey, GetBoolFieldValue(DatHeader.GameNameKey)); - header.SetFieldValue(Models.Metadata.Header.HeaderKey, GetStringFieldValue(Models.Metadata.Header.HeaderKey)); - header.SetFieldValue(Models.Metadata.Header.HomepageKey, GetStringFieldValue(Models.Metadata.Header.HomepageKey)); - header.SetFieldValue(Models.Metadata.Header.IdKey, GetStringFieldValue(Models.Metadata.Header.IdKey)); - header.SetFieldValue(Models.Metadata.Header.InfosKey, GetFieldValue(Models.Metadata.Header.InfosKey)); // TODO: Perform a deep clone - header.SetFieldValue(Models.Metadata.Header.ImagesKey, GetFieldValue(Models.Metadata.Header.ImagesKey)); // TODO: Perform a deep clone - header.SetFieldValue(DatHeader.InputDepotKey, GetFieldValue(DatHeader.InputDepotKey)?.Clone() as DepotInformation); - header.SetFieldValue(DatHeader.OutputDepotKey, GetFieldValue(DatHeader.OutputDepotKey)?.Clone() as DepotInformation); - header.SetFieldValue(Models.Metadata.Header.LockBiosModeKey, GetBoolFieldValue(Models.Metadata.Header.LockBiosModeKey)); - header.SetFieldValue(Models.Metadata.Header.LockRomModeKey, GetBoolFieldValue(Models.Metadata.Header.LockRomModeKey)); - header.SetFieldValue(Models.Metadata.Header.LockSampleModeKey, GetBoolFieldValue(Models.Metadata.Header.LockSampleModeKey)); - header.SetFieldValue(Models.Metadata.Header.MameConfigKey, GetStringFieldValue(Models.Metadata.Header.MameConfigKey)); - header.SetFieldValue(Models.Metadata.Header.NameKey, GetStringFieldValue(Models.Metadata.Header.NameKey)); - header.SetFieldValue(DatHeader.PostfixKey, GetStringFieldValue(DatHeader.PostfixKey)); - header.SetFieldValue(DatHeader.PrefixKey, GetStringFieldValue(DatHeader.PrefixKey)); - header.SetFieldValue(DatHeader.QuotesKey, GetBoolFieldValue(DatHeader.QuotesKey)); - header.SetFieldValue(DatHeader.RemoveExtensionKey, GetBoolFieldValue(DatHeader.RemoveExtensionKey)); - header.SetFieldValue(DatHeader.ReplaceExtensionKey, GetStringFieldValue(DatHeader.ReplaceExtensionKey)); - header.SetFieldValue(Models.Metadata.Header.RomTitleKey, GetStringFieldValue(Models.Metadata.Header.RomTitleKey)); - header.SetFieldValue(Models.Metadata.Header.RomModeKey, GetStringFieldValue(Models.Metadata.Header.RomModeKey).AsEnumValue().AsStringValue()); - header.SetFieldValue(Models.Metadata.Header.RootDirKey, GetStringFieldValue(Models.Metadata.Header.RootDirKey)); - header.SetFieldValue(Models.Metadata.Header.SampleModeKey, GetStringFieldValue(Models.Metadata.Header.SampleModeKey).AsEnumValue().AsStringValue()); - header.SetFieldValue(Models.Metadata.Header.ScreenshotsHeightKey, GetStringFieldValue(Models.Metadata.Header.ScreenshotsHeightKey)); - header.SetFieldValue(Models.Metadata.Header.ScreenshotsWidthKey, GetStringFieldValue(Models.Metadata.Header.ScreenshotsWidthKey)); - header.SetFieldValue(Models.Metadata.Header.SearchKey, GetFieldValue(Models.Metadata.Header.SearchKey)); // TODO: Perform a deep clone - header.SetFieldValue(Models.Metadata.Header.SystemKey, GetStringFieldValue(Models.Metadata.Header.SystemKey)); - header.SetFieldValue(Models.Metadata.Header.TypeKey, GetStringFieldValue(Models.Metadata.Header.TypeKey)); - header.SetFieldValue(Models.Metadata.Header.UrlKey, GetStringFieldValue(Models.Metadata.Header.UrlKey)); - header.SetFieldValue(DatHeader.UseRomNameKey, GetBoolFieldValue(DatHeader.UseRomNameKey)); - header.SetFieldValue(Models.Metadata.Header.VersionKey, GetStringFieldValue(Models.Metadata.Header.VersionKey)); - - return header; - } + public object Clone() => new DatHeader(GetInternalClone()); /// /// Clone the standard parts of the current header