diff --git a/SabreTools.DatFiles/DatHeader.cs b/SabreTools.DatFiles/DatHeader.cs index f7e3bf13..5a8e427b 100644 --- a/SabreTools.DatFiles/DatHeader.cs +++ b/SabreTools.DatFiles/DatHeader.cs @@ -118,52 +118,6 @@ namespace SabreTools.DatFiles /// public object Clone() => new DatHeader(GetInternalClone()); - /// - /// Clone the standard parts of the current header - /// - public DatHeader CloneStandard() - { - var header = new DatHeader(); - header.SetFieldValue(Models.Metadata.Header.AuthorKey, - GetStringFieldValue(Models.Metadata.Header.AuthorKey)); - 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.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(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.NameKey, - GetStringFieldValue(Models.Metadata.Header.NameKey)); - header.SetFieldValue(Models.Metadata.Header.RootDirKey, - GetStringFieldValue(Models.Metadata.Header.RootDirKey)); - header.SetFieldValue(Models.Metadata.Header.TypeKey, - GetStringFieldValue(Models.Metadata.Header.TypeKey)); - header.SetFieldValue(Models.Metadata.Header.UrlKey, - GetStringFieldValue(Models.Metadata.Header.UrlKey)); - header.SetFieldValue(Models.Metadata.Header.VersionKey, - GetStringFieldValue(Models.Metadata.Header.VersionKey)); - - return header; - } - /// /// Clone just the format from the current header /// diff --git a/SabreTools.DatTools/Splitter.cs b/SabreTools.DatTools/Splitter.cs index 8c3c8fd1..e6204d41 100644 --- a/SabreTools.DatTools/Splitter.cs +++ b/SabreTools.DatTools/Splitter.cs @@ -54,12 +54,12 @@ namespace SabreTools.DatTools string newExtBString = string.Join(",", newExtB); // Set all of the appropriate outputs for each of the subsets - DatFile extADat = DatFileTool.CreateDatFile(datFile.Header.CloneStandard(), datFile.Modifiers); + DatFile extADat = DatFileTool.CreateDatFile((DatHeader)datFile.Header.Clone(), datFile.Modifiers); extADat.Header.SetFieldValue(DatHeader.FileNameKey, extADat.Header.GetStringFieldValue(DatHeader.FileNameKey) + $" ({newExtAString})"); extADat.Header.SetFieldValue(Models.Metadata.Header.NameKey, extADat.Header.GetStringFieldValue(Models.Metadata.Header.NameKey) + $" ({newExtAString})"); extADat.Header.SetFieldValue(Models.Metadata.Header.DescriptionKey, extADat.Header.GetStringFieldValue(Models.Metadata.Header.DescriptionKey) + $" ({newExtAString})"); - DatFile extBDat = DatFileTool.CreateDatFile(datFile.Header.CloneStandard(), datFile.Modifiers); + DatFile extBDat = DatFileTool.CreateDatFile((DatHeader)datFile.Header.Clone(), datFile.Modifiers); extBDat.Header.SetFieldValue(DatHeader.FileNameKey, extBDat.Header.GetStringFieldValue(DatHeader.FileNameKey) + $" ({newExtBString})"); extBDat.Header.SetFieldValue(Models.Metadata.Header.NameKey, extBDat.Header.GetStringFieldValue(Models.Metadata.Header.NameKey) + $" ({newExtBString})"); extBDat.Header.SetFieldValue(Models.Metadata.Header.DescriptionKey, extBDat.Header.GetStringFieldValue(Models.Metadata.Header.DescriptionKey) + $" ({newExtBString})"); @@ -131,12 +131,12 @@ namespace SabreTools.DatTools string newExtBString = string.Join(",", newExtB); // Set all of the appropriate outputs for each of the subsets - DatFile extADat = DatFileTool.CreateDatFile(datFile.Header.CloneStandard(), datFile.Modifiers); + DatFile extADat = DatFileTool.CreateDatFile((DatHeader)datFile.Header.Clone(), datFile.Modifiers); extADat.Header.SetFieldValue(DatHeader.FileNameKey, extADat.Header.GetStringFieldValue(DatHeader.FileNameKey) + $" ({newExtAString})"); extADat.Header.SetFieldValue(Models.Metadata.Header.NameKey, extADat.Header.GetStringFieldValue(Models.Metadata.Header.NameKey) + $" ({newExtAString})"); extADat.Header.SetFieldValue(Models.Metadata.Header.DescriptionKey, extADat.Header.GetStringFieldValue(Models.Metadata.Header.DescriptionKey) + $" ({newExtAString})"); - DatFile extBDat = DatFileTool.CreateDatFile(datFile.Header.CloneStandard(), datFile.Modifiers); + DatFile extBDat = DatFileTool.CreateDatFile((DatHeader)datFile.Header.Clone(), datFile.Modifiers); extBDat.Header.SetFieldValue(DatHeader.FileNameKey, extBDat.Header.GetStringFieldValue(DatHeader.FileNameKey) + $" ({newExtBString})"); extBDat.Header.SetFieldValue(Models.Metadata.Header.NameKey, extBDat.Header.GetStringFieldValue(Models.Metadata.Header.NameKey) + $" ({newExtBString})"); extBDat.Header.SetFieldValue(Models.Metadata.Header.DescriptionKey, extBDat.Header.GetStringFieldValue(Models.Metadata.Header.DescriptionKey) + $" ({newExtBString})"); @@ -232,7 +232,7 @@ namespace SabreTools.DatTools Dictionary fieldDats = []; foreach (var kvp in mappings) { - fieldDats[kvp.Key] = DatFileTool.CreateDatFile(datFile.Header.CloneStandard(), datFile.Modifiers); + fieldDats[kvp.Key] = DatFileTool.CreateDatFile((DatHeader)datFile.Header.Clone(), datFile.Modifiers); fieldDats[kvp.Key].Header.SetFieldValue(DatHeader.FileNameKey, fieldDats[kvp.Key].Header.GetStringFieldValue(DatHeader.FileNameKey) + kvp.Value); fieldDats[kvp.Key].Header.SetFieldValue(Models.Metadata.Header.NameKey, fieldDats[kvp.Key].Header.GetStringFieldValue(Models.Metadata.Header.NameKey) + kvp.Value); fieldDats[kvp.Key].Header.SetFieldValue(Models.Metadata.Header.DescriptionKey, fieldDats[kvp.Key].Header.GetStringFieldValue(Models.Metadata.Header.DescriptionKey) + kvp.Value); @@ -349,7 +349,7 @@ namespace SabreTools.DatTools Dictionary fieldDats = []; foreach (var kvp in mappings) { - fieldDats[kvp.Key] = DatFileTool.CreateDatFile(datFile.Header.CloneStandard(), datFile.Modifiers); + fieldDats[kvp.Key] = DatFileTool.CreateDatFile((DatHeader)datFile.Header.Clone(), datFile.Modifiers); fieldDats[kvp.Key].Header.SetFieldValue(DatHeader.FileNameKey, fieldDats[kvp.Key].Header.GetStringFieldValue(DatHeader.FileNameKey) + kvp.Value); fieldDats[kvp.Key].Header.SetFieldValue(Models.Metadata.Header.NameKey, fieldDats[kvp.Key].Header.GetStringFieldValue(Models.Metadata.Header.NameKey) + kvp.Value); fieldDats[kvp.Key].Header.SetFieldValue(Models.Metadata.Header.DescriptionKey, fieldDats[kvp.Key].Header.GetStringFieldValue(Models.Metadata.Header.DescriptionKey) + kvp.Value); @@ -615,12 +615,12 @@ namespace SabreTools.DatTools // Create each of the respective output DATs InternalStopwatch watch = new($"Splitting DAT by size"); - DatFile lessThan = DatFileTool.CreateDatFile(datFile.Header.CloneStandard(), datFile.Modifiers); + DatFile lessThan = DatFileTool.CreateDatFile((DatHeader)datFile.Header.Clone(), datFile.Modifiers); lessThan.Header.SetFieldValue(DatHeader.FileNameKey, lessThan.Header.GetStringFieldValue(DatHeader.FileNameKey) + $" (less than {radix})"); lessThan.Header.SetFieldValue(Models.Metadata.Header.NameKey, lessThan.Header.GetStringFieldValue(Models.Metadata.Header.NameKey) + $" (less than {radix})"); lessThan.Header.SetFieldValue(Models.Metadata.Header.DescriptionKey, lessThan.Header.GetStringFieldValue(Models.Metadata.Header.DescriptionKey) + $" (less than {radix})"); - DatFile greaterThan = DatFileTool.CreateDatFile(datFile.Header.CloneStandard(), datFile.Modifiers); + DatFile greaterThan = DatFileTool.CreateDatFile((DatHeader)datFile.Header.Clone(), datFile.Modifiers); greaterThan.Header.SetFieldValue(DatHeader.FileNameKey, greaterThan.Header.GetStringFieldValue(DatHeader.FileNameKey) + $" (equal-greater than {radix})"); greaterThan.Header.SetFieldValue(Models.Metadata.Header.NameKey, greaterThan.Header.GetStringFieldValue(Models.Metadata.Header.NameKey) + $" (equal-greater than {radix})"); greaterThan.Header.SetFieldValue(Models.Metadata.Header.DescriptionKey, greaterThan.Header.GetStringFieldValue(Models.Metadata.Header.DescriptionKey) + $" (equal-greater than {radix})"); @@ -681,12 +681,12 @@ namespace SabreTools.DatTools // Create each of the respective output DATs var watch = new InternalStopwatch($"Splitting DAT by size"); - DatFile lessThan = DatFileTool.CreateDatFile(datFile.Header.CloneStandard(), datFile.Modifiers); + DatFile lessThan = DatFileTool.CreateDatFile((DatHeader)datFile.Header.Clone(), datFile.Modifiers); lessThan.Header.SetFieldValue(DatHeader.FileNameKey, lessThan.Header.GetStringFieldValue(DatHeader.FileNameKey) + $" (less than {radix})"); lessThan.Header.SetFieldValue(Models.Metadata.Header.NameKey, lessThan.Header.GetStringFieldValue(Models.Metadata.Header.NameKey) + $" (less than {radix})"); lessThan.Header.SetFieldValue(Models.Metadata.Header.DescriptionKey, lessThan.Header.GetStringFieldValue(Models.Metadata.Header.DescriptionKey) + $" (less than {radix})"); - DatFile greaterThan = DatFileTool.CreateDatFile(datFile.Header.CloneStandard(), datFile.Modifiers); + DatFile greaterThan = DatFileTool.CreateDatFile((DatHeader)datFile.Header.Clone(), datFile.Modifiers); greaterThan.Header.SetFieldValue(DatHeader.FileNameKey, greaterThan.Header.GetStringFieldValue(DatHeader.FileNameKey) + $" (equal-greater than {radix})"); greaterThan.Header.SetFieldValue(Models.Metadata.Header.NameKey, greaterThan.Header.GetStringFieldValue(Models.Metadata.Header.NameKey) + $" (equal-greater than {radix})"); greaterThan.Header.SetFieldValue(Models.Metadata.Header.DescriptionKey, greaterThan.Header.GetStringFieldValue(Models.Metadata.Header.DescriptionKey) + $" (equal-greater than {radix})"); @@ -782,7 +782,7 @@ namespace SabreTools.DatTools // Initialize everything long currentSize = 0; long currentIndex = 0; - DatFile currentDat = DatFileTool.CreateDatFile(datFile.Header.CloneStandard(), datFile.Modifiers); + DatFile currentDat = DatFileTool.CreateDatFile((DatHeader)datFile.Header.Clone(), datFile.Modifiers); currentDat.Header.SetFieldValue(DatHeader.FileNameKey, currentDat.Header.GetStringFieldValue(DatHeader.FileNameKey) + $"_{currentIndex}"); currentDat.Header.SetFieldValue(Models.Metadata.Header.NameKey, currentDat.Header.GetStringFieldValue(Models.Metadata.Header.NameKey) + $"_{currentIndex}"); currentDat.Header.SetFieldValue(Models.Metadata.Header.DescriptionKey, currentDat.Header.GetStringFieldValue(Models.Metadata.Header.DescriptionKey) + $"_{currentIndex}"); @@ -825,7 +825,7 @@ namespace SabreTools.DatTools datFiles.Add(currentDat); currentSize = 0; currentIndex++; - currentDat = DatFileTool.CreateDatFile(datFile.Header.CloneStandard(), datFile.Modifiers); + currentDat = DatFileTool.CreateDatFile((DatHeader)datFile.Header.Clone(), datFile.Modifiers); currentDat.Header.SetFieldValue(DatHeader.FileNameKey, currentDat.Header.GetStringFieldValue(DatHeader.FileNameKey) + $"_{currentIndex}"); currentDat.Header.SetFieldValue(Models.Metadata.Header.NameKey, currentDat.Header.GetStringFieldValue(Models.Metadata.Header.NameKey) + $"_{currentIndex}"); currentDat.Header.SetFieldValue(Models.Metadata.Header.DescriptionKey, currentDat.Header.GetStringFieldValue(Models.Metadata.Header.DescriptionKey) + $"_{currentIndex}"); @@ -869,7 +869,7 @@ namespace SabreTools.DatTools // Setup all of the DatFiles foreach (ItemType itemType in outputTypes) { - typeDats[itemType] = DatFileTool.CreateDatFile(datFile.Header.CloneStandard(), datFile.Modifiers); + typeDats[itemType] = DatFileTool.CreateDatFile((DatHeader)datFile.Header.Clone(), datFile.Modifiers); typeDats[itemType].Header.SetFieldValue(DatHeader.FileNameKey, typeDats[itemType].Header.GetStringFieldValue(DatHeader.FileNameKey) + $" ({itemType})"); typeDats[itemType].Header.SetFieldValue(Models.Metadata.Header.NameKey, typeDats[itemType].Header.GetStringFieldValue(Models.Metadata.Header.NameKey) + $" ({itemType})"); typeDats[itemType].Header.SetFieldValue(Models.Metadata.Header.DescriptionKey, typeDats[itemType].Header.GetStringFieldValue(Models.Metadata.Header.DescriptionKey) + $" ({itemType})");