From b50f55af6b4d65941ca8fe128c414a85b1f80049 Mon Sep 17 00:00:00 2001 From: Matt Nadareski Date: Mon, 27 Jul 2020 10:26:08 -0700 Subject: [PATCH] Rename Header, remove redundant setters --- RombaSharp/RombaSharp.Help.cs | 10 +- SabreTools.Library/DatFiles/AttractMode.cs | 14 +- SabreTools.Library/DatFiles/ClrMamePro.cs | 154 +++---- SabreTools.Library/DatFiles/DatFile.cs | 425 ++++++++---------- SabreTools.Library/DatFiles/DosCenter.cs | 38 +- SabreTools.Library/DatFiles/EverdriveSmdb.cs | 12 +- SabreTools.Library/DatFiles/Filter.cs | 18 +- SabreTools.Library/DatFiles/Hashfile.cs | 24 +- SabreTools.Library/DatFiles/ItemDictionary.cs | 2 +- SabreTools.Library/DatFiles/Json.cs | 222 ++++----- SabreTools.Library/DatFiles/Listrom.cs | 20 +- SabreTools.Library/DatFiles/Listxml.cs | 100 ++--- SabreTools.Library/DatFiles/Logiqx.cs | 186 ++++---- SabreTools.Library/DatFiles/Missfile.cs | 12 +- SabreTools.Library/DatFiles/OfflineList.cs | 32 +- SabreTools.Library/DatFiles/OpenMSX.cs | 14 +- SabreTools.Library/DatFiles/RomCenter.cs | 60 +-- SabreTools.Library/DatFiles/SabreDat.cs | 146 +++--- SabreTools.Library/DatFiles/SeparatedValue.cs | 68 +-- SabreTools.Library/DatFiles/SoftwareList.cs | 98 ++-- SabreTools/SabreTools.Help.cs | 8 +- 21 files changed, 815 insertions(+), 848 deletions(-) diff --git a/RombaSharp/RombaSharp.Help.cs b/RombaSharp/RombaSharp.Help.cs index 280833e4..540b7800 100644 --- a/RombaSharp/RombaSharp.Help.cs +++ b/RombaSharp/RombaSharp.Help.cs @@ -807,8 +807,8 @@ in -old DAT file. Ignores those entries in -old that are not in -new."; // Create the encapsulating datfile DatFile datfile = DatFile.Create(); - datfile.SetName(name); - datfile.SetDescription(description); + datfile.Header.Name = name; + datfile.Header.Description = description; // Create the inputs List dats = new List { newdat }; @@ -859,8 +859,8 @@ in -old DAT file. Ignores those entries in -old that are not in -new."; // Create the encapsulating datfile DatFile datfile = DatFile.Create(); - datfile.SetName(string.IsNullOrWhiteSpace(name) ? "untitled" : name); - datfile.SetDescription(description); + datfile.Header.Name = string.IsNullOrWhiteSpace(name) ? "untitled" : name; + datfile.Header.Description = description; // Now run the D2D on the input and write out // TODO: All instances of Hash.DeepHashes should be made into 0x0 eventually @@ -1562,7 +1562,7 @@ contents of any changed dats."; // First get a list of SHA-1's from the input DATs DatFile datroot = DatFile.Create(); - datroot.SetType("SuperDAT"); + datroot.Header.Type = "SuperDAT"; // TODO: All instances of Hash.DeepHashes should be made into 0x0 eventually datroot.PopulateFromDir(_dats, Hash.DeepHashes, false, false, SkipFileType.None, false, false, _tmpdir, false, null, true, null); diff --git a/SabreTools.Library/DatFiles/AttractMode.cs b/SabreTools.Library/DatFiles/AttractMode.cs index 43ea96ff..e2ffaada 100644 --- a/SabreTools.Library/DatFiles/AttractMode.cs +++ b/SabreTools.Library/DatFiles/AttractMode.cs @@ -252,12 +252,12 @@ namespace SabreTools.Library.DatFiles string[] fields = new string[] { - datItem.GetField(Field.MachineName, DatHeader.ExcludeFields), - datItem.GetField(Field.Description, DatHeader.ExcludeFields), - DatHeader.FileName, - datItem.GetField(Field.CloneOf, DatHeader.ExcludeFields), - datItem.GetField(Field.Year, DatHeader.ExcludeFields), - datItem.GetField(Field.Manufacturer, DatHeader.ExcludeFields), + datItem.GetField(Field.MachineName, Header.ExcludeFields), + datItem.GetField(Field.Description, Header.ExcludeFields), + Header.FileName, + datItem.GetField(Field.CloneOf, Header.ExcludeFields), + datItem.GetField(Field.Year, Header.ExcludeFields), + datItem.GetField(Field.Manufacturer, Header.ExcludeFields), string.Empty, // datItem.GetField(Field.Category, DatHeader.ExcludeFields) string.Empty, // datItem.GetField(Field.Players, DatHeader.ExcludeFields) string.Empty, // datItem.GetField(Field.Rotation, DatHeader.ExcludeFields) @@ -267,7 +267,7 @@ namespace SabreTools.Library.DatFiles string.Empty, // datItem.GetField(Field.DisplayType, DatHeader.ExcludeFields) string.Empty, // datItem.GetField(Field.AltRomname, DatHeader.ExcludeFields) string.Empty, // datItem.GetField(Field.AltTitle, DatHeader.ExcludeFields) - datItem.GetField(Field.Comment, DatHeader.ExcludeFields), + datItem.GetField(Field.Comment, Header.ExcludeFields), string.Empty, // datItem.GetField(Field.Buttons, DatHeader.ExcludeFields) }; diff --git a/SabreTools.Library/DatFiles/ClrMamePro.cs b/SabreTools.Library/DatFiles/ClrMamePro.cs index 41824822..75dca067 100644 --- a/SabreTools.Library/DatFiles/ClrMamePro.cs +++ b/SabreTools.Library/DatFiles/ClrMamePro.cs @@ -119,63 +119,63 @@ namespace SabreTools.Library.DatFiles switch (itemKey) { case "name": - DatHeader.Name = (string.IsNullOrWhiteSpace(DatHeader.Name) ? itemVal : DatHeader.Name); + Header.Name = (string.IsNullOrWhiteSpace(Header.Name) ? itemVal : Header.Name); superdat = superdat || itemVal.Contains(" - SuperDAT"); if (keep && superdat) - DatHeader.Type = (string.IsNullOrWhiteSpace(DatHeader.Type) ? "SuperDAT" : DatHeader.Type); + Header.Type = (string.IsNullOrWhiteSpace(Header.Type) ? "SuperDAT" : Header.Type); break; case "description": - DatHeader.Description = (string.IsNullOrWhiteSpace(DatHeader.Description) ? itemVal : DatHeader.Description); + Header.Description = (string.IsNullOrWhiteSpace(Header.Description) ? itemVal : Header.Description); break; case "rootdir": - DatHeader.RootDir = (string.IsNullOrWhiteSpace(DatHeader.RootDir) ? itemVal : DatHeader.RootDir); + Header.RootDir = (string.IsNullOrWhiteSpace(Header.RootDir) ? itemVal : Header.RootDir); break; case "category": - DatHeader.Category = (string.IsNullOrWhiteSpace(DatHeader.Category) ? itemVal : DatHeader.Category); + Header.Category = (string.IsNullOrWhiteSpace(Header.Category) ? itemVal : Header.Category); break; case "version": - DatHeader.Version = (string.IsNullOrWhiteSpace(DatHeader.Version) ? itemVal : DatHeader.Version); + Header.Version = (string.IsNullOrWhiteSpace(Header.Version) ? itemVal : Header.Version); break; case "date": - DatHeader.Date = (string.IsNullOrWhiteSpace(DatHeader.Date) ? itemVal : DatHeader.Date); + Header.Date = (string.IsNullOrWhiteSpace(Header.Date) ? itemVal : Header.Date); break; case "author": - DatHeader.Author = (string.IsNullOrWhiteSpace(DatHeader.Author) ? itemVal : DatHeader.Author); + Header.Author = (string.IsNullOrWhiteSpace(Header.Author) ? itemVal : Header.Author); break; case "email": - DatHeader.Email = (string.IsNullOrWhiteSpace(DatHeader.Email) ? itemVal : DatHeader.Email); + Header.Email = (string.IsNullOrWhiteSpace(Header.Email) ? itemVal : Header.Email); break; case "homepage": - DatHeader.Homepage = (string.IsNullOrWhiteSpace(DatHeader.Homepage) ? itemVal : DatHeader.Homepage); + Header.Homepage = (string.IsNullOrWhiteSpace(Header.Homepage) ? itemVal : Header.Homepage); break; case "url": - DatHeader.Url = (string.IsNullOrWhiteSpace(DatHeader.Url) ? itemVal : DatHeader.Url); + Header.Url = (string.IsNullOrWhiteSpace(Header.Url) ? itemVal : Header.Url); break; case "comment": - DatHeader.Comment = (string.IsNullOrWhiteSpace(DatHeader.Comment) ? itemVal : DatHeader.Comment); + Header.Comment = (string.IsNullOrWhiteSpace(Header.Comment) ? itemVal : Header.Comment); break; case "header": - DatHeader.Header = (string.IsNullOrWhiteSpace(DatHeader.Header) ? itemVal : DatHeader.Header); + Header.Header = (string.IsNullOrWhiteSpace(Header.Header) ? itemVal : Header.Header); break; case "type": - DatHeader.Type = (string.IsNullOrWhiteSpace(DatHeader.Type) ? itemVal : DatHeader.Type); + Header.Type = (string.IsNullOrWhiteSpace(Header.Type) ? itemVal : Header.Type); superdat = superdat || itemVal.Contains("SuperDAT"); break; case "forcemerging": - if (DatHeader.ForceMerging == ForceMerging.None) - DatHeader.ForceMerging = itemVal.AsForceMerging(); + if (Header.ForceMerging == ForceMerging.None) + Header.ForceMerging = itemVal.AsForceMerging(); break; case "forcezipping": - if (DatHeader.ForcePacking == ForcePacking.None) - DatHeader.ForcePacking = itemVal.AsForcePacking(); + if (Header.ForcePacking == ForcePacking.None) + Header.ForcePacking = itemVal.AsForcePacking(); break; case "forcepacking": - if (DatHeader.ForcePacking == ForcePacking.None) - DatHeader.ForcePacking = itemVal.AsForcePacking(); + if (Header.ForcePacking == ForcePacking.None) + Header.ForcePacking = itemVal.AsForcePacking(); break; } @@ -547,24 +547,24 @@ namespace SabreTools.Library.DatFiles { cmpw.WriteStartElement("clrmamepro"); - cmpw.WriteStandalone("name", DatHeader.Name); - cmpw.WriteStandalone("description", DatHeader.Description); - if (!string.IsNullOrWhiteSpace(DatHeader.Category)) - cmpw.WriteStandalone("category", DatHeader.Category); - cmpw.WriteStandalone("version", DatHeader.Version); - if (!string.IsNullOrWhiteSpace(DatHeader.Date)) - cmpw.WriteStandalone("date", DatHeader.Date); - cmpw.WriteStandalone("author", DatHeader.Author); - if (!string.IsNullOrWhiteSpace(DatHeader.Email)) - cmpw.WriteStandalone("email", DatHeader.Email); - if (!string.IsNullOrWhiteSpace(DatHeader.Homepage)) - cmpw.WriteStandalone("homepage", DatHeader.Homepage); - if (!string.IsNullOrWhiteSpace(DatHeader.Url)) - cmpw.WriteStandalone("url", DatHeader.Url); - if (!string.IsNullOrWhiteSpace(DatHeader.Comment)) - cmpw.WriteStandalone("comment", DatHeader.Comment); + cmpw.WriteStandalone("name", Header.Name); + cmpw.WriteStandalone("description", Header.Description); + if (!string.IsNullOrWhiteSpace(Header.Category)) + cmpw.WriteStandalone("category", Header.Category); + cmpw.WriteStandalone("version", Header.Version); + if (!string.IsNullOrWhiteSpace(Header.Date)) + cmpw.WriteStandalone("date", Header.Date); + cmpw.WriteStandalone("author", Header.Author); + if (!string.IsNullOrWhiteSpace(Header.Email)) + cmpw.WriteStandalone("email", Header.Email); + if (!string.IsNullOrWhiteSpace(Header.Homepage)) + cmpw.WriteStandalone("homepage", Header.Homepage); + if (!string.IsNullOrWhiteSpace(Header.Url)) + cmpw.WriteStandalone("url", Header.Url); + if (!string.IsNullOrWhiteSpace(Header.Comment)) + cmpw.WriteStandalone("comment", Header.Comment); - switch (DatHeader.ForcePacking) + switch (Header.ForcePacking) { case ForcePacking.Unzip: cmpw.WriteStandalone("forcezipping", "no", false); @@ -574,7 +574,7 @@ namespace SabreTools.Library.DatFiles break; } - switch (DatHeader.ForceMerging) + switch (Header.ForceMerging) { case ForceMerging.Full: cmpw.WriteStandalone("forcemerging", "full", false); @@ -619,22 +619,22 @@ namespace SabreTools.Library.DatFiles // Build the state based on excluded fields cmpw.WriteStartElement(datItem.MachineType == MachineType.Bios ? "resource" : "game"); - cmpw.WriteStandalone("name", datItem.GetField(Field.MachineName, DatHeader.ExcludeFields)); - if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.RomOf, DatHeader.ExcludeFields))) + cmpw.WriteStandalone("name", datItem.GetField(Field.MachineName, Header.ExcludeFields)); + if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.RomOf, Header.ExcludeFields))) cmpw.WriteStandalone("romof", datItem.RomOf); - if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.CloneOf, DatHeader.ExcludeFields))) + if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.CloneOf, Header.ExcludeFields))) cmpw.WriteStandalone("cloneof", datItem.CloneOf); - if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.SampleOf, DatHeader.ExcludeFields))) + if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.SampleOf, Header.ExcludeFields))) cmpw.WriteStandalone("sampleof", datItem.SampleOf); - if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.Description, DatHeader.ExcludeFields))) + if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.Description, Header.ExcludeFields))) cmpw.WriteStandalone("description", datItem.MachineDescription); - else if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.Description, DatHeader.ExcludeFields))) + else if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.Description, Header.ExcludeFields))) cmpw.WriteStandalone("description", datItem.MachineName); - if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.Year, DatHeader.ExcludeFields))) + if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.Year, Header.ExcludeFields))) cmpw.WriteStandalone("year", datItem.Year); - if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.Manufacturer, DatHeader.ExcludeFields))) + if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.Manufacturer, Header.ExcludeFields))) cmpw.WriteStandalone("manufacturer", datItem.Manufacturer); - if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.Category, DatHeader.ExcludeFields))) + if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.Category, Header.ExcludeFields))) cmpw.WriteStandalone("category", datItem.Category); cmpw.Flush(); @@ -659,7 +659,7 @@ namespace SabreTools.Library.DatFiles try { // Build the state based on excluded fields - if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.SampleOf, DatHeader.ExcludeFields))) + if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.SampleOf, Header.ExcludeFields))) cmpw.WriteStandalone("sampleof", datItem.SampleOf); // End game @@ -700,17 +700,17 @@ namespace SabreTools.Library.DatFiles { case ItemType.Archive: cmpw.WriteStartElement("archive"); - cmpw.WriteAttributeString("name", datItem.GetField(Field.Name, DatHeader.ExcludeFields)); + cmpw.WriteAttributeString("name", datItem.GetField(Field.Name, Header.ExcludeFields)); cmpw.WriteEndElement(); break; case ItemType.BiosSet: var biosSet = datItem as BiosSet; cmpw.WriteStartElement("biosset"); - cmpw.WriteAttributeString("name", biosSet.GetField(Field.Name, DatHeader.ExcludeFields)); - if (!string.IsNullOrWhiteSpace(biosSet.GetField(Field.BiosDescription, DatHeader.ExcludeFields))) + cmpw.WriteAttributeString("name", biosSet.GetField(Field.Name, Header.ExcludeFields)); + if (!string.IsNullOrWhiteSpace(biosSet.GetField(Field.BiosDescription, Header.ExcludeFields))) cmpw.WriteAttributeString("description", biosSet.Description); - if (!DatHeader.ExcludeFields[(int)Field.Default] && biosSet.Default != null) + if (!Header.ExcludeFields[(int)Field.Default] && biosSet.Default != null) cmpw.WriteAttributeString("default", biosSet.Default.ToString().ToLowerInvariant()); cmpw.WriteEndElement(); break; @@ -718,22 +718,22 @@ namespace SabreTools.Library.DatFiles case ItemType.Disk: var disk = datItem as Disk; cmpw.WriteStartElement("disk"); - cmpw.WriteAttributeString("name", disk.GetField(Field.Name, DatHeader.ExcludeFields)); - if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.MD5, DatHeader.ExcludeFields))) + cmpw.WriteAttributeString("name", disk.GetField(Field.Name, Header.ExcludeFields)); + if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.MD5, Header.ExcludeFields))) cmpw.WriteAttributeString("md5", disk.MD5.ToLowerInvariant()); #if NET_FRAMEWORK - if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.RIPEMD160, DatHeader.ExcludeFields))) + if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.RIPEMD160, Header.ExcludeFields))) cmpw.WriteAttributeString("ripemd160", disk.RIPEMD160.ToLowerInvariant()); #endif - if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.SHA1, DatHeader.ExcludeFields))) + if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.SHA1, Header.ExcludeFields))) cmpw.WriteAttributeString("sha1", disk.SHA1.ToLowerInvariant()); - if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.SHA256, DatHeader.ExcludeFields))) + if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.SHA256, Header.ExcludeFields))) cmpw.WriteAttributeString("sha256", disk.SHA256.ToLowerInvariant()); - if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.SHA384, DatHeader.ExcludeFields))) + if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.SHA384, Header.ExcludeFields))) cmpw.WriteAttributeString("sha384", disk.SHA384.ToLowerInvariant()); - if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.SHA512, DatHeader.ExcludeFields))) + if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.SHA512, Header.ExcludeFields))) cmpw.WriteAttributeString("sha512", disk.SHA512.ToLowerInvariant()); - if (!DatHeader.ExcludeFields[(int)Field.Status] && disk.ItemStatus != ItemStatus.None) + if (!Header.ExcludeFields[(int)Field.Status] && disk.ItemStatus != ItemStatus.None) cmpw.WriteAttributeString("flags", disk.ItemStatus.ToString().ToLowerInvariant()); cmpw.WriteEndElement(); break; @@ -741,14 +741,14 @@ namespace SabreTools.Library.DatFiles case ItemType.Release: var release = datItem as Release; cmpw.WriteStartElement("release"); - cmpw.WriteAttributeString("name", release.GetField(Field.Name, DatHeader.ExcludeFields)); - if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.Region, DatHeader.ExcludeFields))) + cmpw.WriteAttributeString("name", release.GetField(Field.Name, Header.ExcludeFields)); + if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.Region, Header.ExcludeFields))) cmpw.WriteAttributeString("region", release.Region); - if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.Language, DatHeader.ExcludeFields))) + if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.Language, Header.ExcludeFields))) cmpw.WriteAttributeString("language", release.Language); - if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.Date, DatHeader.ExcludeFields))) + if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.Date, Header.ExcludeFields))) cmpw.WriteAttributeString("date", release.Date); - if (!DatHeader.ExcludeFields[(int)Field.Default] && release.Default != null) + if (!Header.ExcludeFields[(int)Field.Default] && release.Default != null) cmpw.WriteAttributeString("default", release.Default.ToString().ToLowerInvariant()); cmpw.WriteEndElement(); break; @@ -756,35 +756,35 @@ namespace SabreTools.Library.DatFiles case ItemType.Rom: var rom = datItem as Rom; cmpw.WriteStartElement("rom"); - cmpw.WriteAttributeString("name", rom.GetField(Field.Name, DatHeader.ExcludeFields)); - if (!DatHeader.ExcludeFields[(int)Field.Size] && rom.Size != -1) + cmpw.WriteAttributeString("name", rom.GetField(Field.Name, Header.ExcludeFields)); + if (!Header.ExcludeFields[(int)Field.Size] && rom.Size != -1) cmpw.WriteAttributeString("size", rom.Size.ToString()); - if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.CRC, DatHeader.ExcludeFields))) + if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.CRC, Header.ExcludeFields))) cmpw.WriteAttributeString("crc", rom.CRC.ToLowerInvariant()); - if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.MD5, DatHeader.ExcludeFields))) + if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.MD5, Header.ExcludeFields))) cmpw.WriteAttributeString("md5", rom.MD5.ToLowerInvariant()); #if NET_FRAMEWORK - if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.RIPEMD160, DatHeader.ExcludeFields))) + if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.RIPEMD160, Header.ExcludeFields))) cmpw.WriteAttributeString("ripemd160", rom.RIPEMD160.ToLowerInvariant()); #endif - if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.SHA1, DatHeader.ExcludeFields))) + if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.SHA1, Header.ExcludeFields))) cmpw.WriteAttributeString("sha1", rom.SHA1.ToLowerInvariant()); - if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.SHA256, DatHeader.ExcludeFields))) + if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.SHA256, Header.ExcludeFields))) cmpw.WriteAttributeString("sha256", rom.SHA256.ToLowerInvariant()); - if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.SHA384, DatHeader.ExcludeFields))) + if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.SHA384, Header.ExcludeFields))) cmpw.WriteAttributeString("sha384", rom.SHA384.ToLowerInvariant()); - if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.SHA512, DatHeader.ExcludeFields))) + if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.SHA512, Header.ExcludeFields))) cmpw.WriteAttributeString("sha512", rom.SHA512.ToLowerInvariant()); - if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.Date, DatHeader.ExcludeFields))) + if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.Date, Header.ExcludeFields))) cmpw.WriteAttributeString("date", rom.Date); - if (!DatHeader.ExcludeFields[(int)Field.Status] && rom.ItemStatus != ItemStatus.None) + if (!Header.ExcludeFields[(int)Field.Status] && rom.ItemStatus != ItemStatus.None) cmpw.WriteAttributeString("flags", rom.ItemStatus.ToString().ToLowerInvariant()); cmpw.WriteEndElement(); break; case ItemType.Sample: cmpw.WriteStartElement("sample"); - cmpw.WriteAttributeString("name", datItem.GetField(Field.Name, DatHeader.ExcludeFields)); + cmpw.WriteAttributeString("name", datItem.GetField(Field.Name, Header.ExcludeFields)); cmpw.WriteEndElement(); break; } diff --git a/SabreTools.Library/DatFiles/DatFile.cs b/SabreTools.Library/DatFiles/DatFile.cs index 9da845f8..8835479f 100644 --- a/SabreTools.Library/DatFiles/DatFile.cs +++ b/SabreTools.Library/DatFiles/DatFile.cs @@ -22,53 +22,20 @@ namespace SabreTools.Library.DatFiles { #region Publically available fields - // Internal DatHeader values - public DatHeader DatHeader { get; set; } = new DatHeader(); + /// + /// Header values + /// + public DatHeader Header { get; set; } = new DatHeader(); - // DatItems dictionary + /// + /// DatItems and related statistics + /// public ItemDictionary Items { get; set; } = new ItemDictionary(); #endregion #region Instance Methods - #region Accessors - - /// - /// Set the Date header value - /// - /// - public void SetDate(string date) - { - DatHeader.Date = date; - } - - /// - /// Set the Description header value - /// - public void SetDescription(string description) - { - DatHeader.Description = description; - } - - /// - /// Set the Name header value - /// - public void SetName(string name) - { - DatHeader.Name = name; - } - - /// - /// Set the Type header value - /// - public void SetType(string type) - { - DatHeader.Type = type; - } - - #endregion - #region Constructors /// @@ -79,7 +46,7 @@ namespace SabreTools.Library.DatFiles { if (datFile != null) { - DatHeader = datFile.DatHeader; + Header = datFile.Header; this.Items = datFile.Items; } } @@ -185,7 +152,7 @@ namespace SabreTools.Library.DatFiles public static DatFile Create(DatHeader datHeader) { DatFile datFile = Create(datHeader.DatFormat); - datFile.DatHeader = (DatHeader)datHeader.Clone(); + datFile.Header = (DatHeader)datHeader.Clone(); return datFile; } @@ -218,7 +185,7 @@ namespace SabreTools.Library.DatFiles /// DatHeader to get the values from public void ApplyDatHeader(DatHeader datHeader) { - DatHeader.ConditionalCopy(datHeader); + Header.ConditionalCopy(datHeader); } #endregion @@ -328,7 +295,7 @@ namespace SabreTools.Library.DatFiles { var input = inputs[i]; Globals.Logger.User($"Adding DAT: {input.CurrentPath}"); - datFiles[i] = Create(DatHeader.CloneFiltering()); + datFiles[i] = Create(Header.CloneFiltering()); datFiles[i].Parse(input, i, keep: true); }); @@ -345,7 +312,7 @@ namespace SabreTools.Library.DatFiles watch.Stop(); - return datFiles.Select(d => d.DatHeader).ToList(); + return datFiles.Select(d => d.Header).ToList(); } /// @@ -428,7 +395,7 @@ namespace SabreTools.Library.DatFiles Globals.Logger.User($"Replacing items in '{path.CurrentPath}' from the base DAT"); // First we parse in the DAT internally - DatFile intDat = Create(DatHeader.CloneFiltering()); + DatFile intDat = Create(Header.CloneFiltering()); intDat.Parse(path, 1, keep: true); filter.FilterDatFile(intDat, false /* useTags */); @@ -917,10 +884,10 @@ namespace SabreTools.Library.DatFiles } else { - diffData = Create(DatHeader); - diffData.DatHeader.FileName += innerpost; - diffData.DatHeader.Name += innerpost; - diffData.DatHeader.Description += innerpost; + diffData = Create(Header); + diffData.Header.FileName += innerpost; + diffData.Header.Name += innerpost; + diffData.Header.Description += innerpost; } diffData.Items = new ItemDictionary(); @@ -989,23 +956,23 @@ namespace SabreTools.Library.DatFiles DatFile dupeData = Create(); // Fill in any information not in the base DAT - if (string.IsNullOrWhiteSpace(DatHeader.FileName)) - DatHeader.FileName = "All DATs"; + if (string.IsNullOrWhiteSpace(Header.FileName)) + Header.FileName = "All DATs"; - if (string.IsNullOrWhiteSpace(DatHeader.Name)) - DatHeader.Name = "All DATs"; + if (string.IsNullOrWhiteSpace(Header.Name)) + Header.Name = "All DATs"; - if (string.IsNullOrWhiteSpace(DatHeader.Description)) - DatHeader.Description = "All DATs"; + if (string.IsNullOrWhiteSpace(Header.Description)) + Header.Description = "All DATs"; // Don't have External dupes if (diff.HasFlag(UpdateMode.DiffNoDupesOnly)) { post = " (No Duplicates)"; - outerDiffData = Create(DatHeader); - outerDiffData.DatHeader.FileName += post; - outerDiffData.DatHeader.Name += post; - outerDiffData.DatHeader.Description += post; + outerDiffData = Create(Header); + outerDiffData.Header.FileName += post; + outerDiffData.Header.Name += post; + outerDiffData.Header.Description += post; outerDiffData.Items = new ItemDictionary(); } @@ -1013,10 +980,10 @@ namespace SabreTools.Library.DatFiles if (diff.HasFlag(UpdateMode.DiffDupesOnly)) { post = " (Duplicates)"; - dupeData = Create(DatHeader); - dupeData.DatHeader.FileName += post; - dupeData.DatHeader.Name += post; - dupeData.DatHeader.Description += post; + dupeData = Create(Header); + dupeData.Header.FileName += post; + dupeData.Header.Name += post; + dupeData.Header.Description += post; dupeData.Items = new ItemDictionary(); } @@ -1031,10 +998,10 @@ namespace SabreTools.Library.DatFiles Parallel.For(0, inputs.Count, Globals.ParallelOptions, j => { string innerpost = $" ({j} - {inputs[j].GetNormalizedFileName(true)} Only)"; - DatFile diffData = Create(DatHeader); - diffData.DatHeader.FileName += innerpost; - diffData.DatHeader.Name += innerpost; - diffData.DatHeader.Description += innerpost; + DatFile diffData = Create(Header); + diffData.Header.FileName += innerpost; + diffData.Header.Name += innerpost; + diffData.Header.Description += innerpost; diffData.Items = new ItemDictionary(); outDatsArray[j] = diffData; }); @@ -1128,7 +1095,7 @@ namespace SabreTools.Library.DatFiles private void MergeNoDiff(List inputs, string outDir) { // If we're in SuperDAT mode, prefix all games with their respective DATs - if (DatHeader.Type == "SuperDAT") + if (Header.Type == "SuperDAT") { Parallel.ForEach(Items.Keys, Globals.ParallelOptions, key => { @@ -1170,12 +1137,12 @@ namespace SabreTools.Library.DatFiles // Iterate over the files foreach (ParentablePath file in inputFileNames) { - DatFile innerDatdata = Create(DatHeader); + DatFile innerDatdata = Create(Header); Globals.Logger.User($"Processing '{Path.GetFileName(file.CurrentPath)}'"); innerDatdata.Parse(file, keep: true, - keepext: innerDatdata.DatHeader.DatFormat.HasFlag(DatFormat.TSV) - || innerDatdata.DatHeader.DatFormat.HasFlag(DatFormat.CSV) - || innerDatdata.DatHeader.DatFormat.HasFlag(DatFormat.SSV)); + keepext: innerDatdata.Header.DatFormat.HasFlag(DatFormat.TSV) + || innerDatdata.Header.DatFormat.HasFlag(DatFormat.CSV) + || innerDatdata.Header.DatFormat.HasFlag(DatFormat.SSV)); filter.FilterDatFile(innerDatdata, false /* useTags */); // Get the correct output path @@ -1218,10 +1185,10 @@ namespace SabreTools.Library.DatFiles return; // If the output filename isn't set already, get the internal filename - DatHeader.FileName = (string.IsNullOrWhiteSpace(DatHeader.FileName) ? (keepext ? Path.GetFileName(currentPath) : Path.GetFileNameWithoutExtension(currentPath)) : DatHeader.FileName); + Header.FileName = (string.IsNullOrWhiteSpace(Header.FileName) ? (keepext ? Path.GetFileName(currentPath) : Path.GetFileNameWithoutExtension(currentPath)) : Header.FileName); // If the output type isn't set already, get the internal output type - DatHeader.DatFormat = (DatHeader.DatFormat == 0 ? currentPath.GetDatFormat() : DatHeader.DatFormat); + Header.DatFormat = (Header.DatFormat == 0 ? currentPath.GetDatFormat() : Header.DatFormat); Items.SetBucketedBy(BucketedBy.CRC); // Setting this because it can reduce issues later // Now parse the correct type of DAT @@ -1247,7 +1214,7 @@ namespace SabreTools.Library.DatFiles // If there's no name in the rom, we log and skip it if (item.Name == null) { - Globals.Logger.Warning($"{DatHeader.FileName}: Rom with no name found! Skipping..."); + Globals.Logger.Warning($"{Header.FileName}: Rom with no name found! Skipping..."); return key; } @@ -1269,7 +1236,7 @@ namespace SabreTools.Library.DatFiles && string.IsNullOrWhiteSpace(itemRom.SHA512)) { // No-op, just catch it so it doesn't go further - Globals.Logger.Verbose($"{DatHeader.FileName}: Entry with only SHA-1 found - '{itemRom.Name}'"); + Globals.Logger.Verbose($"{Header.FileName}: Entry with only SHA-1 found - '{itemRom.Name}'"); } // If we have a rom and it's missing size AND the hashes match a 0-byte file, fill in the rest of the info @@ -1303,7 +1270,7 @@ namespace SabreTools.Library.DatFiles // If the file has no size and it's not the above case, skip and log else if (itemRom.ItemStatus != ItemStatus.Nodump && (itemRom.Size == 0 || itemRom.Size == -1)) { - Globals.Logger.Verbose($"{DatHeader.FileName}: Incomplete entry for '{itemRom.Name}' will be output as nodump"); + Globals.Logger.Verbose($"{Header.FileName}: Incomplete entry for '{itemRom.Name}' will be output as nodump"); itemRom.ItemStatus = ItemStatus.Nodump; } // If the file has a size but aboslutely no hashes, skip and log @@ -1319,7 +1286,7 @@ namespace SabreTools.Library.DatFiles && string.IsNullOrWhiteSpace(itemRom.SHA384) && string.IsNullOrWhiteSpace(itemRom.SHA512)) { - Globals.Logger.Verbose($"{DatHeader.FileName}: Incomplete entry for '{itemRom.Name}' will be output as nodump"); + Globals.Logger.Verbose($"{Header.FileName}: Incomplete entry for '{itemRom.Name}' will be output as nodump"); itemRom.ItemStatus = ItemStatus.Nodump; } @@ -1387,23 +1354,23 @@ namespace SabreTools.Library.DatFiles bool addBlanks, bool addDate, string tempDir, bool copyFiles, string headerToCheckAgainst, bool chdsAsFiles, Filter filter, bool useTags = false) { // If the description is defined but not the name, set the name from the description - if (string.IsNullOrWhiteSpace(DatHeader.Name) && !string.IsNullOrWhiteSpace(DatHeader.Description)) + if (string.IsNullOrWhiteSpace(Header.Name) && !string.IsNullOrWhiteSpace(Header.Description)) { - DatHeader.Name = DatHeader.Description; + Header.Name = Header.Description; } // If the name is defined but not the description, set the description from the name - else if (!string.IsNullOrWhiteSpace(DatHeader.Name) && string.IsNullOrWhiteSpace(DatHeader.Description)) + else if (!string.IsNullOrWhiteSpace(Header.Name) && string.IsNullOrWhiteSpace(Header.Description)) { - DatHeader.Description = DatHeader.Name + (bare ? string.Empty : $" ({DatHeader.Date})"); + Header.Description = Header.Name + (bare ? string.Empty : $" ({Header.Date})"); } // If neither the name or description are defined, set them from the automatic values - else if (string.IsNullOrWhiteSpace(DatHeader.Name) && string.IsNullOrWhiteSpace(DatHeader.Description)) + else if (string.IsNullOrWhiteSpace(Header.Name) && string.IsNullOrWhiteSpace(Header.Description)) { string[] splitpath = basePath.TrimEnd(Path.DirectorySeparatorChar).Split(Path.DirectorySeparatorChar); - DatHeader.Name = splitpath.Last(); - DatHeader.Description = DatHeader.Name + (bare ? string.Empty : $" ({DatHeader.Date})"); + Header.Name = splitpath.Last(); + Header.Description = Header.Name + (bare ? string.Empty : $" ({Header.Date})"); } // Clean the temp directory path @@ -1423,7 +1390,7 @@ namespace SabreTools.Library.DatFiles }); // Now find all folders that are empty, if we are supposed to - if (!DatHeader.Romba && addBlanks) + if (!Header.Romba && addBlanks) { List empties = DirectoryExtensions.ListEmpty(basePath); Parallel.ForEach(empties, Globals.ParallelOptions, dir => @@ -1436,7 +1403,7 @@ namespace SabreTools.Library.DatFiles string romname = string.Empty; // If we have a SuperDAT, we want anything that's not the base path as the game, and the file as the rom - if (DatHeader.Type == "SuperDAT") + if (Header.Type == "SuperDAT") { gamename = fulldir.Remove(0, basePath.Length + 1); romname = "_"; @@ -1494,7 +1461,7 @@ namespace SabreTools.Library.DatFiles SkipFileType skipFileType, bool addBlanks, bool addDate, string tempDir, bool copyFiles, string headerToCheckAgainst, bool chdsAsFiles) { // Special case for if we are in Romba mode (all names are supposed to be SHA-1 hashes) - if (DatHeader.Romba) + if (Header.Romba) { GZipArchive gzarc = new GZipArchive(item); BaseFile baseFile = gzarc.GetTorrentGZFileInfo(); @@ -1658,7 +1625,7 @@ namespace SabreTools.Library.DatFiles if (string.IsNullOrWhiteSpace(parent)) { // If we have a SuperDAT, we want anything that's not the base path as the game, and the file as the rom - if (DatHeader.Type == "SuperDAT") + if (Header.Type == "SuperDAT") { gamename = Path.GetDirectoryName(item.Remove(0, basepath.Length)); romname = Path.GetFileName(item); @@ -1676,7 +1643,7 @@ namespace SabreTools.Library.DatFiles else { // If we have a SuperDAT, we want the archive name as the game, and the file as everything else (?) - if (DatHeader.Type == "SuperDAT") + if (Header.Type == "SuperDAT") { gamename = parent; romname = datItem.Name; @@ -1749,9 +1716,9 @@ namespace SabreTools.Library.DatFiles outDir = DirectoryExtensions.Ensure(outDir, create: true); // Now we want to get forcepack flag if it's not overridden - if (outputFormat == OutputFormat.Folder && DatHeader.ForcePacking != ForcePacking.None) + if (outputFormat == OutputFormat.Folder && Header.ForcePacking != ForcePacking.None) { - switch (DatHeader.ForcePacking) + switch (Header.ForcePacking) { case ForcePacking.Zip: outputFormat = OutputFormat.TorrentZip; @@ -1880,9 +1847,9 @@ namespace SabreTools.Library.DatFiles // If we're updating the DAT, output to the rebuild directory if (updateDat) { - DatHeader.FileName = $"fixDAT_{DatHeader.FileName}"; - DatHeader.Name = $"fixDAT_{DatHeader.Name}"; - DatHeader.Description = $"fixDAT_{DatHeader.Description}"; + Header.FileName = $"fixDAT_{Header.FileName}"; + Header.Name = $"fixDAT_{Header.Name}"; + Header.Description = $"fixDAT_{Header.Description}"; Items.ClearMarked(); Write(outDir); } @@ -1933,9 +1900,9 @@ namespace SabreTools.Library.DatFiles } // Now we want to get forcepack flag if it's not overridden - if (outputFormat == OutputFormat.Folder && DatHeader.ForcePacking != ForcePacking.None) + if (outputFormat == OutputFormat.Folder && Header.ForcePacking != ForcePacking.None) { - switch (DatHeader.ForcePacking) + switch (Header.ForcePacking) { case ForcePacking.Zip: outputFormat = OutputFormat.TorrentZip; @@ -2017,9 +1984,9 @@ namespace SabreTools.Library.DatFiles // If we're updating the DAT, output to the rebuild directory if (updateDat) { - DatHeader.FileName = $"fixDAT_{DatHeader.FileName}"; - DatHeader.Name = $"fixDAT_{DatHeader.Name}"; - DatHeader.Description = $"fixDAT_{DatHeader.Description}"; + Header.FileName = $"fixDAT_{Header.FileName}"; + Header.Name = $"fixDAT_{Header.Name}"; + Header.Description = $"fixDAT_{Header.Description}"; Items.ClearMarked(); Write(outDir); } @@ -2442,9 +2409,9 @@ namespace SabreTools.Library.DatFiles watch.Stop(); // If there are any entries in the DAT, output to the rebuild directory - DatHeader.FileName = $"fixDAT_{DatHeader.FileName}"; - DatHeader.Name = $"fixDAT_{DatHeader.Name}"; - DatHeader.Description = $"fixDAT_{DatHeader.Description}"; + Header.FileName = $"fixDAT_{Header.FileName}"; + Header.Name = $"fixDAT_{Header.Name}"; + Header.Description = $"fixDAT_{Header.Description}"; Items.ClearMarked(); Write(); @@ -2476,12 +2443,12 @@ namespace SabreTools.Library.DatFiles } // Setup the fixdat - DatFile matched = Create(DatHeader); + DatFile matched = Create(Header); matched.Items = new ItemDictionary(); - matched.DatHeader.FileName = $"fixDat_{matched.DatHeader.FileName}"; - matched.DatHeader.Name = $"fixDat_{matched.DatHeader.Name}"; - matched.DatHeader.Description = $"fixDat_{matched.DatHeader.Description}"; - matched.DatHeader.DatFormat = DatFormat.Logiqx; + matched.Header.FileName = $"fixDat_{matched.Header.FileName}"; + matched.Header.Name = $"fixDat_{matched.Header.Name}"; + matched.Header.Description = $"fixDat_{matched.Header.Description}"; + matched.Header.DatFormat = DatFormat.Logiqx; // If we are checking hashes only, essentially diff the inputs if (hashOnly) @@ -2578,10 +2545,10 @@ namespace SabreTools.Library.DatFiles SplitByType(outDir); // Now re-empty the DAT to make room for the next one - DatFormat tempFormat = DatHeader.DatFormat; - DatHeader = new DatHeader(); + DatFormat tempFormat = Header.DatFormat; + Header = new DatHeader(); Items = new ItemDictionary(); - DatHeader.DatFormat = tempFormat; + Header.DatFormat = tempFormat; } } @@ -2606,15 +2573,15 @@ namespace SabreTools.Library.DatFiles string newExtBString = string.Join(",", newExtB); // Set all of the appropriate outputs for each of the subsets - DatFile datdataA = Create(DatHeader.CloneStandard()); - datdataA.DatHeader.FileName += $" ({newExtAString})"; - datdataA.DatHeader.Name += $" ({newExtAString})"; - datdataA.DatHeader.Description += $" ({newExtAString})"; + DatFile datdataA = Create(Header.CloneStandard()); + datdataA.Header.FileName += $" ({newExtAString})"; + datdataA.Header.Name += $" ({newExtAString})"; + datdataA.Header.Description += $" ({newExtAString})"; - DatFile datdataB = Create(DatHeader.CloneStandard()); - datdataB.DatHeader.FileName += $" ({newExtBString})"; - datdataB.DatHeader.Name += $" ({newExtBString})"; - datdataB.DatHeader.Description += $" ({newExtBString})"; + DatFile datdataB = Create(Header.CloneStandard()); + datdataB.Header.FileName += $" ({newExtBString})"; + datdataB.Header.Name += $" ({newExtBString})"; + datdataB.Header.Description += $" ({newExtBString})"; // Now separate the roms accordingly Parallel.ForEach(Items.Keys, Globals.ParallelOptions, key => @@ -2655,52 +2622,52 @@ namespace SabreTools.Library.DatFiles // Create each of the respective output DATs Globals.Logger.User("Creating and populating new DATs"); - DatFile nodump = Create(DatHeader.CloneStandard()); - nodump.DatHeader.FileName += " (Nodump)"; - nodump.DatHeader.Name += " (Nodump)"; - nodump.DatHeader.Description += " (Nodump)"; + DatFile nodump = Create(Header.CloneStandard()); + nodump.Header.FileName += " (Nodump)"; + nodump.Header.Name += " (Nodump)"; + nodump.Header.Description += " (Nodump)"; - DatFile sha512 = Create(DatHeader.CloneStandard()); - sha512.DatHeader.FileName += " (SHA-512)"; - sha512.DatHeader.Name += " (SHA-512)"; - sha512.DatHeader.Description += " (SHA-512)"; + DatFile sha512 = Create(Header.CloneStandard()); + sha512.Header.FileName += " (SHA-512)"; + sha512.Header.Name += " (SHA-512)"; + sha512.Header.Description += " (SHA-512)"; - DatFile sha384 = Create(DatHeader.CloneStandard()); - sha384.DatHeader.FileName += " (SHA-384)"; - sha384.DatHeader.Name += " (SHA-384)"; - sha384.DatHeader.Description += " (SHA-384)"; + DatFile sha384 = Create(Header.CloneStandard()); + sha384.Header.FileName += " (SHA-384)"; + sha384.Header.Name += " (SHA-384)"; + sha384.Header.Description += " (SHA-384)"; - DatFile sha256 = Create(DatHeader.CloneStandard()); - sha256.DatHeader.FileName += " (SHA-256)"; - sha256.DatHeader.Name += " (SHA-256)"; - sha256.DatHeader.Description += " (SHA-256)"; + DatFile sha256 = Create(Header.CloneStandard()); + sha256.Header.FileName += " (SHA-256)"; + sha256.Header.Name += " (SHA-256)"; + sha256.Header.Description += " (SHA-256)"; - DatFile sha1 = Create(DatHeader.CloneStandard()); - sha1.DatHeader.FileName += " (SHA-1)"; - sha1.DatHeader.Name += " (SHA-1)"; - sha1.DatHeader.Description += " (SHA-1)"; + DatFile sha1 = Create(Header.CloneStandard()); + sha1.Header.FileName += " (SHA-1)"; + sha1.Header.Name += " (SHA-1)"; + sha1.Header.Description += " (SHA-1)"; #if NET_FRAMEWORK - DatFile ripemd160 = Create(DatHeader.CloneStandard()); - ripemd160.DatHeader.FileName += " (RIPEMD160)"; - ripemd160.DatHeader.Name += " (RIPEMD160)"; - ripemd160.DatHeader.Description += " (RIPEMD160)"; + DatFile ripemd160 = Create(Header.CloneStandard()); + ripemd160.Header.FileName += " (RIPEMD160)"; + ripemd160.Header.Name += " (RIPEMD160)"; + ripemd160.Header.Description += " (RIPEMD160)"; #endif - DatFile md5 = Create(DatHeader.CloneStandard()); - md5.DatHeader.FileName += " (MD5)"; - md5.DatHeader.Name += " (MD5)"; - md5.DatHeader.Description += " (MD5)"; + DatFile md5 = Create(Header.CloneStandard()); + md5.Header.FileName += " (MD5)"; + md5.Header.Name += " (MD5)"; + md5.Header.Description += " (MD5)"; - DatFile crc = Create(DatHeader.CloneStandard()); - crc.DatHeader.FileName += " (CRC)"; - crc.DatHeader.Name += " (CRC)"; - crc.DatHeader.Description += " (CRC)"; + DatFile crc = Create(Header.CloneStandard()); + crc.Header.FileName += " (CRC)"; + crc.Header.Name += " (CRC)"; + crc.Header.Description += " (CRC)"; - DatFile other = Create(DatHeader.CloneStandard()); - other.DatHeader.FileName += " (Other)"; - other.DatHeader.Name += " (Other)"; - other.DatHeader.Description += " (Other)"; + DatFile other = Create(Header.CloneStandard()); + other.Header.FileName += " (Other)"; + other.Header.Name += " (Other)"; + other.Header.Description += " (Other)"; // Now populate each of the DAT objects in turn Parallel.ForEach(Items.Keys, Globals.ParallelOptions, key => @@ -2798,8 +2765,8 @@ namespace SabreTools.Library.DatFiles Items.BucketBy(BucketedBy.Game, DedupeType.None, lower: false, norename: true); // Create a temporary DAT to add things to - DatFile tempDat = Create(DatHeader); - tempDat.DatHeader.Name = null; + DatFile tempDat = Create(Header); + tempDat.Header.Name = null; // Sort the input keys List keys = Items.Keys.ToList(); @@ -2809,11 +2776,11 @@ namespace SabreTools.Library.DatFiles Parallel.ForEach(keys, Globals.ParallelOptions, key => { // Here, the key is the name of the game to be used for comparison - if (tempDat.DatHeader.Name != null && tempDat.DatHeader.Name != Path.GetDirectoryName(key)) + if (tempDat.Header.Name != null && tempDat.Header.Name != Path.GetDirectoryName(key)) { // Reset the DAT for the next items - tempDat = Create(DatHeader); - tempDat.DatHeader.Name = null; + tempDat = Create(Header); + tempDat.Header.Name = null; } // Clean the input list and set all games to be pathless @@ -2825,7 +2792,7 @@ namespace SabreTools.Library.DatFiles tempDat.Items.AddRange(key, items); // Then set the DAT name to be the parent directory name - tempDat.DatHeader.Name = Path.GetDirectoryName(key); + tempDat.Header.Name = Path.GetDirectoryName(key); }); return true; @@ -2859,21 +2826,21 @@ namespace SabreTools.Library.DatFiles private void SplitByLevelHelper(DatFile datFile, string outDir, bool shortname, bool restore) { // Get the name from the DAT to use separately - string name = datFile.DatHeader.Name; + string name = datFile.Header.Name; string expName = name.Replace("/", " - ").Replace("\\", " - "); // Now set the new output values - datFile.DatHeader.FileName = WebUtility.HtmlDecode(string.IsNullOrWhiteSpace(name) - ? DatHeader.FileName + datFile.Header.FileName = WebUtility.HtmlDecode(string.IsNullOrWhiteSpace(name) + ? Header.FileName : (shortname ? Path.GetFileName(name) : expName ) ); - datFile.DatHeader.FileName = (restore ? $"{DatHeader.FileName} ({datFile.DatHeader.FileName})" : datFile.DatHeader.FileName); - datFile.DatHeader.Name = $"{DatHeader.Name} ({expName})"; - datFile.DatHeader.Description = (string.IsNullOrWhiteSpace(DatHeader.Description) ? datFile.DatHeader.Name : $"{DatHeader.Description} ({expName})"); - datFile.DatHeader.Type = null; + datFile.Header.FileName = (restore ? $"{Header.FileName} ({datFile.Header.FileName})" : datFile.Header.FileName); + datFile.Header.Name = $"{Header.Name} ({expName})"; + datFile.Header.Description = (string.IsNullOrWhiteSpace(Header.Description) ? datFile.Header.Name : $"{Header.Description} ({expName})"); + datFile.Header.Type = null; // Write out the temporary DAT to the proper directory datFile.Write(outDir); @@ -2890,15 +2857,15 @@ namespace SabreTools.Library.DatFiles // Create each of the respective output DATs Globals.Logger.User("Creating and populating new DATs"); - DatFile lessDat = Create(DatHeader.CloneStandard()); - lessDat.DatHeader.FileName += $" (less than {radix})"; - lessDat.DatHeader.Name += $" (less than {radix})"; - lessDat.DatHeader.Description += $" (less than {radix})"; + DatFile lessDat = Create(Header.CloneStandard()); + lessDat.Header.FileName += $" (less than {radix})"; + lessDat.Header.Name += $" (less than {radix})"; + lessDat.Header.Description += $" (less than {radix})"; - DatFile greaterEqualDat = Create(DatHeader.CloneStandard()); - greaterEqualDat.DatHeader.FileName += $" (equal-greater than {radix})"; - greaterEqualDat.DatHeader.Name += $" (equal-greater than {radix})"; - greaterEqualDat.DatHeader.Description += $" (equal-greater than {radix})"; + DatFile greaterEqualDat = Create(Header.CloneStandard()); + greaterEqualDat.Header.FileName += $" (equal-greater than {radix})"; + greaterEqualDat.Header.Name += $" (equal-greater than {radix})"; + greaterEqualDat.Header.Description += $" (equal-greater than {radix})"; // Now populate each of the DAT objects in turn Parallel.ForEach(Items.Keys, Globals.ParallelOptions, key => @@ -2939,20 +2906,20 @@ namespace SabreTools.Library.DatFiles // Create each of the respective output DATs Globals.Logger.User("Creating and populating new DATs"); - DatFile romdat = Create(DatHeader.CloneStandard()); - romdat.DatHeader.FileName += " (ROM)"; - romdat.DatHeader.Name += " (ROM)"; - romdat.DatHeader.Description += " (ROM)"; + DatFile romdat = Create(Header.CloneStandard()); + romdat.Header.FileName += " (ROM)"; + romdat.Header.Name += " (ROM)"; + romdat.Header.Description += " (ROM)"; - DatFile diskdat = Create(DatHeader.CloneStandard()); - diskdat.DatHeader.FileName += " (Disk)"; - diskdat.DatHeader.Name += " (Disk)"; - diskdat.DatHeader.Description += " (Disk)"; + DatFile diskdat = Create(Header.CloneStandard()); + diskdat.Header.FileName += " (Disk)"; + diskdat.Header.Name += " (Disk)"; + diskdat.Header.Description += " (Disk)"; - DatFile sampledat = Create(DatHeader.CloneStandard()); - sampledat.DatHeader.FileName += " (Sample)"; - sampledat.DatHeader.Name += " (Sample)"; - sampledat.DatHeader.Description += " (Sample)"; + DatFile sampledat = Create(Header.CloneStandard()); + sampledat.Header.FileName += " (Sample)"; + sampledat.Header.Name += " (Sample)"; + sampledat.Header.Description += " (Sample)"; // Now populate each of the DAT objects in turn Parallel.ForEach(Items.Keys, Globals.ParallelOptions, key => @@ -3010,42 +2977,42 @@ namespace SabreTools.Library.DatFiles outDir = DirectoryExtensions.Ensure(outDir, create: true); // If the DAT has no output format, default to XML - if (DatHeader.DatFormat == 0) + if (Header.DatFormat == 0) { Globals.Logger.Verbose("No DAT format defined, defaulting to XML"); - DatHeader.DatFormat = DatFormat.Logiqx; + Header.DatFormat = DatFormat.Logiqx; } // Make sure that the three essential fields are filled in - if (string.IsNullOrWhiteSpace(DatHeader.FileName) && string.IsNullOrWhiteSpace(DatHeader.Name) && string.IsNullOrWhiteSpace(DatHeader.Description)) + if (string.IsNullOrWhiteSpace(Header.FileName) && string.IsNullOrWhiteSpace(Header.Name) && string.IsNullOrWhiteSpace(Header.Description)) { - DatHeader.FileName = DatHeader.Name = DatHeader.Description = "Default"; + Header.FileName = Header.Name = Header.Description = "Default"; } - else if (string.IsNullOrWhiteSpace(DatHeader.FileName) && string.IsNullOrWhiteSpace(DatHeader.Name) && !string.IsNullOrWhiteSpace(DatHeader.Description)) + else if (string.IsNullOrWhiteSpace(Header.FileName) && string.IsNullOrWhiteSpace(Header.Name) && !string.IsNullOrWhiteSpace(Header.Description)) { - DatHeader.FileName = DatHeader.Name = DatHeader.Description; + Header.FileName = Header.Name = Header.Description; } - else if (string.IsNullOrWhiteSpace(DatHeader.FileName) && !string.IsNullOrWhiteSpace(DatHeader.Name) && string.IsNullOrWhiteSpace(DatHeader.Description)) + else if (string.IsNullOrWhiteSpace(Header.FileName) && !string.IsNullOrWhiteSpace(Header.Name) && string.IsNullOrWhiteSpace(Header.Description)) { - DatHeader.FileName = DatHeader.Description = DatHeader.Name; + Header.FileName = Header.Description = Header.Name; } - else if (string.IsNullOrWhiteSpace(DatHeader.FileName) && !string.IsNullOrWhiteSpace(DatHeader.Name) && !string.IsNullOrWhiteSpace(DatHeader.Description)) + else if (string.IsNullOrWhiteSpace(Header.FileName) && !string.IsNullOrWhiteSpace(Header.Name) && !string.IsNullOrWhiteSpace(Header.Description)) { - DatHeader.FileName = DatHeader.Description; + Header.FileName = Header.Description; } - else if (!string.IsNullOrWhiteSpace(DatHeader.FileName) && string.IsNullOrWhiteSpace(DatHeader.Name) && string.IsNullOrWhiteSpace(DatHeader.Description)) + else if (!string.IsNullOrWhiteSpace(Header.FileName) && string.IsNullOrWhiteSpace(Header.Name) && string.IsNullOrWhiteSpace(Header.Description)) { - DatHeader.Name = DatHeader.Description = DatHeader.FileName; + Header.Name = Header.Description = Header.FileName; } - else if (!string.IsNullOrWhiteSpace(DatHeader.FileName) && string.IsNullOrWhiteSpace(DatHeader.Name) && !string.IsNullOrWhiteSpace(DatHeader.Description)) + else if (!string.IsNullOrWhiteSpace(Header.FileName) && string.IsNullOrWhiteSpace(Header.Name) && !string.IsNullOrWhiteSpace(Header.Description)) { - DatHeader.Name = DatHeader.Description; + Header.Name = Header.Description; } - else if (!string.IsNullOrWhiteSpace(DatHeader.FileName) && !string.IsNullOrWhiteSpace(DatHeader.Name) && string.IsNullOrWhiteSpace(DatHeader.Description)) + else if (!string.IsNullOrWhiteSpace(Header.FileName) && !string.IsNullOrWhiteSpace(Header.Name) && string.IsNullOrWhiteSpace(Header.Description)) { - DatHeader.Description = DatHeader.Name; + Header.Description = Header.Name; } - else if (!string.IsNullOrWhiteSpace(DatHeader.FileName) && !string.IsNullOrWhiteSpace(DatHeader.Name) && !string.IsNullOrWhiteSpace(DatHeader.Description)) + else if (!string.IsNullOrWhiteSpace(Header.FileName) && !string.IsNullOrWhiteSpace(Header.Name) && !string.IsNullOrWhiteSpace(Header.Description)) { // Nothing is needed } @@ -3059,23 +3026,23 @@ namespace SabreTools.Library.DatFiles Items.BucketBy(BucketedBy.Game, DedupeType.None, norename: true); var consoleOutput = BaseReport.Create(StatReportFormat.None, null, true, true); - consoleOutput.ReplaceStatistics(DatHeader.FileName, Items.Keys.Count(), Items); + consoleOutput.ReplaceStatistics(Header.FileName, Items.Keys.Count(), Items); } // Bucket and dedupe according to the flag - if (DatHeader.DedupeRoms == DedupeType.Full) - Items.BucketBy(BucketedBy.CRC, DatHeader.DedupeRoms, norename: norename); - else if (DatHeader.DedupeRoms == DedupeType.Game) - Items.BucketBy(BucketedBy.Game, DatHeader.DedupeRoms, norename: norename); + if (Header.DedupeRoms == DedupeType.Full) + Items.BucketBy(BucketedBy.CRC, Header.DedupeRoms, norename: norename); + else if (Header.DedupeRoms == DedupeType.Game) + Items.BucketBy(BucketedBy.Game, Header.DedupeRoms, norename: norename); // Bucket roms by game name, if not already Items.BucketBy(BucketedBy.Game, DedupeType.None, norename: norename); // Output the number of items we're going to be writing - Globals.Logger.User($"A total of {Items.TotalCount} items will be written out to '{DatHeader.FileName}'"); + Globals.Logger.User($"A total of {Items.TotalCount} items will be written out to '{Header.FileName}'"); // Get the outfile names - Dictionary outfiles = DatHeader.CreateOutFileNames(outDir, overwrite); + Dictionary outfiles = Header.CreateOutFileNames(outDir, overwrite); try { @@ -3122,20 +3089,20 @@ namespace SabreTools.Library.DatFiles string name = item.Name; // Backup relevant values and set new ones accordingly - bool quotesBackup = DatHeader.Quotes; - bool useRomNameBackup = DatHeader.UseRomName; + bool quotesBackup = Header.Quotes; + bool useRomNameBackup = Header.UseRomName; if (forceRemoveQuotes) - DatHeader.Quotes = false; + Header.Quotes = false; if (forceRomName) - DatHeader.UseRomName = true; + Header.UseRomName = true; // Create the proper Prefix and Postfix string pre = CreatePrefixPostfix(item, true); string post = CreatePrefixPostfix(item, false); // If we're in Romba mode, take care of that instead - if (DatHeader.Romba) + if (Header.Romba) { if (item.ItemType == ItemType.Rom) { @@ -3163,20 +3130,20 @@ namespace SabreTools.Library.DatFiles return; } - if (!string.IsNullOrWhiteSpace(DatHeader.ReplaceExtension) || DatHeader.RemoveExtension) + if (!string.IsNullOrWhiteSpace(Header.ReplaceExtension) || Header.RemoveExtension) { - if (DatHeader.RemoveExtension) - DatHeader.ReplaceExtension = string.Empty; + if (Header.RemoveExtension) + Header.ReplaceExtension = string.Empty; string dir = Path.GetDirectoryName(name); dir = dir.TrimStart(Path.DirectorySeparatorChar); - name = Path.Combine(dir, Path.GetFileNameWithoutExtension(name) + DatHeader.ReplaceExtension); + name = Path.Combine(dir, Path.GetFileNameWithoutExtension(name) + Header.ReplaceExtension); } - if (!string.IsNullOrWhiteSpace(DatHeader.AddExtension)) - name += DatHeader.AddExtension; + if (!string.IsNullOrWhiteSpace(Header.AddExtension)) + name += Header.AddExtension; - if (DatHeader.UseRomName && DatHeader.GameName) + if (Header.UseRomName && Header.GameName) name = Path.Combine(item.MachineName, name); // Now assign back the item name @@ -3184,10 +3151,10 @@ namespace SabreTools.Library.DatFiles // Restore all relevant values if (forceRemoveQuotes) - DatHeader.Quotes = quotesBackup; + Header.Quotes = quotesBackup; if (forceRomName) - DatHeader.UseRomName = useRomNameBackup; + Header.UseRomName = useRomNameBackup; } /// @@ -3216,11 +3183,11 @@ namespace SabreTools.Library.DatFiles // If we have a prefix if (prefix) - fix = DatHeader.Prefix + (DatHeader.Quotes ? "\"" : string.Empty); + fix = Header.Prefix + (Header.Quotes ? "\"" : string.Empty); // If we have a postfix else - fix = (DatHeader.Quotes ? "\"" : string.Empty) + DatHeader.Postfix; + fix = (Header.Quotes ? "\"" : string.Empty) + Header.Postfix; // Ensure we have the proper values for replacement if (item.ItemType == ItemType.Rom) diff --git a/SabreTools.Library/DatFiles/DosCenter.cs b/SabreTools.Library/DatFiles/DosCenter.cs index 39c0441e..f672d11d 100644 --- a/SabreTools.Library/DatFiles/DosCenter.cs +++ b/SabreTools.Library/DatFiles/DosCenter.cs @@ -111,25 +111,25 @@ namespace SabreTools.Library.DatFiles switch (itemKey) { case "name": - DatHeader.Name = (string.IsNullOrWhiteSpace(DatHeader.Name) ? itemVal : DatHeader.Name); + Header.Name = (string.IsNullOrWhiteSpace(Header.Name) ? itemVal : Header.Name); break; case "description": - DatHeader.Description = (string.IsNullOrWhiteSpace(DatHeader.Description) ? itemVal : DatHeader.Description); + Header.Description = (string.IsNullOrWhiteSpace(Header.Description) ? itemVal : Header.Description); break; case "dersion": - DatHeader.Version = (string.IsNullOrWhiteSpace(DatHeader.Version) ? itemVal : DatHeader.Version); + Header.Version = (string.IsNullOrWhiteSpace(Header.Version) ? itemVal : Header.Version); break; case "date": - DatHeader.Date = (string.IsNullOrWhiteSpace(DatHeader.Date) ? itemVal : DatHeader.Date); + Header.Date = (string.IsNullOrWhiteSpace(Header.Date) ? itemVal : Header.Date); break; case "author": - DatHeader.Author = (string.IsNullOrWhiteSpace(DatHeader.Author) ? itemVal : DatHeader.Author); + Header.Author = (string.IsNullOrWhiteSpace(Header.Author) ? itemVal : Header.Author); break; case "homepage": - DatHeader.Homepage = (string.IsNullOrWhiteSpace(DatHeader.Homepage) ? itemVal : DatHeader.Homepage); + Header.Homepage = (string.IsNullOrWhiteSpace(Header.Homepage) ? itemVal : Header.Homepage); break; case "comment": - DatHeader.Comment = (string.IsNullOrWhiteSpace(DatHeader.Comment) ? itemVal : DatHeader.Comment); + Header.Comment = (string.IsNullOrWhiteSpace(Header.Comment) ? itemVal : Header.Comment); break; } } @@ -373,13 +373,13 @@ namespace SabreTools.Library.DatFiles try { cmpw.WriteStartElement("DOSCenter"); - cmpw.WriteStandalone("Name:", DatHeader.Name, false); - cmpw.WriteStandalone("Description:", DatHeader.Description, false); - cmpw.WriteStandalone("Version:", DatHeader.Version, false); - cmpw.WriteStandalone("Date:", DatHeader.Date, false); - cmpw.WriteStandalone("Author:", DatHeader.Author, false); - cmpw.WriteStandalone("Homepage:", DatHeader.Homepage, false); - cmpw.WriteStandalone("Comment:", DatHeader.Comment, false); + cmpw.WriteStandalone("Name:", Header.Name, false); + cmpw.WriteStandalone("Description:", Header.Description, false); + cmpw.WriteStandalone("Version:", Header.Version, false); + cmpw.WriteStandalone("Date:", Header.Date, false); + cmpw.WriteStandalone("Author:", Header.Author, false); + cmpw.WriteStandalone("Homepage:", Header.Homepage, false); + cmpw.WriteStandalone("Comment:", Header.Comment, false); cmpw.WriteEndElement(); cmpw.Flush(); @@ -408,7 +408,7 @@ namespace SabreTools.Library.DatFiles // Build the state based on excluded fields cmpw.WriteStartElement("game"); - cmpw.WriteStandalone("name", $"{datItem.GetField(Field.MachineName, DatHeader.ExcludeFields)}.zip", true); + cmpw.WriteStandalone("name", $"{datItem.GetField(Field.MachineName, Header.ExcludeFields)}.zip", true); cmpw.Flush(); } @@ -468,12 +468,12 @@ namespace SabreTools.Library.DatFiles case ItemType.Rom: var rom = datItem as Rom; cmpw.WriteStartElement("file"); - cmpw.WriteAttributeString("name", datItem.GetField(Field.Name, DatHeader.ExcludeFields)); - if (!DatHeader.ExcludeFields[(int)Field.Size] && rom.Size != -1) + cmpw.WriteAttributeString("name", datItem.GetField(Field.Name, Header.ExcludeFields)); + if (!Header.ExcludeFields[(int)Field.Size] && rom.Size != -1) cmpw.WriteAttributeString("size", rom.Size.ToString()); - if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.Date, DatHeader.ExcludeFields))) + if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.Date, Header.ExcludeFields))) cmpw.WriteAttributeString("date", rom.Date); - if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.CRC, DatHeader.ExcludeFields))) + if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.CRC, Header.ExcludeFields))) cmpw.WriteAttributeString("crc", rom.CRC.ToLowerInvariant()); cmpw.WriteEndElement(); break; diff --git a/SabreTools.Library/DatFiles/EverdriveSmdb.cs b/SabreTools.Library/DatFiles/EverdriveSmdb.cs index a91ae4af..3bf5a904 100644 --- a/SabreTools.Library/DatFiles/EverdriveSmdb.cs +++ b/SabreTools.Library/DatFiles/EverdriveSmdb.cs @@ -185,12 +185,12 @@ namespace SabreTools.Library.DatFiles string[] fields = new string[] { - rom.GetField(Field.SHA256, DatHeader.ExcludeFields), - $"{rom.GetField(Field.MachineName, DatHeader.ExcludeFields)}/", - rom.GetField(Field.Name, DatHeader.ExcludeFields), - rom.GetField(Field.SHA1, DatHeader.ExcludeFields), - rom.GetField(Field.MD5, DatHeader.ExcludeFields), - rom.GetField(Field.CRC, DatHeader.ExcludeFields), + rom.GetField(Field.SHA256, Header.ExcludeFields), + $"{rom.GetField(Field.MachineName, Header.ExcludeFields)}/", + rom.GetField(Field.Name, Header.ExcludeFields), + rom.GetField(Field.SHA1, Header.ExcludeFields), + rom.GetField(Field.MD5, Header.ExcludeFields), + rom.GetField(Field.CRC, Header.ExcludeFields), }; svw.WriteValues(fields); diff --git a/SabreTools.Library/DatFiles/Filter.cs b/SabreTools.Library/DatFiles/Filter.cs index b4c88e2d..b53b97f5 100644 --- a/SabreTools.Library/DatFiles/Filter.cs +++ b/SabreTools.Library/DatFiles/Filter.cs @@ -795,13 +795,13 @@ namespace SabreTools.Library.DatFiles // If we are using tags from the DAT, set the proper input for split type unless overridden if (useTags && this.InternalSplit == SplitType.None) - this.InternalSplit = datFile.DatHeader.ForceMerging.AsSplitType(); + this.InternalSplit = datFile.Header.ForceMerging.AsSplitType(); // Run internal splitting ProcessSplitType(datFile, this.InternalSplit); // We remove any blanks, if we aren't supposed to have any - if (!datFile.DatHeader.KeepEmptyGames) + if (!datFile.Header.KeepEmptyGames) { foreach (string key in datFile.Items.Keys) { @@ -869,11 +869,11 @@ namespace SabreTools.Library.DatFiles } // If we are removing scene dates, do that now - if (datFile.DatHeader.SceneDateStrip) + if (datFile.Header.SceneDateStrip) StripSceneDatesFromItems(datFile); // Run the one rom per game logic, if required - if (datFile.DatHeader.OneRom) + if (datFile.Header.OneRom) OneRomPerGame(datFile); } catch (Exception ex) @@ -893,7 +893,7 @@ namespace SabreTools.Library.DatFiles /// True if the DatFile was filtered, false on error public DatFile FilterTo(DatFile datFile, bool useTags) { - DatFile outDat = DatFile.Create(datFile.DatHeader); + DatFile outDat = DatFile.Create(datFile.Header); try { @@ -903,13 +903,13 @@ namespace SabreTools.Library.DatFiles // If we are using tags from the DAT, set the proper input for split type unless overridden if (useTags && this.InternalSplit == SplitType.None) - this.InternalSplit = outDat.DatHeader.ForceMerging.AsSplitType(); + this.InternalSplit = outDat.Header.ForceMerging.AsSplitType(); // Run internal splitting ProcessSplitType(outDat, this.InternalSplit); // We remove any blanks, if we aren't supposed to have any - if (!outDat.DatHeader.KeepEmptyGames) + if (!outDat.Header.KeepEmptyGames) { foreach (string key in outDat.Items.Keys) { @@ -979,11 +979,11 @@ namespace SabreTools.Library.DatFiles } // If we are removing scene dates, do that now - if (outDat.DatHeader.SceneDateStrip) + if (outDat.Header.SceneDateStrip) StripSceneDatesFromItems(outDat); // Run the one rom per game logic, if required - if (outDat.DatHeader.OneRom) + if (outDat.Header.OneRom) OneRomPerGame(outDat); } catch (Exception ex) diff --git a/SabreTools.Library/DatFiles/Hashfile.cs b/SabreTools.Library/DatFiles/Hashfile.cs index 01402e16..978be69a 100644 --- a/SabreTools.Library/DatFiles/Hashfile.cs +++ b/SabreTools.Library/DatFiles/Hashfile.cs @@ -195,10 +195,10 @@ namespace SabreTools.Library.DatFiles case ItemType.Rom: var rom = datItem as Rom; fields[0] = string.Empty; - if (DatHeader.GameName) - fields[0] = $"{rom.GetField(Field.MachineName, DatHeader.ExcludeFields)}{Path.DirectorySeparatorChar}"; - fields[0] += rom.GetField(Field.Name, DatHeader.ExcludeFields); - fields[1] = rom.GetField(Field.CRC, DatHeader.ExcludeFields); + if (Header.GameName) + fields[0] = $"{rom.GetField(Field.MachineName, Header.ExcludeFields)}{Path.DirectorySeparatorChar}"; + fields[0] += rom.GetField(Field.Name, Header.ExcludeFields); + fields[1] = rom.GetField(Field.CRC, Header.ExcludeFields); break; } break; @@ -217,20 +217,20 @@ namespace SabreTools.Library.DatFiles { case ItemType.Disk: var disk = datItem as Disk; - fields[0] = disk.GetField(hashField, DatHeader.ExcludeFields); + fields[0] = disk.GetField(hashField, Header.ExcludeFields); fields[1] = string.Empty; - if (DatHeader.GameName) - fields[1] = $"{disk.GetField(Field.MachineName, DatHeader.ExcludeFields)}{Path.DirectorySeparatorChar}"; - fields[1] += disk.GetField(Field.Name, DatHeader.ExcludeFields); + if (Header.GameName) + fields[1] = $"{disk.GetField(Field.MachineName, Header.ExcludeFields)}{Path.DirectorySeparatorChar}"; + fields[1] += disk.GetField(Field.Name, Header.ExcludeFields); break; case ItemType.Rom: var rom = datItem as Rom; - fields[0] = rom.GetField(hashField, DatHeader.ExcludeFields); + fields[0] = rom.GetField(hashField, Header.ExcludeFields); fields[1] = string.Empty; - if (DatHeader.GameName) - fields[1] = $"{rom.GetField(Field.MachineName, DatHeader.ExcludeFields)}{Path.DirectorySeparatorChar}"; - fields[1] += rom.GetField(Field.Name, DatHeader.ExcludeFields); + if (Header.GameName) + fields[1] = $"{rom.GetField(Field.MachineName, Header.ExcludeFields)}{Path.DirectorySeparatorChar}"; + fields[1] += rom.GetField(Field.Name, Header.ExcludeFields); break; } break; diff --git a/SabreTools.Library/DatFiles/ItemDictionary.cs b/SabreTools.Library/DatFiles/ItemDictionary.cs index 1be4dfe5..73df01e3 100644 --- a/SabreTools.Library/DatFiles/ItemDictionary.cs +++ b/SabreTools.Library/DatFiles/ItemDictionary.cs @@ -1012,7 +1012,7 @@ namespace SabreTools.Library.DatFiles Globals.Logger.User($"Adding stats for file '{file}'\n", false); if (single) { - reports.ForEach(report => report.ReplaceStatistics(datdata.DatHeader.FileName, datdata.Items.Keys.Count, datdata.Items)); + reports.ForEach(report => report.ReplaceStatistics(datdata.Header.FileName, datdata.Items.Keys.Count, datdata.Items)); reports.ForEach(report => report.Write()); } diff --git a/SabreTools.Library/DatFiles/Json.cs b/SabreTools.Library/DatFiles/Json.cs index ee111021..a5ff7162 100644 --- a/SabreTools.Library/DatFiles/Json.cs +++ b/SabreTools.Library/DatFiles/Json.cs @@ -122,91 +122,91 @@ namespace SabreTools.Library.DatFiles { case "name": content = jtr.ReadAsString(); - DatHeader.Name = (string.IsNullOrWhiteSpace(DatHeader.Name) ? content : DatHeader.Name); + Header.Name = (string.IsNullOrWhiteSpace(Header.Name) ? content : Header.Name); superdat = superdat || content.Contains(" - SuperDAT"); if (keep && superdat) { - DatHeader.Type = (string.IsNullOrWhiteSpace(DatHeader.Type) ? "SuperDAT" : DatHeader.Type); + Header.Type = (string.IsNullOrWhiteSpace(Header.Type) ? "SuperDAT" : Header.Type); } break; case "description": content = jtr.ReadAsString(); - DatHeader.Description = (string.IsNullOrWhiteSpace(DatHeader.Description) ? content : DatHeader.Description); + Header.Description = (string.IsNullOrWhiteSpace(Header.Description) ? content : Header.Description); break; case "rootdir": // This is exclusive to TruRip XML content = jtr.ReadAsString(); - DatHeader.RootDir = (string.IsNullOrWhiteSpace(DatHeader.RootDir) ? content : DatHeader.RootDir); + Header.RootDir = (string.IsNullOrWhiteSpace(Header.RootDir) ? content : Header.RootDir); break; case "category": content = jtr.ReadAsString(); - DatHeader.Category = (string.IsNullOrWhiteSpace(DatHeader.Category) ? content : DatHeader.Category); + Header.Category = (string.IsNullOrWhiteSpace(Header.Category) ? content : Header.Category); break; case "version": content = jtr.ReadAsString(); - DatHeader.Version = (string.IsNullOrWhiteSpace(DatHeader.Version) ? content : DatHeader.Version); + Header.Version = (string.IsNullOrWhiteSpace(Header.Version) ? content : Header.Version); break; case "date": content = jtr.ReadAsString(); - DatHeader.Date = (string.IsNullOrWhiteSpace(DatHeader.Date) ? content.Replace(".", "/") : DatHeader.Date); + Header.Date = (string.IsNullOrWhiteSpace(Header.Date) ? content.Replace(".", "/") : Header.Date); break; case "author": content = jtr.ReadAsString(); - DatHeader.Author = (string.IsNullOrWhiteSpace(DatHeader.Author) ? content : DatHeader.Author); + Header.Author = (string.IsNullOrWhiteSpace(Header.Author) ? content : Header.Author); break; case "email": content = jtr.ReadAsString(); - DatHeader.Email = (string.IsNullOrWhiteSpace(DatHeader.Email) ? content : DatHeader.Email); + Header.Email = (string.IsNullOrWhiteSpace(Header.Email) ? content : Header.Email); break; case "homepage": content = jtr.ReadAsString(); - DatHeader.Homepage = (string.IsNullOrWhiteSpace(DatHeader.Homepage) ? content : DatHeader.Homepage); + Header.Homepage = (string.IsNullOrWhiteSpace(Header.Homepage) ? content : Header.Homepage); break; case "url": content = jtr.ReadAsString(); - DatHeader.Url = (string.IsNullOrWhiteSpace(DatHeader.Url) ? content : DatHeader.Url); + Header.Url = (string.IsNullOrWhiteSpace(Header.Url) ? content : Header.Url); break; case "comment": content = jtr.ReadAsString(); - DatHeader.Comment = (string.IsNullOrWhiteSpace(DatHeader.Comment) ? content : DatHeader.Comment); + Header.Comment = (string.IsNullOrWhiteSpace(Header.Comment) ? content : Header.Comment); break; case "type": // This is exclusive to TruRip XML content = jtr.ReadAsString(); - DatHeader.Type = (string.IsNullOrWhiteSpace(DatHeader.Type) ? content : DatHeader.Type); + Header.Type = (string.IsNullOrWhiteSpace(Header.Type) ? content : Header.Type); superdat = superdat || content.Contains("SuperDAT"); break; case "forcemerging": - if (DatHeader.ForceMerging == ForceMerging.None) - DatHeader.ForceMerging = jtr.ReadAsString().AsForceMerging(); + if (Header.ForceMerging == ForceMerging.None) + Header.ForceMerging = jtr.ReadAsString().AsForceMerging(); break; case "forcepacking": - if (DatHeader.ForcePacking == ForcePacking.None) - DatHeader.ForcePacking = jtr.ReadAsString().AsForcePacking(); + if (Header.ForcePacking == ForcePacking.None) + Header.ForcePacking = jtr.ReadAsString().AsForcePacking(); break; case "forcenodump": - if (DatHeader.ForceNodump == ForceNodump.None) - DatHeader.ForceNodump = jtr.ReadAsString().AsForceNodump(); + if (Header.ForceNodump == ForceNodump.None) + Header.ForceNodump = jtr.ReadAsString().AsForceNodump(); break; case "header": content = jtr.ReadAsString(); - DatHeader.Header = (string.IsNullOrWhiteSpace(DatHeader.Header) ? content : DatHeader.Header); + Header.Header = (string.IsNullOrWhiteSpace(Header.Header) ? content : Header.Header); break; default: @@ -862,57 +862,57 @@ namespace SabreTools.Library.DatFiles jtw.WriteStartObject(); jtw.WritePropertyName("name"); - jtw.WriteValue(DatHeader.Name); + jtw.WriteValue(Header.Name); jtw.WritePropertyName("description"); - jtw.WriteValue(DatHeader.Description); - if (!string.IsNullOrWhiteSpace(DatHeader.RootDir)) + jtw.WriteValue(Header.Description); + if (!string.IsNullOrWhiteSpace(Header.RootDir)) { jtw.WritePropertyName("rootdir"); - jtw.WriteValue(DatHeader.RootDir); + jtw.WriteValue(Header.RootDir); } - if (!string.IsNullOrWhiteSpace(DatHeader.Category)) + if (!string.IsNullOrWhiteSpace(Header.Category)) { jtw.WritePropertyName("category"); - jtw.WriteValue(DatHeader.Category); + jtw.WriteValue(Header.Category); } jtw.WritePropertyName("version"); - jtw.WriteValue(DatHeader.Version); - if (!string.IsNullOrWhiteSpace(DatHeader.Date)) + jtw.WriteValue(Header.Version); + if (!string.IsNullOrWhiteSpace(Header.Date)) { jtw.WritePropertyName("date"); - jtw.WriteValue(DatHeader.Date); + jtw.WriteValue(Header.Date); } jtw.WritePropertyName("author"); - jtw.WriteValue(DatHeader.Author); - if (!string.IsNullOrWhiteSpace(DatHeader.Email)) + jtw.WriteValue(Header.Author); + if (!string.IsNullOrWhiteSpace(Header.Email)) { jtw.WritePropertyName("email"); - jtw.WriteValue(DatHeader.Email); + jtw.WriteValue(Header.Email); } - if (!string.IsNullOrWhiteSpace(DatHeader.Homepage)) + if (!string.IsNullOrWhiteSpace(Header.Homepage)) { jtw.WritePropertyName("homepage"); - jtw.WriteValue(DatHeader.Homepage); + jtw.WriteValue(Header.Homepage); } - if (!string.IsNullOrWhiteSpace(DatHeader.Url)) + if (!string.IsNullOrWhiteSpace(Header.Url)) { jtw.WritePropertyName("date"); - jtw.WriteValue(DatHeader.Url); + jtw.WriteValue(Header.Url); } - if (!string.IsNullOrWhiteSpace(DatHeader.Comment)) + if (!string.IsNullOrWhiteSpace(Header.Comment)) { jtw.WritePropertyName("comment"); - jtw.WriteValue(DatHeader.Comment); + jtw.WriteValue(Header.Comment); } - if (!string.IsNullOrWhiteSpace(DatHeader.Type)) + if (!string.IsNullOrWhiteSpace(Header.Type)) { jtw.WritePropertyName("type"); - jtw.WriteValue(DatHeader.Type); + jtw.WriteValue(Header.Type); } - if (DatHeader.ForceMerging != ForceMerging.None) + if (Header.ForceMerging != ForceMerging.None) { jtw.WritePropertyName("forcemerging"); - switch (DatHeader.ForceMerging) + switch (Header.ForceMerging) { case ForceMerging.Full: jtw.WriteValue("full"); @@ -928,10 +928,10 @@ namespace SabreTools.Library.DatFiles break; } } - if (DatHeader.ForcePacking != ForcePacking.None) + if (Header.ForcePacking != ForcePacking.None) { jtw.WritePropertyName("forcepacking"); - switch (DatHeader.ForcePacking) + switch (Header.ForcePacking) { case ForcePacking.Unzip: jtw.WriteValue("unzip"); @@ -941,10 +941,10 @@ namespace SabreTools.Library.DatFiles break; } } - if (DatHeader.ForceNodump != ForceNodump.None) + if (Header.ForceNodump != ForceNodump.None) { jtw.WritePropertyName("forcenodump"); - switch (DatHeader.ForceNodump) + switch (Header.ForceNodump) { case ForceNodump.Ignore: jtw.WriteValue("ignore"); @@ -957,10 +957,10 @@ namespace SabreTools.Library.DatFiles break; } } - if (!string.IsNullOrWhiteSpace(DatHeader.Header)) + if (!string.IsNullOrWhiteSpace(Header.Header)) { jtw.WritePropertyName("header"); - jtw.WriteValue(DatHeader.Header); + jtw.WriteValue(Header.Header); } // End header @@ -997,54 +997,54 @@ namespace SabreTools.Library.DatFiles jtw.WriteStartObject(); jtw.WritePropertyName("name"); - jtw.WriteValue(datItem.GetField(Field.MachineName, DatHeader.ExcludeFields)); + jtw.WriteValue(datItem.GetField(Field.MachineName, Header.ExcludeFields)); - if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.Comment, DatHeader.ExcludeFields))) + if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.Comment, Header.ExcludeFields))) { jtw.WritePropertyName("comment"); jtw.WriteValue(datItem.Comment); } - if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.Description, DatHeader.ExcludeFields))) + if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.Description, Header.ExcludeFields))) { jtw.WritePropertyName("description"); jtw.WriteValue(datItem.MachineDescription); } - if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.Year, DatHeader.ExcludeFields))) + if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.Year, Header.ExcludeFields))) { jtw.WritePropertyName("year"); jtw.WriteValue(datItem.Year); } - if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.Manufacturer, DatHeader.ExcludeFields))) + if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.Manufacturer, Header.ExcludeFields))) { jtw.WritePropertyName("manufacturer"); jtw.WriteValue(datItem.Manufacturer); } - if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.Publisher, DatHeader.ExcludeFields))) + if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.Publisher, Header.ExcludeFields))) { jtw.WritePropertyName("publisher"); jtw.WriteValue(datItem.Publisher); } - if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.Category, DatHeader.ExcludeFields))) + if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.Category, Header.ExcludeFields))) { jtw.WritePropertyName("category"); jtw.WriteValue(datItem.Category); } - if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.RomOf, DatHeader.ExcludeFields)) && !string.Equals(datItem.MachineName, datItem.RomOf, StringComparison.OrdinalIgnoreCase)) + if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.RomOf, Header.ExcludeFields)) && !string.Equals(datItem.MachineName, datItem.RomOf, StringComparison.OrdinalIgnoreCase)) { jtw.WritePropertyName("romof"); jtw.WriteValue(datItem.RomOf); } - if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.CloneOf, DatHeader.ExcludeFields)) && !string.Equals(datItem.MachineName, datItem.CloneOf, StringComparison.OrdinalIgnoreCase)) + if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.CloneOf, Header.ExcludeFields)) && !string.Equals(datItem.MachineName, datItem.CloneOf, StringComparison.OrdinalIgnoreCase)) { jtw.WritePropertyName("cloneof"); jtw.WriteValue(datItem.CloneOf); } - if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.SampleOf, DatHeader.ExcludeFields)) && !string.Equals(datItem.MachineName, datItem.SampleOf, StringComparison.OrdinalIgnoreCase)) + if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.SampleOf, Header.ExcludeFields)) && !string.Equals(datItem.MachineName, datItem.SampleOf, StringComparison.OrdinalIgnoreCase)) { jtw.WritePropertyName("sampleof"); jtw.WriteValue(datItem.SampleOf); } - if (!DatHeader.ExcludeFields[(int)Field.Supported] && datItem.Supported != null) + if (!Header.ExcludeFields[(int)Field.Supported] && datItem.Supported != null) { if (datItem.Supported == true) { @@ -1057,12 +1057,12 @@ namespace SabreTools.Library.DatFiles jtw.WriteValue("no"); } } - if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.SourceFile, DatHeader.ExcludeFields))) + if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.SourceFile, Header.ExcludeFields))) { jtw.WritePropertyName("sourcefile"); jtw.WriteValue(datItem.SourceFile); } - if (!DatHeader.ExcludeFields[(int)Field.Runnable] && datItem.Runnable != null) + if (!Header.ExcludeFields[(int)Field.Runnable] && datItem.Runnable != null) { if (datItem.Runnable == true) { @@ -1075,17 +1075,17 @@ namespace SabreTools.Library.DatFiles jtw.WriteValue("no"); } } - if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.Board, DatHeader.ExcludeFields))) + if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.Board, Header.ExcludeFields))) { jtw.WritePropertyName("board"); jtw.WriteValue(datItem.Board); } - if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.RebuildTo, DatHeader.ExcludeFields))) + if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.RebuildTo, Header.ExcludeFields))) { jtw.WritePropertyName("rebuildto"); jtw.WriteValue(datItem.RebuildTo); } - if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.Devices, DatHeader.ExcludeFields))) + if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.Devices, Header.ExcludeFields))) { jtw.WritePropertyName("devices"); jtw.WriteStartArray(); @@ -1096,7 +1096,7 @@ namespace SabreTools.Library.DatFiles jtw.WriteEndArray(); } - if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.SlotOptions, DatHeader.ExcludeFields))) + if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.SlotOptions, Header.ExcludeFields))) { jtw.WritePropertyName("slotoptions"); jtw.WriteStartArray(); @@ -1107,7 +1107,7 @@ namespace SabreTools.Library.DatFiles jtw.WriteEndArray(); } - if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.Infos, DatHeader.ExcludeFields))) + if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.Infos, Header.ExcludeFields))) { jtw.WritePropertyName("infos"); jtw.WriteStartArray(); @@ -1121,7 +1121,7 @@ namespace SabreTools.Library.DatFiles jtw.WriteEndArray(); } - if (!DatHeader.ExcludeFields[(int)Field.MachineType]) + if (!Header.ExcludeFields[(int)Field.MachineType]) { if (datItem.MachineType.HasFlag(MachineType.Bios)) { @@ -1211,20 +1211,20 @@ namespace SabreTools.Library.DatFiles case ItemType.Archive: jtw.WriteValue("archive"); jtw.WritePropertyName("name"); - jtw.WriteValue(datItem.GetField(Field.Name, DatHeader.ExcludeFields)); + jtw.WriteValue(datItem.GetField(Field.Name, Header.ExcludeFields)); break; case ItemType.BiosSet: var biosSet = datItem as BiosSet; jtw.WriteValue("biosset"); jtw.WritePropertyName("name"); - jtw.WriteValue(biosSet.GetField(Field.Name, DatHeader.ExcludeFields)); - if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.BiosDescription, DatHeader.ExcludeFields))) + jtw.WriteValue(biosSet.GetField(Field.Name, Header.ExcludeFields)); + if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.BiosDescription, Header.ExcludeFields))) { jtw.WritePropertyName("description"); jtw.WriteValue(biosSet.Description); } - if (!DatHeader.ExcludeFields[(int)Field.Default] && biosSet.Default != null) + if (!Header.ExcludeFields[(int)Field.Default] && biosSet.Default != null) { jtw.WritePropertyName("default"); jtw.WriteValue(biosSet.Default); @@ -1235,65 +1235,65 @@ namespace SabreTools.Library.DatFiles var disk = datItem as Disk; jtw.WriteValue("disk"); jtw.WritePropertyName("name"); - jtw.WriteValue(disk.GetField(Field.Name, DatHeader.ExcludeFields)); - if (!string.IsNullOrWhiteSpace(disk.GetField(Field.MD5, DatHeader.ExcludeFields))) + jtw.WriteValue(disk.GetField(Field.Name, Header.ExcludeFields)); + if (!string.IsNullOrWhiteSpace(disk.GetField(Field.MD5, Header.ExcludeFields))) { jtw.WritePropertyName("md5"); jtw.WriteValue(disk.MD5.ToLowerInvariant()); } #if NET_FRAMEWORK - if (!string.IsNullOrWhiteSpace(disk.GetField(Field.RIPEMD160, DatHeader.ExcludeFields))) + if (!string.IsNullOrWhiteSpace(disk.GetField(Field.RIPEMD160, Header.ExcludeFields))) { jtw.WritePropertyName("ripemd160"); jtw.WriteValue(disk.RIPEMD160.ToLowerInvariant()); } #endif - if (!string.IsNullOrWhiteSpace(disk.GetField(Field.SHA1, DatHeader.ExcludeFields))) + if (!string.IsNullOrWhiteSpace(disk.GetField(Field.SHA1, Header.ExcludeFields))) { jtw.WritePropertyName("sha1"); jtw.WriteValue(disk.SHA1.ToLowerInvariant()); } - if (!string.IsNullOrWhiteSpace(disk.GetField(Field.SHA256, DatHeader.ExcludeFields))) + if (!string.IsNullOrWhiteSpace(disk.GetField(Field.SHA256, Header.ExcludeFields))) { jtw.WritePropertyName("sha256"); jtw.WriteValue(disk.SHA256.ToLowerInvariant()); } - if (!string.IsNullOrWhiteSpace(disk.GetField(Field.SHA384, DatHeader.ExcludeFields))) + if (!string.IsNullOrWhiteSpace(disk.GetField(Field.SHA384, Header.ExcludeFields))) { jtw.WritePropertyName("sha384"); jtw.WriteValue(disk.SHA384.ToLowerInvariant()); } - if (!string.IsNullOrWhiteSpace(disk.GetField(Field.SHA512, DatHeader.ExcludeFields))) + if (!string.IsNullOrWhiteSpace(disk.GetField(Field.SHA512, Header.ExcludeFields))) { jtw.WritePropertyName("sha512"); jtw.WriteValue(disk.SHA512.ToLowerInvariant()); } - if (!string.IsNullOrWhiteSpace(disk.GetField(Field.Merge, DatHeader.ExcludeFields))) + if (!string.IsNullOrWhiteSpace(disk.GetField(Field.Merge, Header.ExcludeFields))) { jtw.WritePropertyName("merge"); jtw.WriteValue(disk.MergeTag); } - if (!string.IsNullOrWhiteSpace(disk.GetField(Field.Region, DatHeader.ExcludeFields))) + if (!string.IsNullOrWhiteSpace(disk.GetField(Field.Region, Header.ExcludeFields))) { jtw.WritePropertyName("region"); jtw.WriteValue(disk.Region); } - if (!string.IsNullOrWhiteSpace(disk.GetField(Field.Index, DatHeader.ExcludeFields))) + if (!string.IsNullOrWhiteSpace(disk.GetField(Field.Index, Header.ExcludeFields))) { jtw.WritePropertyName("index"); jtw.WriteValue(disk.Index); } - if (!string.IsNullOrWhiteSpace(disk.GetField(Field.Writable, DatHeader.ExcludeFields))) + if (!string.IsNullOrWhiteSpace(disk.GetField(Field.Writable, Header.ExcludeFields))) { jtw.WritePropertyName("writable"); jtw.WriteValue(disk.Writable); } - if (!DatHeader.ExcludeFields[(int)Field.Status] && disk.ItemStatus != ItemStatus.None) + if (!Header.ExcludeFields[(int)Field.Status] && disk.ItemStatus != ItemStatus.None) { jtw.WritePropertyName("status"); jtw.WriteValue(disk.ItemStatus.ToString().ToLowerInvariant()); } - if (!string.IsNullOrWhiteSpace(disk.GetField(Field.Optional, DatHeader.ExcludeFields))) + if (!string.IsNullOrWhiteSpace(disk.GetField(Field.Optional, Header.ExcludeFields))) { jtw.WritePropertyName("optional"); jtw.WriteValue(disk.Optional); @@ -1304,23 +1304,23 @@ namespace SabreTools.Library.DatFiles var release = datItem as Release; jtw.WriteValue("release"); jtw.WritePropertyName("name"); - jtw.WriteValue(release.GetField(Field.Name, DatHeader.ExcludeFields)); - if (!string.IsNullOrWhiteSpace(release.GetField(Field.Region, DatHeader.ExcludeFields))) + jtw.WriteValue(release.GetField(Field.Name, Header.ExcludeFields)); + if (!string.IsNullOrWhiteSpace(release.GetField(Field.Region, Header.ExcludeFields))) { jtw.WritePropertyName("region"); jtw.WriteValue(release.Region); } - if (!string.IsNullOrWhiteSpace(release.GetField(Field.Language, DatHeader.ExcludeFields))) + if (!string.IsNullOrWhiteSpace(release.GetField(Field.Language, Header.ExcludeFields))) { jtw.WritePropertyName("language"); jtw.WriteValue(release.Language); } - if (!string.IsNullOrWhiteSpace(release.GetField(Field.Date, DatHeader.ExcludeFields))) + if (!string.IsNullOrWhiteSpace(release.GetField(Field.Date, Header.ExcludeFields))) { jtw.WritePropertyName("date"); jtw.WriteValue(release.Date); } - if (!DatHeader.ExcludeFields[(int)Field.Default] && release.Default != null) + if (!Header.ExcludeFields[(int)Field.Default] && release.Default != null) { jtw.WritePropertyName("default"); jtw.WriteValue(release.Default); @@ -1331,80 +1331,80 @@ namespace SabreTools.Library.DatFiles var rom = datItem as Rom; jtw.WriteValue("rom"); jtw.WritePropertyName("name"); - jtw.WriteValue(rom.GetField(Field.Name, DatHeader.ExcludeFields)); - if (!DatHeader.ExcludeFields[(int)Field.Size] && rom.Size != -1) + jtw.WriteValue(rom.GetField(Field.Name, Header.ExcludeFields)); + if (!Header.ExcludeFields[(int)Field.Size] && rom.Size != -1) { jtw.WritePropertyName("size"); jtw.WriteValue(rom.Size); } - if (!string.IsNullOrWhiteSpace(rom.GetField(Field.Offset, DatHeader.ExcludeFields))) + if (!string.IsNullOrWhiteSpace(rom.GetField(Field.Offset, Header.ExcludeFields))) { jtw.WritePropertyName("offset"); jtw.WriteValue(rom.Offset); } - if (!string.IsNullOrWhiteSpace(rom.GetField(Field.CRC, DatHeader.ExcludeFields))) + if (!string.IsNullOrWhiteSpace(rom.GetField(Field.CRC, Header.ExcludeFields))) { jtw.WritePropertyName("crc"); jtw.WriteValue(rom.CRC.ToLowerInvariant()); } - if (!string.IsNullOrWhiteSpace(rom.GetField(Field.MD5, DatHeader.ExcludeFields))) + if (!string.IsNullOrWhiteSpace(rom.GetField(Field.MD5, Header.ExcludeFields))) { jtw.WritePropertyName("md5"); jtw.WriteValue(rom.MD5.ToLowerInvariant()); } #if NET_FRAMEWORK - if (!string.IsNullOrWhiteSpace(rom.GetField(Field.RIPEMD160, DatHeader.ExcludeFields))) + if (!string.IsNullOrWhiteSpace(rom.GetField(Field.RIPEMD160, Header.ExcludeFields))) { jtw.WritePropertyName("ripemd160"); jtw.WriteValue(rom.RIPEMD160.ToLowerInvariant()); } #endif - if (!string.IsNullOrWhiteSpace(rom.GetField(Field.SHA1, DatHeader.ExcludeFields))) + if (!string.IsNullOrWhiteSpace(rom.GetField(Field.SHA1, Header.ExcludeFields))) { jtw.WritePropertyName("sha1"); jtw.WriteValue(rom.SHA1.ToLowerInvariant()); } - if (!string.IsNullOrWhiteSpace(rom.GetField(Field.SHA256, DatHeader.ExcludeFields))) + if (!string.IsNullOrWhiteSpace(rom.GetField(Field.SHA256, Header.ExcludeFields))) { jtw.WritePropertyName("sha256"); jtw.WriteValue(rom.SHA256.ToLowerInvariant()); } - if (!string.IsNullOrWhiteSpace(rom.GetField(Field.SHA384, DatHeader.ExcludeFields))) + if (!string.IsNullOrWhiteSpace(rom.GetField(Field.SHA384, Header.ExcludeFields))) { jtw.WritePropertyName("sha384"); jtw.WriteValue(rom.SHA384.ToLowerInvariant()); } - if (!string.IsNullOrWhiteSpace(rom.GetField(Field.SHA512, DatHeader.ExcludeFields))) + if (!string.IsNullOrWhiteSpace(rom.GetField(Field.SHA512, Header.ExcludeFields))) { jtw.WritePropertyName("sha512"); jtw.WriteValue(rom.SHA512.ToLowerInvariant()); } - if (!string.IsNullOrWhiteSpace(rom.GetField(Field.Bios, DatHeader.ExcludeFields))) + if (!string.IsNullOrWhiteSpace(rom.GetField(Field.Bios, Header.ExcludeFields))) { jtw.WritePropertyName("bios"); jtw.WriteValue(rom.Bios); } - if (!string.IsNullOrWhiteSpace(rom.GetField(Field.Merge, DatHeader.ExcludeFields))) + if (!string.IsNullOrWhiteSpace(rom.GetField(Field.Merge, Header.ExcludeFields))) { jtw.WritePropertyName("merge"); jtw.WriteValue(rom.MergeTag); } - if (!string.IsNullOrWhiteSpace(rom.GetField(Field.Region, DatHeader.ExcludeFields))) + if (!string.IsNullOrWhiteSpace(rom.GetField(Field.Region, Header.ExcludeFields))) { jtw.WritePropertyName("region"); jtw.WriteValue(rom.Region); } - if (!string.IsNullOrWhiteSpace(rom.GetField(Field.Date, DatHeader.ExcludeFields))) + if (!string.IsNullOrWhiteSpace(rom.GetField(Field.Date, Header.ExcludeFields))) { jtw.WritePropertyName("date"); jtw.WriteValue(rom.Date); } - if (!DatHeader.ExcludeFields[(int)Field.Status] && rom.ItemStatus != ItemStatus.None) + if (!Header.ExcludeFields[(int)Field.Status] && rom.ItemStatus != ItemStatus.None) { jtw.WritePropertyName("status"); jtw.WriteValue(rom.ItemStatus.ToString().ToLowerInvariant()); } - if (!string.IsNullOrWhiteSpace(rom.GetField(Field.Optional, DatHeader.ExcludeFields))) + if (!string.IsNullOrWhiteSpace(rom.GetField(Field.Optional, Header.ExcludeFields))) { jtw.WritePropertyName("optional"); jtw.WriteValue(rom.Optional); @@ -1414,21 +1414,21 @@ namespace SabreTools.Library.DatFiles case ItemType.Sample: jtw.WriteValue("sample"); jtw.WritePropertyName("name"); - jtw.WriteValue(datItem.GetField(Field.Name, DatHeader.ExcludeFields)); + jtw.WriteValue(datItem.GetField(Field.Name, Header.ExcludeFields)); break; } - if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.PartName, DatHeader.ExcludeFields))) + if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.PartName, Header.ExcludeFields))) { jtw.WritePropertyName("partname"); jtw.WriteValue(datItem.PartName); } - if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.PartInterface, DatHeader.ExcludeFields))) + if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.PartInterface, Header.ExcludeFields))) { jtw.WritePropertyName("partinterface"); jtw.WriteValue(datItem.PartInterface); } - if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.Features, DatHeader.ExcludeFields))) + if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.Features, Header.ExcludeFields))) { jtw.WritePropertyName("features"); jtw.WriteStartArray(); @@ -1442,12 +1442,12 @@ namespace SabreTools.Library.DatFiles jtw.WriteEndArray(); } - if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.AreaName, DatHeader.ExcludeFields))) + if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.AreaName, Header.ExcludeFields))) { jtw.WritePropertyName("areaname"); jtw.WriteValue(datItem.AreaName); } - if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.AreaSize, DatHeader.ExcludeFields))) + if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.AreaSize, Header.ExcludeFields))) { jtw.WritePropertyName("areasize"); jtw.WriteValue(datItem.AreaSize); diff --git a/SabreTools.Library/DatFiles/Listrom.cs b/SabreTools.Library/DatFiles/Listrom.cs index 3fce4ea1..661cbda2 100644 --- a/SabreTools.Library/DatFiles/Listrom.cs +++ b/SabreTools.Library/DatFiles/Listrom.cs @@ -332,7 +332,7 @@ namespace SabreTools.Library.DatFiles rom.MachineName = rom.MachineName.TrimStart(Path.DirectorySeparatorChar); // Build the state based on excluded fields - sw.Write($"ROMs required for driver \"{rom.GetField(Field.MachineName, DatHeader.ExcludeFields)}\".\n"); + sw.Write($"ROMs required for driver \"{rom.GetField(Field.MachineName, Header.ExcludeFields)}\".\n"); sw.Write("Name Size Checksum\n"); sw.Flush(); @@ -400,19 +400,19 @@ namespace SabreTools.Library.DatFiles sw.Write($"{disk.Name} "); // If we have a baddump, put the first indicator - if (!DatHeader.ExcludeFields[(int)Field.Status] && disk.ItemStatus == ItemStatus.BadDump) + if (!Header.ExcludeFields[(int)Field.Status] && disk.ItemStatus == ItemStatus.BadDump) sw.Write(" BAD"); // If we have a nodump, write out the indicator - if (!DatHeader.ExcludeFields[(int)Field.Status] && disk.ItemStatus == ItemStatus.Nodump) + if (!Header.ExcludeFields[(int)Field.Status] && disk.ItemStatus == ItemStatus.Nodump) sw.Write(" NO GOOD DUMP KNOWN"); // Otherwise, write out the SHA-1 hash - else if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.SHA1, DatHeader.ExcludeFields))) + else if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.SHA1, Header.ExcludeFields))) sw.Write($" SHA1({disk.SHA1})"); // If we have a baddump, put the second indicator - if (!DatHeader.ExcludeFields[(int)Field.Status] && disk.ItemStatus == ItemStatus.BadDump) + if (!Header.ExcludeFields[(int)Field.Status] && disk.ItemStatus == ItemStatus.BadDump) sw.Write(" BAD_DUMP"); sw.Write("\n"); @@ -432,25 +432,25 @@ namespace SabreTools.Library.DatFiles sw.Write(rom.Size); // If we have a baddump, put the first indicator - if (!DatHeader.ExcludeFields[(int)Field.Status] && rom.ItemStatus == ItemStatus.BadDump) + if (!Header.ExcludeFields[(int)Field.Status] && rom.ItemStatus == ItemStatus.BadDump) sw.Write(" BAD"); // If we have a nodump, write out the indicator - if (!DatHeader.ExcludeFields[(int)Field.Status] && rom.ItemStatus == ItemStatus.Nodump) + if (!Header.ExcludeFields[(int)Field.Status] && rom.ItemStatus == ItemStatus.Nodump) { sw.Write(" NO GOOD DUMP KNOWN"); } // Otherwise, write out the CRC and SHA-1 hashes else { - if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.CRC, DatHeader.ExcludeFields))) + if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.CRC, Header.ExcludeFields))) sw.Write($" CRC({rom.CRC})"); - if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.SHA1, DatHeader.ExcludeFields))) + if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.SHA1, Header.ExcludeFields))) sw.Write($" SHA1({rom.SHA1})"); } // If we have a baddump, put the second indicator - if (!DatHeader.ExcludeFields[(int)Field.Status] && rom.ItemStatus == ItemStatus.BadDump) + if (!Header.ExcludeFields[(int)Field.Status] && rom.ItemStatus == ItemStatus.BadDump) sw.Write(" BAD_DUMP"); sw.Write("\n"); diff --git a/SabreTools.Library/DatFiles/Listxml.cs b/SabreTools.Library/DatFiles/Listxml.cs index 0ffe12f8..9adc0b43 100644 --- a/SabreTools.Library/DatFiles/Listxml.cs +++ b/SabreTools.Library/DatFiles/Listxml.cs @@ -64,8 +64,8 @@ namespace SabreTools.Library.DatFiles switch (xtr.Name) { case "mame": - DatHeader.Name = (string.IsNullOrWhiteSpace(DatHeader.Name) ? xtr.GetAttribute("build") : DatHeader.Name); - DatHeader.Description = (string.IsNullOrWhiteSpace(DatHeader.Description) ? DatHeader.Name : DatHeader.Description); + Header.Name = (string.IsNullOrWhiteSpace(Header.Name) ? xtr.GetAttribute("build") : Header.Name); + Header.Description = (string.IsNullOrWhiteSpace(Header.Description) ? Header.Name : Header.Description); // string mame_debug = xtr.GetAttribute("debug"); // (yes|no) "no" // string mame_mameconfig = xtr.GetAttribute("mameconfig"); CDATA xtr.Read(); @@ -73,9 +73,9 @@ namespace SabreTools.Library.DatFiles // Handle M1 DATs since they're 99% the same as a SL DAT case "m1": - DatHeader.Name = (string.IsNullOrWhiteSpace(DatHeader.Name) ? "M1" : DatHeader.Name); - DatHeader.Description = (string.IsNullOrWhiteSpace(DatHeader.Description) ? "M1" : DatHeader.Description); - DatHeader.Version = (string.IsNullOrWhiteSpace(DatHeader.Version) ? xtr.GetAttribute("version") ?? string.Empty : DatHeader.Version); + Header.Name = (string.IsNullOrWhiteSpace(Header.Name) ? "M1" : Header.Name); + Header.Description = (string.IsNullOrWhiteSpace(Header.Description) ? "M1" : Header.Description); + Header.Version = (string.IsNullOrWhiteSpace(Header.Version) ? xtr.GetAttribute("version") ?? string.Empty : Header.Version); xtr.Read(); break; @@ -648,7 +648,7 @@ namespace SabreTools.Library.DatFiles xtw.WriteStartDocument(); xtw.WriteStartElement("mame"); - xtw.WriteAttributeString("build", DatHeader.Name); + xtw.WriteAttributeString("build", Header.Name); //xtw.WriteAttributeString("debug", Debug); //xtw.WriteAttributeString("mameconfig", MameConfig); @@ -678,11 +678,11 @@ namespace SabreTools.Library.DatFiles // Build the state based on excluded fields xtw.WriteStartElement("machine"); - xtw.WriteAttributeString("name", datItem.GetField(Field.MachineName, DatHeader.ExcludeFields)); - if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.SourceFile, DatHeader.ExcludeFields))) + xtw.WriteAttributeString("name", datItem.GetField(Field.MachineName, Header.ExcludeFields)); + if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.SourceFile, Header.ExcludeFields))) xtw.WriteElementString("sourcefile", datItem.SourceFile); - if (!DatHeader.ExcludeFields[(int)Field.MachineType]) + if (!Header.ExcludeFields[(int)Field.MachineType]) { if (datItem.MachineType.HasFlag(MachineType.Bios)) xtw.WriteAttributeString("isbios", "yes"); @@ -692,7 +692,7 @@ namespace SabreTools.Library.DatFiles xtw.WriteAttributeString("ismechanical", "yes"); } - if (!DatHeader.ExcludeFields[(int)Field.Runnable]) + if (!Header.ExcludeFields[(int)Field.Runnable]) { if (datItem.Runnable == true) xtw.WriteAttributeString("runnable", "yes"); @@ -700,23 +700,23 @@ namespace SabreTools.Library.DatFiles xtw.WriteAttributeString("runnable", "no"); } - if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.CloneOf, DatHeader.ExcludeFields)) && !string.Equals(datItem.MachineName, datItem.CloneOf, StringComparison.OrdinalIgnoreCase)) + if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.CloneOf, Header.ExcludeFields)) && !string.Equals(datItem.MachineName, datItem.CloneOf, StringComparison.OrdinalIgnoreCase)) xtw.WriteAttributeString("cloneof", datItem.CloneOf); - if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.RomOf, DatHeader.ExcludeFields)) && !string.Equals(datItem.MachineName, datItem.RomOf, StringComparison.OrdinalIgnoreCase)) + if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.RomOf, Header.ExcludeFields)) && !string.Equals(datItem.MachineName, datItem.RomOf, StringComparison.OrdinalIgnoreCase)) xtw.WriteAttributeString("romof", datItem.RomOf); - if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.SampleOf, DatHeader.ExcludeFields)) && !string.Equals(datItem.MachineName, datItem.SampleOf, StringComparison.OrdinalIgnoreCase)) + if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.SampleOf, Header.ExcludeFields)) && !string.Equals(datItem.MachineName, datItem.SampleOf, StringComparison.OrdinalIgnoreCase)) xtw.WriteAttributeString("sampleof", datItem.SampleOf); - if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.Description, DatHeader.ExcludeFields))) + if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.Description, Header.ExcludeFields))) xtw.WriteElementString("description", datItem.MachineDescription); - if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.Year, DatHeader.ExcludeFields))) + if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.Year, Header.ExcludeFields))) xtw.WriteElementString("year", datItem.Year); - if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.Publisher, DatHeader.ExcludeFields))) + if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.Publisher, Header.ExcludeFields))) xtw.WriteElementString("publisher", datItem.Publisher); - if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.Category, DatHeader.ExcludeFields))) + if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.Category, Header.ExcludeFields))) xtw.WriteElementString("category", datItem.Category); - if (!DatHeader.ExcludeFields[(int)Field.Infos] && datItem.Infos != null && datItem.Infos.Count > 0) + if (!Header.ExcludeFields[(int)Field.Infos] && datItem.Infos != null && datItem.Infos.Count > 0) { foreach (KeyValuePair kvp in datItem.Infos) { @@ -785,10 +785,10 @@ namespace SabreTools.Library.DatFiles case ItemType.BiosSet: var biosSet = datItem as BiosSet; xtw.WriteStartElement("biosset"); - xtw.WriteAttributeString("name", biosSet.GetField(Field.Name, DatHeader.ExcludeFields)); - if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.BiosDescription, DatHeader.ExcludeFields))) + xtw.WriteAttributeString("name", biosSet.GetField(Field.Name, Header.ExcludeFields)); + if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.BiosDescription, Header.ExcludeFields))) xtw.WriteAttributeString("description", biosSet.Description); - if (!DatHeader.ExcludeFields[(int)Field.Default] && biosSet.Default != null) + if (!Header.ExcludeFields[(int)Field.Default] && biosSet.Default != null) xtw.WriteAttributeString("default", biosSet.Default.ToString().ToLowerInvariant()); xtw.WriteEndElement(); break; @@ -796,32 +796,32 @@ namespace SabreTools.Library.DatFiles case ItemType.Disk: var disk = datItem as Disk; xtw.WriteStartElement("disk"); - xtw.WriteAttributeString("name", disk.GetField(Field.Name, DatHeader.ExcludeFields)); - if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.MD5, DatHeader.ExcludeFields))) + xtw.WriteAttributeString("name", disk.GetField(Field.Name, Header.ExcludeFields)); + if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.MD5, Header.ExcludeFields))) xtw.WriteAttributeString("md5", disk.MD5.ToLowerInvariant()); #if NET_FRAMEWORK - if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.RIPEMD160, DatHeader.ExcludeFields))) + if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.RIPEMD160, Header.ExcludeFields))) xtw.WriteAttributeString("ripemd160", disk.RIPEMD160.ToLowerInvariant()); #endif - if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.SHA1, DatHeader.ExcludeFields))) + if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.SHA1, Header.ExcludeFields))) xtw.WriteAttributeString("sha1", disk.SHA1.ToLowerInvariant()); - if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.SHA256, DatHeader.ExcludeFields))) + if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.SHA256, Header.ExcludeFields))) xtw.WriteAttributeString("sha256", disk.SHA256.ToLowerInvariant()); - if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.SHA384, DatHeader.ExcludeFields))) + if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.SHA384, Header.ExcludeFields))) xtw.WriteAttributeString("sha384", disk.SHA384.ToLowerInvariant()); - if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.SHA512, DatHeader.ExcludeFields))) + if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.SHA512, Header.ExcludeFields))) xtw.WriteAttributeString("sha512", disk.SHA512.ToLowerInvariant()); - if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.Merge, DatHeader.ExcludeFields))) + if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.Merge, Header.ExcludeFields))) xtw.WriteAttributeString("merge", disk.MergeTag); - if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.Region, DatHeader.ExcludeFields))) + if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.Region, Header.ExcludeFields))) xtw.WriteAttributeString("region", disk.Region); - if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.Index, DatHeader.ExcludeFields))) + if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.Index, Header.ExcludeFields))) xtw.WriteAttributeString("index", disk.Index); - if (!DatHeader.ExcludeFields[(int)Field.Writable] && disk.Writable != null) + if (!Header.ExcludeFields[(int)Field.Writable] && disk.Writable != null) xtw.WriteAttributeString("writable", disk.Writable == true ? "yes" : "no"); - if (!DatHeader.ExcludeFields[(int)Field.Status] && disk.ItemStatus != ItemStatus.None) + if (!Header.ExcludeFields[(int)Field.Status] && disk.ItemStatus != ItemStatus.None) xtw.WriteAttributeString("status", disk.ItemStatus.ToString()); - if (!DatHeader.ExcludeFields[(int)Field.Optional] && disk.Optional != null) + if (!Header.ExcludeFields[(int)Field.Optional] && disk.Optional != null) xtw.WriteAttributeString("optional", disk.Optional == true ? "yes" : "no"); xtw.WriteEndElement(); break; @@ -829,43 +829,43 @@ namespace SabreTools.Library.DatFiles case ItemType.Rom: var rom = datItem as Rom; xtw.WriteStartElement("rom"); - xtw.WriteAttributeString("name", rom.GetField(Field.Name, DatHeader.ExcludeFields)); - if (!DatHeader.ExcludeFields[(int)Field.Size] && rom.Size != -1) + xtw.WriteAttributeString("name", rom.GetField(Field.Name, Header.ExcludeFields)); + if (!Header.ExcludeFields[(int)Field.Size] && rom.Size != -1) xtw.WriteAttributeString("size", rom.Size.ToString()); - if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.CRC, DatHeader.ExcludeFields))) + if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.CRC, Header.ExcludeFields))) xtw.WriteAttributeString("crc", rom.CRC.ToLowerInvariant()); - if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.MD5, DatHeader.ExcludeFields))) + if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.MD5, Header.ExcludeFields))) xtw.WriteAttributeString("md5", rom.MD5.ToLowerInvariant()); #if NET_FRAMEWORK - if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.RIPEMD160, DatHeader.ExcludeFields))) + if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.RIPEMD160, Header.ExcludeFields))) xtw.WriteAttributeString("ripemd160", rom.RIPEMD160.ToLowerInvariant()); #endif - if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.SHA1, DatHeader.ExcludeFields))) + if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.SHA1, Header.ExcludeFields))) xtw.WriteAttributeString("sha1", rom.SHA1.ToLowerInvariant()); - if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.SHA256, DatHeader.ExcludeFields))) + if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.SHA256, Header.ExcludeFields))) xtw.WriteAttributeString("sha256", rom.SHA256.ToLowerInvariant()); - if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.SHA384, DatHeader.ExcludeFields))) + if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.SHA384, Header.ExcludeFields))) xtw.WriteAttributeString("sha384", rom.SHA384.ToLowerInvariant()); - if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.SHA512, DatHeader.ExcludeFields))) + if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.SHA512, Header.ExcludeFields))) xtw.WriteAttributeString("sha512", rom.SHA512.ToLowerInvariant()); - if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.Bios, DatHeader.ExcludeFields))) + if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.Bios, Header.ExcludeFields))) xtw.WriteAttributeString("bios", rom.Bios); - if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.Merge, DatHeader.ExcludeFields))) + if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.Merge, Header.ExcludeFields))) xtw.WriteAttributeString("merge", rom.MergeTag); - if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.Region, DatHeader.ExcludeFields))) + if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.Region, Header.ExcludeFields))) xtw.WriteAttributeString("region", rom.Region); - if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.Offset, DatHeader.ExcludeFields))) + if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.Offset, Header.ExcludeFields))) xtw.WriteAttributeString("offset", rom.Offset); - if (!DatHeader.ExcludeFields[(int)Field.Status] && rom.ItemStatus != ItemStatus.None) + if (!Header.ExcludeFields[(int)Field.Status] && rom.ItemStatus != ItemStatus.None) xtw.WriteAttributeString("status", rom.ItemStatus.ToString().ToLowerInvariant()); - if (!DatHeader.ExcludeFields[(int)Field.Optional] && rom.Optional != null) + if (!Header.ExcludeFields[(int)Field.Optional] && rom.Optional != null) xtw.WriteAttributeString("optional", rom.Optional == true ? "yes" : "no"); xtw.WriteEndElement(); break; case ItemType.Sample: xtw.WriteStartElement("sample"); - xtw.WriteAttributeString("name", datItem.GetField(Field.Name, DatHeader.ExcludeFields)); + xtw.WriteAttributeString("name", datItem.GetField(Field.Name, Header.ExcludeFields)); xtw.WriteEndElement(); break; } diff --git a/SabreTools.Library/DatFiles/Logiqx.cs b/SabreTools.Library/DatFiles/Logiqx.cs index 9830abc4..f1c26d5b 100644 --- a/SabreTools.Library/DatFiles/Logiqx.cs +++ b/SabreTools.Library/DatFiles/Logiqx.cs @@ -91,7 +91,7 @@ namespace SabreTools.Library.DatFiles // Unique to RomVault-created DATs case "dir": - DatHeader.Type = "SuperDAT"; + Header.Type = "SuperDAT"; dirs.Add(xtr.GetAttribute("name") ?? string.Empty); xtr.Read(); break; @@ -153,82 +153,82 @@ namespace SabreTools.Library.DatFiles { case "name": content = reader.ReadElementContentAsString(); ; - DatHeader.Name = (string.IsNullOrWhiteSpace(DatHeader.Name) ? content : DatHeader.Name); + Header.Name = (string.IsNullOrWhiteSpace(Header.Name) ? content : Header.Name); superdat = superdat || content.Contains(" - SuperDAT"); if (keep && superdat) { - DatHeader.Type = (string.IsNullOrWhiteSpace(DatHeader.Type) ? "SuperDAT" : DatHeader.Type); + Header.Type = (string.IsNullOrWhiteSpace(Header.Type) ? "SuperDAT" : Header.Type); } break; case "description": content = reader.ReadElementContentAsString(); - DatHeader.Description = (string.IsNullOrWhiteSpace(DatHeader.Description) ? content : DatHeader.Description); + Header.Description = (string.IsNullOrWhiteSpace(Header.Description) ? content : Header.Description); break; case "rootdir": // This is exclusive to TruRip XML content = reader.ReadElementContentAsString(); - DatHeader.RootDir = (string.IsNullOrWhiteSpace(DatHeader.RootDir) ? content : DatHeader.RootDir); + Header.RootDir = (string.IsNullOrWhiteSpace(Header.RootDir) ? content : Header.RootDir); break; case "category": content = reader.ReadElementContentAsString(); - DatHeader.Category = (string.IsNullOrWhiteSpace(DatHeader.Category) ? content : DatHeader.Category); + Header.Category = (string.IsNullOrWhiteSpace(Header.Category) ? content : Header.Category); break; case "version": content = reader.ReadElementContentAsString(); - DatHeader.Version = (string.IsNullOrWhiteSpace(DatHeader.Version) ? content : DatHeader.Version); + Header.Version = (string.IsNullOrWhiteSpace(Header.Version) ? content : Header.Version); break; case "date": content = reader.ReadElementContentAsString(); - DatHeader.Date = (string.IsNullOrWhiteSpace(DatHeader.Date) ? content.Replace(".", "/") : DatHeader.Date); + Header.Date = (string.IsNullOrWhiteSpace(Header.Date) ? content.Replace(".", "/") : Header.Date); break; case "author": content = reader.ReadElementContentAsString(); - DatHeader.Author = (string.IsNullOrWhiteSpace(DatHeader.Author) ? content : DatHeader.Author); + Header.Author = (string.IsNullOrWhiteSpace(Header.Author) ? content : Header.Author); break; case "email": content = reader.ReadElementContentAsString(); - DatHeader.Email = (string.IsNullOrWhiteSpace(DatHeader.Email) ? content : DatHeader.Email); + Header.Email = (string.IsNullOrWhiteSpace(Header.Email) ? content : Header.Email); break; case "homepage": content = reader.ReadElementContentAsString(); - DatHeader.Homepage = (string.IsNullOrWhiteSpace(DatHeader.Homepage) ? content : DatHeader.Homepage); + Header.Homepage = (string.IsNullOrWhiteSpace(Header.Homepage) ? content : Header.Homepage); break; case "url": content = reader.ReadElementContentAsString(); - DatHeader.Url = (string.IsNullOrWhiteSpace(DatHeader.Url) ? content : DatHeader.Url); + Header.Url = (string.IsNullOrWhiteSpace(Header.Url) ? content : Header.Url); break; case "comment": content = reader.ReadElementContentAsString(); - DatHeader.Comment = (string.IsNullOrWhiteSpace(DatHeader.Comment) ? content : DatHeader.Comment); + Header.Comment = (string.IsNullOrWhiteSpace(Header.Comment) ? content : Header.Comment); break; case "type": // This is exclusive to TruRip XML content = reader.ReadElementContentAsString(); - DatHeader.Type = (string.IsNullOrWhiteSpace(DatHeader.Type) ? content : DatHeader.Type); + Header.Type = (string.IsNullOrWhiteSpace(Header.Type) ? content : Header.Type); superdat = superdat || content.Contains("SuperDAT"); break; case "clrmamepro": - if (string.IsNullOrWhiteSpace(DatHeader.Header)) - DatHeader.Header = reader.GetAttribute("header"); + if (string.IsNullOrWhiteSpace(Header.Header)) + Header.Header = reader.GetAttribute("header"); - if (DatHeader.ForceMerging == ForceMerging.None) - DatHeader.ForceMerging = reader.GetAttribute("forcemerging").AsForceMerging(); + if (Header.ForceMerging == ForceMerging.None) + Header.ForceMerging = reader.GetAttribute("forcemerging").AsForceMerging(); - if (DatHeader.ForceNodump == ForceNodump.None) - DatHeader.ForceNodump = reader.GetAttribute("forcenodump").AsForceNodump(); + if (Header.ForceNodump == ForceNodump.None) + Header.ForceNodump = reader.GetAttribute("forcenodump").AsForceNodump(); - if (DatHeader.ForcePacking == ForcePacking.None) - DatHeader.ForcePacking = reader.GetAttribute("forcepacking").AsForcePacking(); + if (Header.ForcePacking == ForcePacking.None) + Header.ForcePacking = reader.GetAttribute("forcepacking").AsForcePacking(); reader.Read(); break; @@ -338,7 +338,7 @@ namespace SabreTools.Library.DatFiles MachineType = (machineType == MachineType.NULL ? MachineType.None : machineType), }; - if (DatHeader.Type == "SuperDAT" && !keep) + if (Header.Type == "SuperDAT" && !keep) { string tempout = Regex.Match(machine.Name, @".*?\\(.*)").Groups[1].Value; if (!string.IsNullOrWhiteSpace(tempout)) @@ -757,34 +757,34 @@ namespace SabreTools.Library.DatFiles xtw.WriteStartElement("datafile"); xtw.WriteStartElement("header"); - xtw.WriteElementString("name", DatHeader.Name); - xtw.WriteElementString("description", DatHeader.Description); - if (!string.IsNullOrWhiteSpace(DatHeader.RootDir)) - xtw.WriteElementString("rootdir", DatHeader.RootDir); - if (!string.IsNullOrWhiteSpace(DatHeader.Category)) - xtw.WriteElementString("category", DatHeader.Category); - xtw.WriteElementString("version", DatHeader.Version); - if (!string.IsNullOrWhiteSpace(DatHeader.Date)) - xtw.WriteElementString("date", DatHeader.Date); - xtw.WriteElementString("author", DatHeader.Author); - if (!string.IsNullOrWhiteSpace(DatHeader.Email)) - xtw.WriteElementString("email", DatHeader.Email); - if (!string.IsNullOrWhiteSpace(DatHeader.Homepage)) - xtw.WriteElementString("homepage", DatHeader.Homepage); - if (!string.IsNullOrWhiteSpace(DatHeader.Url)) - xtw.WriteElementString("url", DatHeader.Url); - if (!string.IsNullOrWhiteSpace(DatHeader.Comment)) - xtw.WriteElementString("comment", DatHeader.Comment); - if (!string.IsNullOrWhiteSpace(DatHeader.Type)) - xtw.WriteElementString("type", DatHeader.Type); + xtw.WriteElementString("name", Header.Name); + xtw.WriteElementString("description", Header.Description); + if (!string.IsNullOrWhiteSpace(Header.RootDir)) + xtw.WriteElementString("rootdir", Header.RootDir); + if (!string.IsNullOrWhiteSpace(Header.Category)) + xtw.WriteElementString("category", Header.Category); + xtw.WriteElementString("version", Header.Version); + if (!string.IsNullOrWhiteSpace(Header.Date)) + xtw.WriteElementString("date", Header.Date); + xtw.WriteElementString("author", Header.Author); + if (!string.IsNullOrWhiteSpace(Header.Email)) + xtw.WriteElementString("email", Header.Email); + if (!string.IsNullOrWhiteSpace(Header.Homepage)) + xtw.WriteElementString("homepage", Header.Homepage); + if (!string.IsNullOrWhiteSpace(Header.Url)) + xtw.WriteElementString("url", Header.Url); + if (!string.IsNullOrWhiteSpace(Header.Comment)) + xtw.WriteElementString("comment", Header.Comment); + if (!string.IsNullOrWhiteSpace(Header.Type)) + xtw.WriteElementString("type", Header.Type); - if (DatHeader.ForcePacking != ForcePacking.None - || DatHeader.ForceMerging != ForceMerging.None - || DatHeader.ForceNodump != ForceNodump.None - || !string.IsNullOrWhiteSpace(DatHeader.Header)) + if (Header.ForcePacking != ForcePacking.None + || Header.ForceMerging != ForceMerging.None + || Header.ForceNodump != ForceNodump.None + || !string.IsNullOrWhiteSpace(Header.Header)) { xtw.WriteStartElement("clrmamepro"); - switch (DatHeader.ForcePacking) + switch (Header.ForcePacking) { case ForcePacking.Unzip: xtw.WriteAttributeString("forcepacking", "unzip"); @@ -794,7 +794,7 @@ namespace SabreTools.Library.DatFiles break; } - switch (DatHeader.ForceMerging) + switch (Header.ForceMerging) { case ForceMerging.Full: xtw.WriteAttributeString("forcemerging", "full"); @@ -810,7 +810,7 @@ namespace SabreTools.Library.DatFiles break; } - switch (DatHeader.ForceNodump) + switch (Header.ForceNodump) { case ForceNodump.Ignore: xtw.WriteAttributeString("forcenodump", "ignore"); @@ -823,8 +823,8 @@ namespace SabreTools.Library.DatFiles break; } - if (!string.IsNullOrWhiteSpace(DatHeader.Header)) - xtw.WriteAttributeString("header", DatHeader.Header); + if (!string.IsNullOrWhiteSpace(Header.Header)) + xtw.WriteAttributeString("header", Header.Header); // End clrmamepro xtw.WriteEndElement(); @@ -859,8 +859,8 @@ namespace SabreTools.Library.DatFiles // Build the state based on excluded fields xtw.WriteStartElement(_deprecated ? "game" : "machine"); - xtw.WriteAttributeString("name", datItem.GetField(Field.MachineName, DatHeader.ExcludeFields)); - if (!DatHeader.ExcludeFields[(int)Field.MachineType]) + xtw.WriteAttributeString("name", datItem.GetField(Field.MachineName, Header.ExcludeFields)); + if (!Header.ExcludeFields[(int)Field.MachineType]) { if (datItem.MachineType.HasFlag(MachineType.Bios)) xtw.WriteAttributeString("isbios", "yes"); @@ -870,7 +870,7 @@ namespace SabreTools.Library.DatFiles xtw.WriteAttributeString("ismechanical", "yes"); } - if (!DatHeader.ExcludeFields[(int)Field.Runnable] && datItem.Runnable != null) + if (!Header.ExcludeFields[(int)Field.Runnable] && datItem.Runnable != null) { if (datItem.Runnable == true) xtw.WriteAttributeString("runnable", "yes"); @@ -878,24 +878,24 @@ namespace SabreTools.Library.DatFiles xtw.WriteAttributeString("runnable", "no"); } - if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.CloneOf, DatHeader.ExcludeFields)) && !string.Equals(datItem.MachineName, datItem.CloneOf, StringComparison.OrdinalIgnoreCase)) + if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.CloneOf, Header.ExcludeFields)) && !string.Equals(datItem.MachineName, datItem.CloneOf, StringComparison.OrdinalIgnoreCase)) xtw.WriteAttributeString("cloneof", datItem.CloneOf); - if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.RomOf, DatHeader.ExcludeFields)) && !string.Equals(datItem.MachineName, datItem.RomOf, StringComparison.OrdinalIgnoreCase)) + if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.RomOf, Header.ExcludeFields)) && !string.Equals(datItem.MachineName, datItem.RomOf, StringComparison.OrdinalIgnoreCase)) xtw.WriteAttributeString("romof", datItem.RomOf); - if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.SampleOf, DatHeader.ExcludeFields)) && !string.Equals(datItem.MachineName, datItem.SampleOf, StringComparison.OrdinalIgnoreCase)) + if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.SampleOf, Header.ExcludeFields)) && !string.Equals(datItem.MachineName, datItem.SampleOf, StringComparison.OrdinalIgnoreCase)) xtw.WriteAttributeString("sampleof", datItem.SampleOf); - if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.Comment, DatHeader.ExcludeFields))) + if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.Comment, Header.ExcludeFields))) xtw.WriteElementString("comment", datItem.Comment); - if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.Description, DatHeader.ExcludeFields))) + if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.Description, Header.ExcludeFields))) xtw.WriteElementString("description", datItem.MachineDescription); - if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.Year, DatHeader.ExcludeFields))) + if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.Year, Header.ExcludeFields))) xtw.WriteElementString("year", datItem.Year); - if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.Publisher, DatHeader.ExcludeFields))) + if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.Publisher, Header.ExcludeFields))) xtw.WriteElementString("publisher", datItem.Publisher); - if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.Manufacturer, DatHeader.ExcludeFields))) + if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.Manufacturer, Header.ExcludeFields))) xtw.WriteElementString("manufacturer", datItem.Manufacturer); - if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.Category, DatHeader.ExcludeFields))) + if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.Category, Header.ExcludeFields))) xtw.WriteElementString("category", datItem.Category); xtw.Flush(); @@ -955,17 +955,17 @@ namespace SabreTools.Library.DatFiles { case ItemType.Archive: xtw.WriteStartElement("archive"); - xtw.WriteAttributeString("name", datItem.GetField(Field.Name, DatHeader.ExcludeFields)); + xtw.WriteAttributeString("name", datItem.GetField(Field.Name, Header.ExcludeFields)); xtw.WriteEndElement(); break; case ItemType.BiosSet: var biosSet = datItem as BiosSet; xtw.WriteStartElement("biosset"); - xtw.WriteAttributeString("name", biosSet.GetField(Field.Name, DatHeader.ExcludeFields)); - if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.BiosDescription, DatHeader.ExcludeFields))) + xtw.WriteAttributeString("name", biosSet.GetField(Field.Name, Header.ExcludeFields)); + if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.BiosDescription, Header.ExcludeFields))) xtw.WriteAttributeString("description", biosSet.Description); - if (!DatHeader.ExcludeFields[(int)Field.Default] && biosSet.Default != null) + if (!Header.ExcludeFields[(int)Field.Default] && biosSet.Default != null) xtw.WriteAttributeString("default", biosSet.Default.ToString().ToLowerInvariant()); xtw.WriteEndElement(); break; @@ -973,22 +973,22 @@ namespace SabreTools.Library.DatFiles case ItemType.Disk: var disk = datItem as Disk; xtw.WriteStartElement("disk"); - xtw.WriteAttributeString("name", disk.GetField(Field.Name, DatHeader.ExcludeFields)); - if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.MD5, DatHeader.ExcludeFields))) + xtw.WriteAttributeString("name", disk.GetField(Field.Name, Header.ExcludeFields)); + if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.MD5, Header.ExcludeFields))) xtw.WriteAttributeString("md5", disk.MD5.ToLowerInvariant()); #if NET_FRAMEWORK - if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.RIPEMD160, DatHeader.ExcludeFields))) + if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.RIPEMD160, Header.ExcludeFields))) xtw.WriteAttributeString("ripemd160", disk.RIPEMD160.ToLowerInvariant()); #endif - if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.SHA1, DatHeader.ExcludeFields))) + if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.SHA1, Header.ExcludeFields))) xtw.WriteAttributeString("sha1", disk.SHA1.ToLowerInvariant()); - if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.SHA256, DatHeader.ExcludeFields))) + if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.SHA256, Header.ExcludeFields))) xtw.WriteAttributeString("sha256", disk.SHA256.ToLowerInvariant()); - if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.SHA384, DatHeader.ExcludeFields))) + if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.SHA384, Header.ExcludeFields))) xtw.WriteAttributeString("sha384", disk.SHA384.ToLowerInvariant()); - if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.SHA512, DatHeader.ExcludeFields))) + if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.SHA512, Header.ExcludeFields))) xtw.WriteAttributeString("sha512", disk.SHA512.ToLowerInvariant()); - if (!DatHeader.ExcludeFields[(int)Field.Status] && disk.ItemStatus != ItemStatus.None) + if (!Header.ExcludeFields[(int)Field.Status] && disk.ItemStatus != ItemStatus.None) xtw.WriteAttributeString("status", disk.ItemStatus.ToString().ToLowerInvariant()); xtw.WriteEndElement(); break; @@ -996,14 +996,14 @@ namespace SabreTools.Library.DatFiles case ItemType.Release: var release = datItem as Release; xtw.WriteStartElement("release"); - xtw.WriteAttributeString("name", release.GetField(Field.Name, DatHeader.ExcludeFields)); - if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.Region, DatHeader.ExcludeFields))) + xtw.WriteAttributeString("name", release.GetField(Field.Name, Header.ExcludeFields)); + if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.Region, Header.ExcludeFields))) xtw.WriteAttributeString("region", release.Region); - if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.Language, DatHeader.ExcludeFields))) + if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.Language, Header.ExcludeFields))) xtw.WriteAttributeString("language", release.Language); - if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.Date, DatHeader.ExcludeFields))) + if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.Date, Header.ExcludeFields))) xtw.WriteAttributeString("date", release.Date); - if (!DatHeader.ExcludeFields[(int)Field.Default] && release.Default != null) + if (!Header.ExcludeFields[(int)Field.Default] && release.Default != null) xtw.WriteAttributeString("default", release.Default.ToString().ToLowerInvariant()); xtw.WriteEndElement(); break; @@ -1011,35 +1011,35 @@ namespace SabreTools.Library.DatFiles case ItemType.Rom: var rom = datItem as Rom; xtw.WriteStartElement("rom"); - xtw.WriteAttributeString("name", rom.GetField(Field.Name, DatHeader.ExcludeFields)); - if (!DatHeader.ExcludeFields[(int)Field.Size] && rom.Size != -1) + xtw.WriteAttributeString("name", rom.GetField(Field.Name, Header.ExcludeFields)); + if (!Header.ExcludeFields[(int)Field.Size] && rom.Size != -1) xtw.WriteAttributeString("size", rom.Size.ToString()); - if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.CRC, DatHeader.ExcludeFields))) + if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.CRC, Header.ExcludeFields))) xtw.WriteAttributeString("crc", rom.CRC.ToLowerInvariant()); - if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.MD5, DatHeader.ExcludeFields))) + if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.MD5, Header.ExcludeFields))) xtw.WriteAttributeString("md5", rom.MD5.ToLowerInvariant()); #if NET_FRAMEWORK - if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.RIPEMD160, DatHeader.ExcludeFields))) + if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.RIPEMD160, Header.ExcludeFields))) xtw.WriteAttributeString("ripemd160", rom.RIPEMD160.ToLowerInvariant()); #endif - if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.SHA1, DatHeader.ExcludeFields))) + if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.SHA1, Header.ExcludeFields))) xtw.WriteAttributeString("sha1", rom.SHA1.ToLowerInvariant()); - if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.SHA256, DatHeader.ExcludeFields))) + if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.SHA256, Header.ExcludeFields))) xtw.WriteAttributeString("sha256", rom.SHA256.ToLowerInvariant()); - if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.SHA384, DatHeader.ExcludeFields))) + if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.SHA384, Header.ExcludeFields))) xtw.WriteAttributeString("sha384", rom.SHA384.ToLowerInvariant()); - if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.SHA512, DatHeader.ExcludeFields))) + if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.SHA512, Header.ExcludeFields))) xtw.WriteAttributeString("sha512", rom.SHA512.ToLowerInvariant()); - if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.Date, DatHeader.ExcludeFields))) + if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.Date, Header.ExcludeFields))) xtw.WriteAttributeString("date", rom.Date); - if (!DatHeader.ExcludeFields[(int)Field.Status] && rom.ItemStatus != ItemStatus.None) + if (!Header.ExcludeFields[(int)Field.Status] && rom.ItemStatus != ItemStatus.None) xtw.WriteAttributeString("status", rom.ItemStatus.ToString().ToLowerInvariant()); xtw.WriteEndElement(); break; case ItemType.Sample: xtw.WriteStartElement("sample"); - xtw.WriteAttributeString("name", datItem.GetField(Field.Name, DatHeader.ExcludeFields)); + xtw.WriteAttributeString("name", datItem.GetField(Field.Name, Header.ExcludeFields)); xtw.WriteEndElement(); break; } diff --git a/SabreTools.Library/DatFiles/Missfile.cs b/SabreTools.Library/DatFiles/Missfile.cs index ed5d0405..84af2fad 100644 --- a/SabreTools.Library/DatFiles/Missfile.cs +++ b/SabreTools.Library/DatFiles/Missfile.cs @@ -137,21 +137,21 @@ namespace SabreTools.Library.DatFiles ProcessItemName(datItem, false, forceRomName: false); // If we're in Romba mode, the state is consistent - if (DatHeader.Romba) + if (Header.Romba) { - sw.Write($"{datItem.GetField(Field.SHA1, DatHeader.ExcludeFields)}\n"); + sw.Write($"{datItem.GetField(Field.SHA1, Header.ExcludeFields)}\n"); } // Otherwise, use any flags else { - if (!DatHeader.UseRomName && datItem.MachineName != lastgame) + if (!Header.UseRomName && datItem.MachineName != lastgame) { - sw.Write($"{datItem.GetField(Field.MachineName, DatHeader.ExcludeFields)}\n"); + sw.Write($"{datItem.GetField(Field.MachineName, Header.ExcludeFields)}\n"); lastgame = datItem.MachineName; } - else if (DatHeader.UseRomName) + else if (Header.UseRomName) { - sw.Write($"{datItem.GetField(Field.Name, DatHeader.ExcludeFields)}\n"); + sw.Write($"{datItem.GetField(Field.Name, Header.ExcludeFields)}\n"); } } diff --git a/SabreTools.Library/DatFiles/OfflineList.cs b/SabreTools.Library/DatFiles/OfflineList.cs index 9b56e7d4..65317819 100644 --- a/SabreTools.Library/DatFiles/OfflineList.cs +++ b/SabreTools.Library/DatFiles/OfflineList.cs @@ -125,17 +125,17 @@ namespace SabreTools.Library.DatFiles { case "datname": content = reader.ReadElementContentAsString(); - DatHeader.Name = (string.IsNullOrWhiteSpace(DatHeader.Name) ? content : DatHeader.Name); + Header.Name = (string.IsNullOrWhiteSpace(Header.Name) ? content : Header.Name); superdat = superdat || content.Contains(" - SuperDAT"); if (keep && superdat) { - DatHeader.Type = (string.IsNullOrWhiteSpace(DatHeader.Type) ? "SuperDAT" : DatHeader.Type); + Header.Type = (string.IsNullOrWhiteSpace(Header.Type) ? "SuperDAT" : Header.Type); } break; case "datversion": content = reader.ReadElementContentAsString(); - DatHeader.Version = (string.IsNullOrWhiteSpace(DatHeader.Version) ? content : DatHeader.Version); + Header.Version = (string.IsNullOrWhiteSpace(Header.Version) ? content : Header.Version); break; case "system": @@ -382,7 +382,7 @@ namespace SabreTools.Library.DatFiles { case "datversionurl": content = reader.ReadElementContentAsString(); - DatHeader.Url = (string.IsNullOrWhiteSpace(DatHeader.Url) ? content : DatHeader.Url); + Header.Url = (string.IsNullOrWhiteSpace(Header.Url) ? content : Header.Url); break; case "daturl": @@ -836,7 +836,7 @@ namespace SabreTools.Library.DatFiles xtw.WriteAttributeString("noNamespaceSchemaLocation", "xsi", "datas.xsd"); xtw.WriteStartElement("configuration"); - xtw.WriteElementString("datName", DatHeader.Name); + xtw.WriteElementString("datName", Header.Name); xtw.WriteElementString("datVersion", Items.TotalCount.ToString()); xtw.WriteElementString("system", "none"); xtw.WriteElementString("screenshotsWidth", "240"); @@ -930,14 +930,14 @@ namespace SabreTools.Library.DatFiles xtw.WriteEndElement(); xtw.WriteStartElement("newDat"); - xtw.WriteElementString("datVersionURL", DatHeader.Url); + xtw.WriteElementString("datVersionURL", Header.Url); xtw.WriteStartElement("datUrl"); - xtw.WriteAttributeString("fileName", $"{DatHeader.FileName}.zip"); - xtw.WriteString(DatHeader.Url); + xtw.WriteAttributeString("fileName", $"{Header.FileName}.zip"); + xtw.WriteString(Header.Url); xtw.WriteEndElement(); - xtw.WriteElementString("imURL", DatHeader.Url); + xtw.WriteElementString("imURL", Header.Url); // End newDat xtw.WriteEndElement(); @@ -1023,13 +1023,13 @@ namespace SabreTools.Library.DatFiles xtw.WriteStartElement("game"); xtw.WriteElementString("imageNumber", "1"); xtw.WriteElementString("releaseNumber", "1"); - xtw.WriteElementString("title", datItem.GetField(Field.Name, DatHeader.ExcludeFields)); + xtw.WriteElementString("title", datItem.GetField(Field.Name, Header.ExcludeFields)); xtw.WriteElementString("saveType", "None"); if (datItem.ItemType == ItemType.Rom) { var rom = datItem as Rom; - xtw.WriteElementString("romSize", datItem.GetField(Field.Size, DatHeader.ExcludeFields)); + xtw.WriteElementString("romSize", datItem.GetField(Field.Size, Header.ExcludeFields)); } xtw.WriteElementString("publisher", "None"); @@ -1041,14 +1041,14 @@ namespace SabreTools.Library.DatFiles { var disk = datItem as Disk; xtw.WriteStartElement("files"); - if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.MD5, DatHeader.ExcludeFields))) + if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.MD5, Header.ExcludeFields))) { xtw.WriteStartElement("romMD5"); xtw.WriteAttributeString("extension", ".chd"); xtw.WriteString(disk.MD5.ToUpperInvariant()); xtw.WriteEndElement(); } - else if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.SHA1, DatHeader.ExcludeFields))) + else if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.SHA1, Header.ExcludeFields))) { xtw.WriteStartElement("romSHA1"); xtw.WriteAttributeString("extension", ".chd"); @@ -1065,21 +1065,21 @@ namespace SabreTools.Library.DatFiles string tempext = "." + PathExtensions.GetNormalizedExtension(rom.Name); xtw.WriteStartElement("files"); - if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.CRC, DatHeader.ExcludeFields))) + if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.CRC, Header.ExcludeFields))) { xtw.WriteStartElement("romCRC"); xtw.WriteAttributeString("extension", tempext); xtw.WriteString(rom.CRC.ToUpperInvariant()); xtw.WriteEndElement(); } - else if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.MD5, DatHeader.ExcludeFields))) + else if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.MD5, Header.ExcludeFields))) { xtw.WriteStartElement("romMD5"); xtw.WriteAttributeString("extension", tempext); xtw.WriteString(rom.MD5.ToUpperInvariant()); xtw.WriteEndElement(); } - else if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.SHA1, DatHeader.ExcludeFields))) + else if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.SHA1, Header.ExcludeFields))) { xtw.WriteStartElement("romSHA1"); xtw.WriteAttributeString("extension", tempext); diff --git a/SabreTools.Library/DatFiles/OpenMSX.cs b/SabreTools.Library/DatFiles/OpenMSX.cs index d25814e7..90115956 100644 --- a/SabreTools.Library/DatFiles/OpenMSX.cs +++ b/SabreTools.Library/DatFiles/OpenMSX.cs @@ -62,8 +62,8 @@ namespace SabreTools.Library.DatFiles switch (xtr.Name) { case "softwaredb": - DatHeader.Name = (string.IsNullOrWhiteSpace(DatHeader.Name) ? "openMSX Software List" : DatHeader.Name); - DatHeader.Description = (string.IsNullOrWhiteSpace(DatHeader.Description) ? DatHeader.Name : DatHeader.Description); + Header.Name = (string.IsNullOrWhiteSpace(Header.Name) ? "openMSX Software List" : Header.Name); + Header.Description = (string.IsNullOrWhiteSpace(Header.Description) ? Header.Name : Header.Description); // string timestamp = xtr.GetAttribute("timestamp"); // CDATA xtr.Read(); break; @@ -618,11 +618,11 @@ namespace SabreTools.Library.DatFiles // Build the state based on excluded fields xtw.WriteStartElement("software"); - xtw.WriteElementString("title", datItem.GetField(Field.MachineName, DatHeader.ExcludeFields)); + xtw.WriteElementString("title", datItem.GetField(Field.MachineName, Header.ExcludeFields)); //xtw.WriteElementString("genmsxid", msxid); //xtw.WriteElementString("system", system)); - xtw.WriteElementString("company", datItem.GetField(Field.Manufacturer, DatHeader.ExcludeFields)); - xtw.WriteElementString("year", datItem.GetField(Field.Year, DatHeader.ExcludeFields)); + xtw.WriteElementString("company", datItem.GetField(Field.Manufacturer, Header.ExcludeFields)); + xtw.WriteElementString("year", datItem.GetField(Field.Year, Header.ExcludeFields)); //xtw.WriteElementString("country", country); xtw.Flush(); @@ -690,10 +690,10 @@ namespace SabreTools.Library.DatFiles //xtw.WriteEndElement(); xtw.WriteStartElement("rom"); - if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.Offset, DatHeader.ExcludeFields))) + if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.Offset, Header.ExcludeFields))) xtw.WriteElementString("start", rom.Offset); //xtw.WriteElementString("type", "Normal"); - xtw.WriteElementString("hash", rom.GetField(Field.SHA1, DatHeader.ExcludeFields).ToLowerInvariant()); + xtw.WriteElementString("hash", rom.GetField(Field.SHA1, Header.ExcludeFields).ToLowerInvariant()); //xtw.WriteElementString("remark", ""); // End rom diff --git a/SabreTools.Library/DatFiles/RomCenter.cs b/SabreTools.Library/DatFiles/RomCenter.cs index e48f044c..bcb99a5b 100644 --- a/SabreTools.Library/DatFiles/RomCenter.cs +++ b/SabreTools.Library/DatFiles/RomCenter.cs @@ -130,37 +130,37 @@ namespace SabreTools.Library.DatFiles switch (kvp?.Key.ToLowerInvariant()) { case "author": - DatHeader.Author = string.IsNullOrWhiteSpace(DatHeader.Author) ? kvp?.Value : DatHeader.Author; + Header.Author = string.IsNullOrWhiteSpace(Header.Author) ? kvp?.Value : Header.Author; reader.ReadNextLine(); break; case "version": - DatHeader.Version = string.IsNullOrWhiteSpace(DatHeader.Version) ? kvp?.Value : DatHeader.Version; + Header.Version = string.IsNullOrWhiteSpace(Header.Version) ? kvp?.Value : Header.Version; reader.ReadNextLine(); break; case "email": - DatHeader.Email = string.IsNullOrWhiteSpace(DatHeader.Email) ? kvp?.Value : DatHeader.Email; + Header.Email = string.IsNullOrWhiteSpace(Header.Email) ? kvp?.Value : Header.Email; reader.ReadNextLine(); break; case "homepage": - DatHeader.Homepage = string.IsNullOrWhiteSpace(DatHeader.Homepage) ? kvp?.Value : DatHeader.Homepage; + Header.Homepage = string.IsNullOrWhiteSpace(Header.Homepage) ? kvp?.Value : Header.Homepage; reader.ReadNextLine(); break; case "url": - DatHeader.Url = string.IsNullOrWhiteSpace(DatHeader.Url) ? kvp?.Value : DatHeader.Url; + Header.Url = string.IsNullOrWhiteSpace(Header.Url) ? kvp?.Value : Header.Url; reader.ReadNextLine(); break; case "date": - DatHeader.Date = string.IsNullOrWhiteSpace(DatHeader.Date) ? kvp?.Value : DatHeader.Date; + Header.Date = string.IsNullOrWhiteSpace(Header.Date) ? kvp?.Value : Header.Date; reader.ReadNextLine(); break; case "comment": - DatHeader.Comment = string.IsNullOrWhiteSpace(DatHeader.Comment) ? kvp?.Value : DatHeader.Comment; + Header.Comment = string.IsNullOrWhiteSpace(Header.Comment) ? kvp?.Value : Header.Comment; reader.ReadNextLine(); break; @@ -213,15 +213,15 @@ namespace SabreTools.Library.DatFiles break; case "split": - if (DatHeader.ForceMerging == ForceMerging.None && kvp?.Value == "1") - DatHeader.ForceMerging = ForceMerging.Split; + if (Header.ForceMerging == ForceMerging.None && kvp?.Value == "1") + Header.ForceMerging = ForceMerging.Split; reader.ReadNextLine(); break; case "merge": - if (DatHeader.ForceMerging == ForceMerging.None && kvp?.Value == "1") - DatHeader.ForceMerging = ForceMerging.Merged; + if (Header.ForceMerging == ForceMerging.None && kvp?.Value == "1") + Header.ForceMerging = ForceMerging.Merged; reader.ReadNextLine(); break; @@ -267,12 +267,12 @@ namespace SabreTools.Library.DatFiles switch (kvp?.Key.ToLowerInvariant()) { case "refname": - DatHeader.Name = string.IsNullOrWhiteSpace(DatHeader.Name) ? kvp?.Value : DatHeader.Name; + Header.Name = string.IsNullOrWhiteSpace(Header.Name) ? kvp?.Value : Header.Name; reader.ReadNextLine(); break; case "version": - DatHeader.Description = string.IsNullOrWhiteSpace(DatHeader.Description) ? kvp?.Value : DatHeader.Description; + Header.Description = string.IsNullOrWhiteSpace(Header.Description) ? kvp?.Value : Header.Description; reader.ReadNextLine(); break; @@ -462,18 +462,18 @@ namespace SabreTools.Library.DatFiles try { iw.WriteSection("CREDITS"); - iw.WriteKeyValuePair("author", DatHeader.Author); - iw.WriteKeyValuePair("version", DatHeader.Version); - iw.WriteKeyValuePair("comment", DatHeader.Comment); + iw.WriteKeyValuePair("author", Header.Author); + iw.WriteKeyValuePair("version", Header.Version); + iw.WriteKeyValuePair("comment", Header.Comment); iw.WriteSection("DAT"); iw.WriteKeyValuePair("version", "2.50"); - iw.WriteKeyValuePair("split", DatHeader.ForceMerging == ForceMerging.Split ? "1" : "0"); - iw.WriteKeyValuePair("merge", DatHeader.ForceMerging == ForceMerging.Full || DatHeader.ForceMerging == ForceMerging.Merged ? "1" : "0"); + iw.WriteKeyValuePair("split", Header.ForceMerging == ForceMerging.Split ? "1" : "0"); + iw.WriteKeyValuePair("merge", Header.ForceMerging == ForceMerging.Full || Header.ForceMerging == ForceMerging.Merged ? "1" : "0"); iw.WriteSection("EMULATOR"); - iw.WriteKeyValuePair("refname", DatHeader.Name); - iw.WriteKeyValuePair("version", DatHeader.Description); + iw.WriteKeyValuePair("refname", Header.Name); + iw.WriteKeyValuePair("version", Header.Description); iw.WriteSection("GAMES"); @@ -520,18 +520,18 @@ namespace SabreTools.Library.DatFiles ProcessItemName(datItem, true); // Build the state based on excluded fields - iw.WriteString($"¬{datItem.GetField(Field.CloneOf, DatHeader.ExcludeFields)}"); - iw.WriteString($"¬{datItem.GetField(Field.CloneOf, DatHeader.ExcludeFields)}"); - iw.WriteString($"¬{datItem.GetField(Field.MachineName, DatHeader.ExcludeFields)}"); + iw.WriteString($"¬{datItem.GetField(Field.CloneOf, Header.ExcludeFields)}"); + iw.WriteString($"¬{datItem.GetField(Field.CloneOf, Header.ExcludeFields)}"); + iw.WriteString($"¬{datItem.GetField(Field.MachineName, Header.ExcludeFields)}"); if (string.IsNullOrWhiteSpace(datItem.MachineDescription)) - iw.WriteString($"¬{datItem.GetField(Field.MachineName, DatHeader.ExcludeFields)}"); + iw.WriteString($"¬{datItem.GetField(Field.MachineName, Header.ExcludeFields)}"); else - iw.WriteString($"¬{datItem.GetField(Field.Description, DatHeader.ExcludeFields)}"); - iw.WriteString($"¬{datItem.GetField(Field.Name, DatHeader.ExcludeFields)}"); - iw.WriteString($"¬{datItem.GetField(Field.CRC, DatHeader.ExcludeFields)}"); - iw.WriteString($"¬{datItem.GetField(Field.Size, DatHeader.ExcludeFields)}"); - iw.WriteString($"¬{datItem.GetField(Field.RomOf, DatHeader.ExcludeFields)}"); - iw.WriteString($"¬{datItem.GetField(Field.Merge, DatHeader.ExcludeFields)}"); + iw.WriteString($"¬{datItem.GetField(Field.Description, Header.ExcludeFields)}"); + iw.WriteString($"¬{datItem.GetField(Field.Name, Header.ExcludeFields)}"); + iw.WriteString($"¬{datItem.GetField(Field.CRC, Header.ExcludeFields)}"); + iw.WriteString($"¬{datItem.GetField(Field.Size, Header.ExcludeFields)}"); + iw.WriteString($"¬{datItem.GetField(Field.RomOf, Header.ExcludeFields)}"); + iw.WriteString($"¬{datItem.GetField(Field.Merge, Header.ExcludeFields)}"); iw.WriteString("¬"); iw.WriteLine(); diff --git a/SabreTools.Library/DatFiles/SabreDat.cs b/SabreTools.Library/DatFiles/SabreDat.cs index 54906f39..c79cd780 100644 --- a/SabreTools.Library/DatFiles/SabreDat.cs +++ b/SabreTools.Library/DatFiles/SabreDat.cs @@ -83,7 +83,7 @@ namespace SabreTools.Library.DatFiles { parent.RemoveAt(parent.Count - 1); if (keep && parentcount > 1) - DatHeader.Type = (string.IsNullOrWhiteSpace(DatHeader.Type) ? "SuperDAT" : DatHeader.Type); + Header.Type = (string.IsNullOrWhiteSpace(Header.Type) ? "SuperDAT" : Header.Type); } } @@ -157,50 +157,50 @@ namespace SabreTools.Library.DatFiles { case "name": content = reader.ReadElementContentAsString(); ; - DatHeader.Name = (string.IsNullOrWhiteSpace(DatHeader.Name) ? content : DatHeader.Name); + Header.Name = (string.IsNullOrWhiteSpace(Header.Name) ? content : Header.Name); superdat = superdat || content.Contains(" - SuperDAT"); if (keep && superdat) { - DatHeader.Type = (string.IsNullOrWhiteSpace(DatHeader.Type) ? "SuperDAT" : DatHeader.Type); + Header.Type = (string.IsNullOrWhiteSpace(Header.Type) ? "SuperDAT" : Header.Type); } break; case "description": content = reader.ReadElementContentAsString(); - DatHeader.Description = (string.IsNullOrWhiteSpace(DatHeader.Description) ? content : DatHeader.Description); + Header.Description = (string.IsNullOrWhiteSpace(Header.Description) ? content : Header.Description); break; case "rootdir": content = reader.ReadElementContentAsString(); - DatHeader.RootDir = (string.IsNullOrWhiteSpace(DatHeader.RootDir) ? content : DatHeader.RootDir); + Header.RootDir = (string.IsNullOrWhiteSpace(Header.RootDir) ? content : Header.RootDir); break; case "category": content = reader.ReadElementContentAsString(); - DatHeader.Category = (string.IsNullOrWhiteSpace(DatHeader.Category) ? content : DatHeader.Category); + Header.Category = (string.IsNullOrWhiteSpace(Header.Category) ? content : Header.Category); break; case "version": content = reader.ReadElementContentAsString(); - DatHeader.Version = (string.IsNullOrWhiteSpace(DatHeader.Version) ? content : DatHeader.Version); + Header.Version = (string.IsNullOrWhiteSpace(Header.Version) ? content : Header.Version); break; case "date": content = reader.ReadElementContentAsString(); - DatHeader.Date = (string.IsNullOrWhiteSpace(DatHeader.Date) ? content.Replace(".", "/") : DatHeader.Date); + Header.Date = (string.IsNullOrWhiteSpace(Header.Date) ? content.Replace(".", "/") : Header.Date); break; case "author": content = reader.ReadElementContentAsString(); - DatHeader.Author = (string.IsNullOrWhiteSpace(DatHeader.Author) ? content : DatHeader.Author); - DatHeader.Email = (string.IsNullOrWhiteSpace(DatHeader.Email) ? reader.GetAttribute("email") : DatHeader.Email); - DatHeader.Homepage = (string.IsNullOrWhiteSpace(DatHeader.Homepage) ? reader.GetAttribute("homepage") : DatHeader.Homepage); - DatHeader.Url = (string.IsNullOrWhiteSpace(DatHeader.Url) ? reader.GetAttribute("url") : DatHeader.Url); + Header.Author = (string.IsNullOrWhiteSpace(Header.Author) ? content : Header.Author); + Header.Email = (string.IsNullOrWhiteSpace(Header.Email) ? reader.GetAttribute("email") : Header.Email); + Header.Homepage = (string.IsNullOrWhiteSpace(Header.Homepage) ? reader.GetAttribute("homepage") : Header.Homepage); + Header.Url = (string.IsNullOrWhiteSpace(Header.Url) ? reader.GetAttribute("url") : Header.Url); break; case "comment": content = reader.ReadElementContentAsString(); - DatHeader.Comment = (string.IsNullOrWhiteSpace(DatHeader.Comment) ? content : DatHeader.Comment); + Header.Comment = (string.IsNullOrWhiteSpace(Header.Comment) ? content : Header.Comment); break; case "flags": @@ -278,7 +278,7 @@ namespace SabreTools.Library.DatFiles { parent.RemoveAt(parent.Count - 1); if (keep && parentcount > 1) - DatHeader.Type = (string.IsNullOrWhiteSpace(DatHeader.Type) ? "SuperDAT" : DatHeader.Type); + Header.Type = (string.IsNullOrWhiteSpace(Header.Type) ? "SuperDAT" : Header.Type); } } @@ -493,25 +493,25 @@ namespace SabreTools.Library.DatFiles switch (reader.GetAttribute("name").ToLowerInvariant()) { case "type": - DatHeader.Type = (string.IsNullOrWhiteSpace(DatHeader.Type) ? content : DatHeader.Type); + Header.Type = (string.IsNullOrWhiteSpace(Header.Type) ? content : Header.Type); superdat = superdat || content.Contains("SuperDAT"); break; case "forcemerging": - if (DatHeader.ForceMerging == ForceMerging.None) - DatHeader.ForceMerging = content.AsForceMerging(); + if (Header.ForceMerging == ForceMerging.None) + Header.ForceMerging = content.AsForceMerging(); break; case "forcenodump": - if (DatHeader.ForceNodump == ForceNodump.None) - DatHeader.ForceNodump = content.AsForceNodump(); + if (Header.ForceNodump == ForceNodump.None) + Header.ForceNodump = content.AsForceNodump(); break; case "forcepacking": - if (DatHeader.ForcePacking == ForcePacking.None) - DatHeader.ForcePacking = content.AsForcePacking(); + if (Header.ForcePacking == ForcePacking.None) + Header.ForcePacking = content.AsForcePacking(); break; } @@ -645,34 +645,34 @@ namespace SabreTools.Library.DatFiles xtw.WriteStartElement("header"); - xtw.WriteElementString("name", DatHeader.Name); - xtw.WriteElementString("description", DatHeader.Description); - if (!string.IsNullOrWhiteSpace(DatHeader.RootDir)) - xtw.WriteElementString("rootdir", DatHeader.RootDir); - if (!string.IsNullOrWhiteSpace(DatHeader.Category)) - xtw.WriteElementString("category", DatHeader.Category); - xtw.WriteElementString("version", DatHeader.Version); - if (!string.IsNullOrWhiteSpace(DatHeader.Date)) - xtw.WriteElementString("date", DatHeader.Date); - xtw.WriteElementString("author", DatHeader.Author); - if (!string.IsNullOrWhiteSpace(DatHeader.Comment)) - xtw.WriteElementString("comment", DatHeader.Comment); - if (!string.IsNullOrWhiteSpace(DatHeader.Type) - || DatHeader.ForcePacking != ForcePacking.None - || DatHeader.ForceMerging != ForceMerging.None - || DatHeader.ForceNodump != ForceNodump.None) + xtw.WriteElementString("name", Header.Name); + xtw.WriteElementString("description", Header.Description); + if (!string.IsNullOrWhiteSpace(Header.RootDir)) + xtw.WriteElementString("rootdir", Header.RootDir); + if (!string.IsNullOrWhiteSpace(Header.Category)) + xtw.WriteElementString("category", Header.Category); + xtw.WriteElementString("version", Header.Version); + if (!string.IsNullOrWhiteSpace(Header.Date)) + xtw.WriteElementString("date", Header.Date); + xtw.WriteElementString("author", Header.Author); + if (!string.IsNullOrWhiteSpace(Header.Comment)) + xtw.WriteElementString("comment", Header.Comment); + if (!string.IsNullOrWhiteSpace(Header.Type) + || Header.ForcePacking != ForcePacking.None + || Header.ForceMerging != ForceMerging.None + || Header.ForceNodump != ForceNodump.None) { xtw.WriteStartElement("flags"); - if (!string.IsNullOrWhiteSpace(DatHeader.Type)) + if (!string.IsNullOrWhiteSpace(Header.Type)) { xtw.WriteStartElement("flag"); xtw.WriteAttributeString("name", "type"); - xtw.WriteAttributeString("value", DatHeader.Type); + xtw.WriteAttributeString("value", Header.Type); xtw.WriteEndElement(); } - switch (DatHeader.ForcePacking) + switch (Header.ForcePacking) { case ForcePacking.Unzip: xtw.WriteStartElement("flag"); @@ -688,7 +688,7 @@ namespace SabreTools.Library.DatFiles break; } - switch (DatHeader.ForceMerging) + switch (Header.ForceMerging) { case ForceMerging.Full: xtw.WriteStartElement("flag"); @@ -716,7 +716,7 @@ namespace SabreTools.Library.DatFiles break; } - switch (DatHeader.ForceNodump) + switch (Header.ForceNodump) { case ForceNodump.Ignore: xtw.WriteStartElement("flag"); @@ -778,8 +778,8 @@ namespace SabreTools.Library.DatFiles for (int i = (last == -1 ? 0 : last); i < newsplit.Count; i++) { xtw.WriteStartElement("directory"); - xtw.WriteAttributeString("name", !DatHeader.ExcludeFields[(int)Field.MachineName] ? newsplit[i] : string.Empty); - xtw.WriteAttributeString("description", !DatHeader.ExcludeFields[(int)Field.MachineName] ? newsplit[i] : string.Empty); + xtw.WriteAttributeString("name", !Header.ExcludeFields[(int)Field.MachineName] ? newsplit[i] : string.Empty); + xtw.WriteAttributeString("description", !Header.ExcludeFields[(int)Field.MachineName] ? newsplit[i] : string.Empty); } depth = depth - (last == -1 ? 0 : last) + newsplit.Count; @@ -869,7 +869,7 @@ namespace SabreTools.Library.DatFiles case ItemType.Archive: xtw.WriteStartElement("file"); xtw.WriteAttributeString("type", "archive"); - xtw.WriteAttributeString("name", datItem.GetField(Field.Name, DatHeader.ExcludeFields)); + xtw.WriteAttributeString("name", datItem.GetField(Field.Name, Header.ExcludeFields)); xtw.WriteEndElement(); break; @@ -877,10 +877,10 @@ namespace SabreTools.Library.DatFiles var biosSet = datItem as BiosSet; xtw.WriteStartElement("file"); xtw.WriteAttributeString("type", "biosset"); - xtw.WriteAttributeString("name", biosSet.GetField(Field.Name, DatHeader.ExcludeFields)); - if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.BiosDescription, DatHeader.ExcludeFields))) + xtw.WriteAttributeString("name", biosSet.GetField(Field.Name, Header.ExcludeFields)); + if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.BiosDescription, Header.ExcludeFields))) xtw.WriteAttributeString("description", biosSet.Description); - if (!DatHeader.ExcludeFields[(int)Field.Default] && biosSet.Default != null) + if (!Header.ExcludeFields[(int)Field.Default] && biosSet.Default != null) xtw.WriteAttributeString("default", biosSet.Default.ToString().ToLowerInvariant()); xtw.WriteEndElement(); break; @@ -889,22 +889,22 @@ namespace SabreTools.Library.DatFiles var disk = datItem as Disk; xtw.WriteStartElement("file"); xtw.WriteAttributeString("type", "disk"); - xtw.WriteAttributeString("name", disk.GetField(Field.Name, DatHeader.ExcludeFields)); - if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.MD5, DatHeader.ExcludeFields))) + xtw.WriteAttributeString("name", disk.GetField(Field.Name, Header.ExcludeFields)); + if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.MD5, Header.ExcludeFields))) xtw.WriteAttributeString("md5", disk.MD5.ToLowerInvariant()); #if NET_FRAMEWORK - if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.RIPEMD160, DatHeader.ExcludeFields))) + if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.RIPEMD160, Header.ExcludeFields))) xtw.WriteAttributeString("ripemd160", disk.RIPEMD160.ToLowerInvariant()); #endif - if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.SHA1, DatHeader.ExcludeFields))) + if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.SHA1, Header.ExcludeFields))) xtw.WriteAttributeString("sha1", disk.SHA1.ToLowerInvariant()); - if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.SHA256, DatHeader.ExcludeFields))) + if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.SHA256, Header.ExcludeFields))) xtw.WriteAttributeString("sha256", disk.SHA256.ToLowerInvariant()); - if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.SHA384, DatHeader.ExcludeFields))) + if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.SHA384, Header.ExcludeFields))) xtw.WriteAttributeString("sha384", disk.SHA384.ToLowerInvariant()); - if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.SHA512, DatHeader.ExcludeFields))) + if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.SHA512, Header.ExcludeFields))) xtw.WriteAttributeString("sha512", disk.SHA512.ToLowerInvariant()); - if (!DatHeader.ExcludeFields[(int)Field.Status] && disk.ItemStatus != ItemStatus.None) + if (!Header.ExcludeFields[(int)Field.Status] && disk.ItemStatus != ItemStatus.None) { xtw.WriteStartElement("flags"); @@ -923,14 +923,14 @@ namespace SabreTools.Library.DatFiles var release = datItem as Release; xtw.WriteStartElement("file"); xtw.WriteAttributeString("type", "release"); - xtw.WriteAttributeString("name", release.GetField(Field.Name, DatHeader.ExcludeFields)); - if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.Region, DatHeader.ExcludeFields))) + xtw.WriteAttributeString("name", release.GetField(Field.Name, Header.ExcludeFields)); + if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.Region, Header.ExcludeFields))) xtw.WriteAttributeString("region", release.Region); - if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.Language, DatHeader.ExcludeFields))) + if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.Language, Header.ExcludeFields))) xtw.WriteAttributeString("language", release.Language); - if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.Date, DatHeader.ExcludeFields))) + if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.Date, Header.ExcludeFields))) xtw.WriteAttributeString("date", release.Date); - if (!DatHeader.ExcludeFields[(int)Field.Default] && release.Default != null) + if (!Header.ExcludeFields[(int)Field.Default] && release.Default != null) xtw.WriteAttributeString("default", release.Default.ToString().ToLowerInvariant()); xtw.WriteEndElement(); break; @@ -939,28 +939,28 @@ namespace SabreTools.Library.DatFiles var rom = datItem as Rom; xtw.WriteStartElement("file"); xtw.WriteAttributeString("type", "rom"); - xtw.WriteAttributeString("name", rom.GetField(Field.Name, DatHeader.ExcludeFields)); - if (!DatHeader.ExcludeFields[(int)Field.Size] && rom.Size != -1) + xtw.WriteAttributeString("name", rom.GetField(Field.Name, Header.ExcludeFields)); + if (!Header.ExcludeFields[(int)Field.Size] && rom.Size != -1) xtw.WriteAttributeString("size", rom.Size.ToString()); - if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.CRC, DatHeader.ExcludeFields))) + if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.CRC, Header.ExcludeFields))) xtw.WriteAttributeString("crc", rom.CRC.ToLowerInvariant()); - if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.MD5, DatHeader.ExcludeFields))) + if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.MD5, Header.ExcludeFields))) xtw.WriteAttributeString("md5", rom.MD5.ToLowerInvariant()); #if NET_FRAMEWORK - if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.RIPEMD160, DatHeader.ExcludeFields))) + if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.RIPEMD160, Header.ExcludeFields))) xtw.WriteAttributeString("ripemd160", rom.RIPEMD160.ToLowerInvariant()); #endif - if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.SHA1, DatHeader.ExcludeFields))) + if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.SHA1, Header.ExcludeFields))) xtw.WriteAttributeString("sha1", rom.SHA1.ToLowerInvariant()); - if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.SHA256, DatHeader.ExcludeFields))) + if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.SHA256, Header.ExcludeFields))) xtw.WriteAttributeString("sha256", rom.SHA256.ToLowerInvariant()); - if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.SHA384, DatHeader.ExcludeFields))) + if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.SHA384, Header.ExcludeFields))) xtw.WriteAttributeString("sha384", rom.SHA384.ToLowerInvariant()); - if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.SHA512, DatHeader.ExcludeFields))) + if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.SHA512, Header.ExcludeFields))) xtw.WriteAttributeString("sha512", rom.SHA512.ToLowerInvariant()); - if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.Date, DatHeader.ExcludeFields))) + if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.Date, Header.ExcludeFields))) xtw.WriteAttributeString("date", rom.Date); - if (!DatHeader.ExcludeFields[(int)Field.Status] && rom.ItemStatus != ItemStatus.None) + if (!Header.ExcludeFields[(int)Field.Status] && rom.ItemStatus != ItemStatus.None) { xtw.WriteStartElement("flags"); @@ -978,7 +978,7 @@ namespace SabreTools.Library.DatFiles case ItemType.Sample: xtw.WriteStartElement("file"); xtw.WriteAttributeString("type", "sample"); - xtw.WriteAttributeString("name", datItem.GetField(Field.Name, DatHeader.ExcludeFields)); + xtw.WriteAttributeString("name", datItem.GetField(Field.Name, Header.ExcludeFields)); xtw.WriteEndElement(); break; } diff --git a/SabreTools.Library/DatFiles/SeparatedValue.cs b/SabreTools.Library/DatFiles/SeparatedValue.cs index 486961d7..cbb1f50c 100644 --- a/SabreTools.Library/DatFiles/SeparatedValue.cs +++ b/SabreTools.Library/DatFiles/SeparatedValue.cs @@ -118,71 +118,71 @@ namespace SabreTools.Library.DatFiles #region DatFile case "DatFile.FileName": - DatHeader.FileName = (string.IsNullOrWhiteSpace(DatHeader.FileName) ? value : DatHeader.FileName); + Header.FileName = (string.IsNullOrWhiteSpace(Header.FileName) ? value : Header.FileName); break; case "DatFile.Name": - DatHeader.Name = (string.IsNullOrWhiteSpace(DatHeader.Name) ? value : DatHeader.Name); + Header.Name = (string.IsNullOrWhiteSpace(Header.Name) ? value : Header.Name); break; case "DatFile.Description": - DatHeader.Description = (string.IsNullOrWhiteSpace(DatHeader.Description) ? value : DatHeader.Description); + Header.Description = (string.IsNullOrWhiteSpace(Header.Description) ? value : Header.Description); break; case "DatFile.RootDir": - DatHeader.RootDir = (string.IsNullOrWhiteSpace(DatHeader.RootDir) ? value : DatHeader.RootDir); + Header.RootDir = (string.IsNullOrWhiteSpace(Header.RootDir) ? value : Header.RootDir); break; case "DatFile.Category": - DatHeader.Category = (string.IsNullOrWhiteSpace(DatHeader.Category) ? value : DatHeader.Category); + Header.Category = (string.IsNullOrWhiteSpace(Header.Category) ? value : Header.Category); break; case "DatFile.Version": - DatHeader.Version = (string.IsNullOrWhiteSpace(DatHeader.Version) ? value : DatHeader.Version); + Header.Version = (string.IsNullOrWhiteSpace(Header.Version) ? value : Header.Version); break; case "DatFile.Date": - DatHeader.Date = (string.IsNullOrWhiteSpace(DatHeader.Date) ? value : DatHeader.Date); + Header.Date = (string.IsNullOrWhiteSpace(Header.Date) ? value : Header.Date); break; case "DatFile.Author": - DatHeader.Author = (string.IsNullOrWhiteSpace(DatHeader.Author) ? value : DatHeader.Author); + Header.Author = (string.IsNullOrWhiteSpace(Header.Author) ? value : Header.Author); break; case "DatFile.Email": - DatHeader.Email = (string.IsNullOrWhiteSpace(DatHeader.Email) ? value : DatHeader.Email); + Header.Email = (string.IsNullOrWhiteSpace(Header.Email) ? value : Header.Email); break; case "DatFile.Homepage": - DatHeader.Homepage = (string.IsNullOrWhiteSpace(DatHeader.Homepage) ? value : DatHeader.Homepage); + Header.Homepage = (string.IsNullOrWhiteSpace(Header.Homepage) ? value : Header.Homepage); break; case "DatFile.Url": - DatHeader.Url = (string.IsNullOrWhiteSpace(DatHeader.Url) ? value : DatHeader.Url); + Header.Url = (string.IsNullOrWhiteSpace(Header.Url) ? value : Header.Url); break; case "DatFile.Comment": - DatHeader.Comment = (string.IsNullOrWhiteSpace(DatHeader.Comment) ? value : DatHeader.Comment); + Header.Comment = (string.IsNullOrWhiteSpace(Header.Comment) ? value : Header.Comment); break; case "DatFile.Header": - DatHeader.Header = (string.IsNullOrWhiteSpace(DatHeader.Header) ? value : DatHeader.Header); + Header.Header = (string.IsNullOrWhiteSpace(Header.Header) ? value : Header.Header); break; case "DatFile.Type": - DatHeader.Type = (string.IsNullOrWhiteSpace(DatHeader.Type) ? value : DatHeader.Type); + Header.Type = (string.IsNullOrWhiteSpace(Header.Type) ? value : Header.Type); break; case "DatFile.ForceMerging": - DatHeader.ForceMerging = (DatHeader.ForceMerging == ForceMerging.None ? value.AsForceMerging() : DatHeader.ForceMerging); + Header.ForceMerging = (Header.ForceMerging == ForceMerging.None ? value.AsForceMerging() : Header.ForceMerging); break; case "DatFile.ForceNodump": - DatHeader.ForceNodump = (DatHeader.ForceNodump == ForceNodump.None ? value.AsForceNodump() : DatHeader.ForceNodump); + Header.ForceNodump = (Header.ForceNodump == ForceNodump.None ? value.AsForceNodump() : Header.ForceNodump); break; case "DatFile.ForcePacking": - DatHeader.ForcePacking = (DatHeader.ForcePacking == ForcePacking.None ? value.AsForcePacking() : DatHeader.ForcePacking); + Header.ForcePacking = (Header.ForcePacking == ForcePacking.None ? value.AsForcePacking() : Header.ForcePacking); break; #endregion @@ -992,11 +992,11 @@ namespace SabreTools.Library.DatFiles // Build the state based on excluded fields // TODO: Can we have some way of saying what fields to write out? Support for read extends to all fields now string[] fields = new string[14]; // 17; - fields[0] = DatHeader.FileName; - fields[1] = DatHeader.Name; - fields[2] = DatHeader.Description; - fields[3] = datItem.GetField(Field.MachineName, DatHeader.ExcludeFields); - fields[4] = datItem.GetField(Field.Description, DatHeader.ExcludeFields); + fields[0] = Header.FileName; + fields[1] = Header.Name; + fields[2] = Header.Description; + fields[3] = datItem.GetField(Field.MachineName, Header.ExcludeFields); + fields[4] = datItem.GetField(Field.Description, Header.ExcludeFields); switch (datItem.ItemType) { @@ -1004,32 +1004,32 @@ namespace SabreTools.Library.DatFiles var disk = datItem as Disk; fields[5] = "disk"; fields[6] = string.Empty; - fields[7] = disk.GetField(Field.Name, DatHeader.ExcludeFields); + fields[7] = disk.GetField(Field.Name, Header.ExcludeFields); fields[8] = string.Empty; fields[9] = string.Empty; - fields[10] = disk.GetField(Field.MD5, DatHeader.ExcludeFields).ToLowerInvariant(); + fields[10] = disk.GetField(Field.MD5, Header.ExcludeFields).ToLowerInvariant(); //fields[11] = disk.GetField(Field.RIPEMD160, DatHeader.ExcludeFields).ToLowerInvariant(); - fields[11] = disk.GetField(Field.SHA1, DatHeader.ExcludeFields).ToLowerInvariant(); - fields[12] = disk.GetField(Field.SHA256, DatHeader.ExcludeFields).ToLowerInvariant(); + fields[11] = disk.GetField(Field.SHA1, Header.ExcludeFields).ToLowerInvariant(); + fields[12] = disk.GetField(Field.SHA256, Header.ExcludeFields).ToLowerInvariant(); //fields[13] = disk.GetField(Field.SHA384, DatHeader.ExcludeFields).ToLowerInvariant(); //fields[14] = disk.GetField(Field.SHA512, DatHeader.ExcludeFields).ToLowerInvariant(); - fields[13] = disk.GetField(Field.Status, DatHeader.ExcludeFields); + fields[13] = disk.GetField(Field.Status, Header.ExcludeFields); break; case ItemType.Rom: var rom = datItem as Rom; fields[5] = "rom"; - fields[6] = rom.GetField(Field.Name, DatHeader.ExcludeFields); + fields[6] = rom.GetField(Field.Name, Header.ExcludeFields); fields[7] = string.Empty; - fields[8] = rom.GetField(Field.Size, DatHeader.ExcludeFields); - fields[9] = rom.GetField(Field.CRC, DatHeader.ExcludeFields).ToLowerInvariant(); - fields[10] = rom.GetField(Field.MD5, DatHeader.ExcludeFields).ToLowerInvariant(); + fields[8] = rom.GetField(Field.Size, Header.ExcludeFields); + fields[9] = rom.GetField(Field.CRC, Header.ExcludeFields).ToLowerInvariant(); + fields[10] = rom.GetField(Field.MD5, Header.ExcludeFields).ToLowerInvariant(); //fields[11] = rom.GetField(Field.RIPEMD160, DatHeader.ExcludeFields).ToLowerInvariant(); - fields[11] = rom.GetField(Field.SHA1, DatHeader.ExcludeFields).ToLowerInvariant(); - fields[12] = rom.GetField(Field.SHA256, DatHeader.ExcludeFields).ToLowerInvariant(); + fields[11] = rom.GetField(Field.SHA1, Header.ExcludeFields).ToLowerInvariant(); + fields[12] = rom.GetField(Field.SHA256, Header.ExcludeFields).ToLowerInvariant(); //fields[13] = rom.GetField(Field.SHA384, DatHeader.ExcludeFields).ToLowerInvariant(); //fields[14] = rom.GetField(Field.SHA512, DatHeader.ExcludeFields).ToLowerInvariant(); - fields[13] = rom.GetField(Field.Status, DatHeader.ExcludeFields); + fields[13] = rom.GetField(Field.Status, Header.ExcludeFields); break; } diff --git a/SabreTools.Library/DatFiles/SoftwareList.cs b/SabreTools.Library/DatFiles/SoftwareList.cs index 72833921..bbefeb2c 100644 --- a/SabreTools.Library/DatFiles/SoftwareList.cs +++ b/SabreTools.Library/DatFiles/SoftwareList.cs @@ -62,16 +62,16 @@ namespace SabreTools.Library.DatFiles switch (xtr.Name) { case "softwarelist": - DatHeader.Name = (string.IsNullOrWhiteSpace(DatHeader.Name) ? xtr.GetAttribute("name") ?? string.Empty : DatHeader.Name); - DatHeader.Description = (string.IsNullOrWhiteSpace(DatHeader.Description) ? xtr.GetAttribute("description") ?? string.Empty : DatHeader.Description); - if (DatHeader.ForceMerging == ForceMerging.None) - DatHeader.ForceMerging = xtr.GetAttribute("forcemerging").AsForceMerging(); + Header.Name = (string.IsNullOrWhiteSpace(Header.Name) ? xtr.GetAttribute("name") ?? string.Empty : Header.Name); + Header.Description = (string.IsNullOrWhiteSpace(Header.Description) ? xtr.GetAttribute("description") ?? string.Empty : Header.Description); + if (Header.ForceMerging == ForceMerging.None) + Header.ForceMerging = xtr.GetAttribute("forcemerging").AsForceMerging(); - if (DatHeader.ForceNodump == ForceNodump.None) - DatHeader.ForceNodump = xtr.GetAttribute("forcenodump").AsForceNodump(); + if (Header.ForceNodump == ForceNodump.None) + Header.ForceNodump = xtr.GetAttribute("forcenodump").AsForceNodump(); - if (DatHeader.ForcePacking == ForcePacking.None) - DatHeader.ForcePacking = xtr.GetAttribute("forcepacking").AsForcePacking(); + if (Header.ForcePacking == ForcePacking.None) + Header.ForcePacking = xtr.GetAttribute("forcepacking").AsForcePacking(); xtr.Read(); break; @@ -629,10 +629,10 @@ namespace SabreTools.Library.DatFiles xtw.WriteDocType("softwarelist", null, "softwarelist.dtd", null); xtw.WriteStartElement("softwarelist"); - xtw.WriteAttributeString("name", DatHeader.Name); - xtw.WriteAttributeString("description", DatHeader.Description); + xtw.WriteAttributeString("name", Header.Name); + xtw.WriteAttributeString("description", Header.Description); - switch (DatHeader.ForcePacking) + switch (Header.ForcePacking) { case ForcePacking.Unzip: xtw.WriteAttributeString("forcepacking", "unzip"); @@ -642,7 +642,7 @@ namespace SabreTools.Library.DatFiles break; } - switch (DatHeader.ForceMerging) + switch (Header.ForceMerging) { case ForceMerging.Full: xtw.WriteAttributeString("forcemerging", "full"); @@ -658,7 +658,7 @@ namespace SabreTools.Library.DatFiles break; } - switch (DatHeader.ForceNodump) + switch (Header.ForceNodump) { case ForceNodump.Ignore: xtw.WriteAttributeString("forcenodump", "ignore"); @@ -697,12 +697,12 @@ namespace SabreTools.Library.DatFiles // Build the state based on excluded fields xtw.WriteStartElement("software"); - xtw.WriteAttributeString("name", datItem.GetField(Field.MachineName, DatHeader.ExcludeFields)); + xtw.WriteAttributeString("name", datItem.GetField(Field.MachineName, Header.ExcludeFields)); - if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.CloneOf, DatHeader.ExcludeFields)) && !string.Equals(datItem.MachineName, datItem.CloneOf, StringComparison.OrdinalIgnoreCase)) + if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.CloneOf, Header.ExcludeFields)) && !string.Equals(datItem.MachineName, datItem.CloneOf, StringComparison.OrdinalIgnoreCase)) xtw.WriteAttributeString("cloneof", datItem.CloneOf); - if (!DatHeader.ExcludeFields[(int)Field.Supported]) + if (!Header.ExcludeFields[(int)Field.Supported]) { if (datItem.Supported == true) xtw.WriteAttributeString("supported", "yes"); @@ -712,16 +712,16 @@ namespace SabreTools.Library.DatFiles xtw.WriteAttributeString("supported", "partial"); } - if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.Description, DatHeader.ExcludeFields))) + if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.Description, Header.ExcludeFields))) xtw.WriteElementString("description", datItem.MachineDescription); - if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.Year, DatHeader.ExcludeFields))) + if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.Year, Header.ExcludeFields))) xtw.WriteElementString("year", datItem.Year); - if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.Publisher, DatHeader.ExcludeFields))) + if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.Publisher, Header.ExcludeFields))) xtw.WriteElementString("publisher", datItem.Publisher); - if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.Category, DatHeader.ExcludeFields))) + if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.Category, Header.ExcludeFields))) xtw.WriteElementString("category", datItem.Category); - if (!DatHeader.ExcludeFields[(int)Field.Infos] && datItem.Infos != null && datItem.Infos.Count > 0) + if (!Header.ExcludeFields[(int)Field.Infos] && datItem.Infos != null && datItem.Infos.Count > 0) { foreach (KeyValuePair kvp in datItem.Infos) { @@ -786,10 +786,10 @@ namespace SabreTools.Library.DatFiles // Build the state based on excluded fields xtw.WriteStartElement("part"); - xtw.WriteAttributeString("name", datItem.GetField(Field.PartName, DatHeader.ExcludeFields)); - xtw.WriteAttributeString("interface", datItem.GetField(Field.PartInterface, DatHeader.ExcludeFields)); + xtw.WriteAttributeString("name", datItem.GetField(Field.PartName, Header.ExcludeFields)); + xtw.WriteAttributeString("interface", datItem.GetField(Field.PartInterface, Header.ExcludeFields)); - if (!DatHeader.ExcludeFields[(int)Field.Features] && datItem.Features != null && datItem.Features.Count > 0) + if (!Header.ExcludeFields[(int)Field.Features] && datItem.Features != null && datItem.Features.Count > 0) { foreach (KeyValuePair kvp in datItem.Features) { @@ -800,38 +800,38 @@ namespace SabreTools.Library.DatFiles } } - string areaName = datItem.GetField(Field.AreaName, DatHeader.ExcludeFields); + string areaName = datItem.GetField(Field.AreaName, Header.ExcludeFields); switch (datItem.ItemType) { case ItemType.Disk: var disk = datItem as Disk; - if (!DatHeader.ExcludeFields[(int)Field.AreaName] && string.IsNullOrWhiteSpace(areaName)) + if (!Header.ExcludeFields[(int)Field.AreaName] && string.IsNullOrWhiteSpace(areaName)) areaName = "cdrom"; xtw.WriteStartElement("diskarea"); xtw.WriteAttributeString("name", areaName); - if (!DatHeader.ExcludeFields[(int)Field.AreaSize] && disk.AreaSize != null) + if (!Header.ExcludeFields[(int)Field.AreaSize] && disk.AreaSize != null) xtw.WriteAttributeString("size", disk.AreaSize.ToString()); xtw.WriteStartElement("disk"); - xtw.WriteAttributeString("name", disk.GetField(Field.Name, DatHeader.ExcludeFields)); - if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.MD5, DatHeader.ExcludeFields))) + xtw.WriteAttributeString("name", disk.GetField(Field.Name, Header.ExcludeFields)); + if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.MD5, Header.ExcludeFields))) xtw.WriteAttributeString("md5", disk.MD5.ToLowerInvariant()); #if NET_FRAMEWORK - if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.RIPEMD160, DatHeader.ExcludeFields))) + if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.RIPEMD160, Header.ExcludeFields))) xtw.WriteAttributeString("ripemd160", disk.RIPEMD160.ToLowerInvariant()); #endif - if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.SHA1, DatHeader.ExcludeFields))) + if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.SHA1, Header.ExcludeFields))) xtw.WriteAttributeString("sha1", disk.SHA1.ToLowerInvariant()); - if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.SHA256, DatHeader.ExcludeFields))) + if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.SHA256, Header.ExcludeFields))) xtw.WriteAttributeString("sha256", disk.SHA256.ToLowerInvariant()); - if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.SHA384, DatHeader.ExcludeFields))) + if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.SHA384, Header.ExcludeFields))) xtw.WriteAttributeString("sha384", disk.SHA384.ToLowerInvariant()); - if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.SHA512, DatHeader.ExcludeFields))) + if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.SHA512, Header.ExcludeFields))) xtw.WriteAttributeString("sha512", disk.SHA512.ToLowerInvariant()); - if (!DatHeader.ExcludeFields[(int)Field.Status] && disk.ItemStatus != ItemStatus.None) + if (!Header.ExcludeFields[(int)Field.Status] && disk.ItemStatus != ItemStatus.None) xtw.WriteAttributeString("status", disk.ItemStatus.ToString().ToLowerInvariant()); - if (!DatHeader.ExcludeFields[(int)Field.Writable] && disk.Writable != null) + if (!Header.ExcludeFields[(int)Field.Writable] && disk.Writable != null) xtw.WriteAttributeString("writable", disk.Writable == true ? "yes" : "no"); xtw.WriteEndElement(); @@ -841,39 +841,39 @@ namespace SabreTools.Library.DatFiles case ItemType.Rom: var rom = datItem as Rom; - if (!DatHeader.ExcludeFields[(int)Field.AreaName] && string.IsNullOrWhiteSpace(areaName)) + if (!Header.ExcludeFields[(int)Field.AreaName] && string.IsNullOrWhiteSpace(areaName)) areaName = "rom"; xtw.WriteStartElement("dataarea"); xtw.WriteAttributeString("name", areaName); - if (!DatHeader.ExcludeFields[(int)Field.AreaSize] && rom.AreaSize != null) + if (!Header.ExcludeFields[(int)Field.AreaSize] && rom.AreaSize != null) xtw.WriteAttributeString("size", rom.AreaSize.ToString()); xtw.WriteStartElement("rom"); - xtw.WriteAttributeString("name", rom.GetField(Field.Name, DatHeader.ExcludeFields)); - if (!DatHeader.ExcludeFields[(int)Field.Size] && rom.Size != -1) + xtw.WriteAttributeString("name", rom.GetField(Field.Name, Header.ExcludeFields)); + if (!Header.ExcludeFields[(int)Field.Size] && rom.Size != -1) xtw.WriteAttributeString("size", rom.Size.ToString()); - if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.CRC, DatHeader.ExcludeFields))) + if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.CRC, Header.ExcludeFields))) xtw.WriteAttributeString("crc", rom.CRC.ToLowerInvariant()); - if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.MD5, DatHeader.ExcludeFields))) + if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.MD5, Header.ExcludeFields))) xtw.WriteAttributeString("md5", rom.MD5.ToLowerInvariant()); #if NET_FRAMEWORK - if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.RIPEMD160, DatHeader.ExcludeFields))) + if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.RIPEMD160, Header.ExcludeFields))) xtw.WriteAttributeString("ripemd160", rom.RIPEMD160.ToLowerInvariant()); #endif - if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.SHA1, DatHeader.ExcludeFields))) + if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.SHA1, Header.ExcludeFields))) xtw.WriteAttributeString("sha1", rom.SHA1.ToLowerInvariant()); - if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.SHA256, DatHeader.ExcludeFields))) + if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.SHA256, Header.ExcludeFields))) xtw.WriteAttributeString("sha256", rom.SHA256.ToLowerInvariant()); - if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.SHA384, DatHeader.ExcludeFields))) + if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.SHA384, Header.ExcludeFields))) xtw.WriteAttributeString("sha384", rom.SHA384.ToLowerInvariant()); - if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.SHA512, DatHeader.ExcludeFields))) + if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.SHA512, Header.ExcludeFields))) xtw.WriteAttributeString("sha512", rom.SHA512.ToLowerInvariant()); - if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.Offset, DatHeader.ExcludeFields))) + if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.Offset, Header.ExcludeFields))) xtw.WriteAttributeString("offset", rom.Offset); //if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.Value, DatHeader.ExcludeFields))) // xtw.WriteAttributeString("value", rom.Value); - if (!DatHeader.ExcludeFields[(int)Field.Status] && rom.ItemStatus != ItemStatus.None) + if (!Header.ExcludeFields[(int)Field.Status] && rom.ItemStatus != ItemStatus.None) xtw.WriteAttributeString("status", rom.ItemStatus.ToString().ToLowerInvariant()); //if (!string.IsNullOrWhiteSpace(datItem.GetField(Field.Loadflag, DatHeader.ExcludeFields))) // xtw.WriteAttributeString("loadflag", rom.Loadflag); diff --git a/SabreTools/SabreTools.Help.cs b/SabreTools/SabreTools.Help.cs index 88a14307..a4314cf0 100644 --- a/SabreTools/SabreTools.Help.cs +++ b/SabreTools/SabreTools.Help.cs @@ -2875,7 +2875,7 @@ Some special strings that can be used: // Create a new DATFromDir object and process the inputs DatFile basedat = DatFile.Create(datHeader); - basedat.SetDate(DateTime.Now.ToString("yyyy-MM-dd")); + basedat.Header.Date = DateTime.Now.ToString("yyyy-MM-dd"); // For each input directory, create a DAT foreach (string path in Inputs) @@ -2883,7 +2883,7 @@ Some special strings that can be used: if (Directory.Exists(path) || File.Exists(path)) { // Clone the base Dat for information - DatFile datdata = DatFile.Create(basedat.DatHeader); + DatFile datdata = DatFile.Create(basedat.Header); string basePath = Path.GetFullPath(path); bool success = datdata.PopulateFromDir( @@ -3128,9 +3128,9 @@ The following systems have headers that this program can work with: // If we have the depot flag, respect it if (depot) - datdata.RebuildDepot(Inputs, Path.Combine(outDir, datdata.DatHeader.FileName), date, delete, inverse, outputFormat, updateDat, headerToCheckAgainst); + datdata.RebuildDepot(Inputs, Path.Combine(outDir, datdata.Header.FileName), date, delete, inverse, outputFormat, updateDat, headerToCheckAgainst); else - datdata.RebuildGeneric(Inputs, Path.Combine(outDir, datdata.DatHeader.FileName), quickScan, date, delete, inverse, outputFormat, updateDat, headerToCheckAgainst, chdsAsFiles); + datdata.RebuildGeneric(Inputs, Path.Combine(outDir, datdata.Header.FileName), quickScan, date, delete, inverse, outputFormat, updateDat, headerToCheckAgainst, chdsAsFiles); } }