diff --git a/SabreTools.DatFiles/DatFile.cs b/SabreTools.DatFiles/DatFile.cs
index f4e6f2ad..56375711 100644
--- a/SabreTools.DatFiles/DatFile.cs
+++ b/SabreTools.DatFiles/DatFile.cs
@@ -115,7 +115,7 @@ namespace SabreTools.DatFiles
/// DatHeader to get the values from
public static DatFile Create(DatHeader datHeader)
{
- DatFile datFile = Create(datHeader.DatFormat);
+ DatFile datFile = Create(datHeader.GetFieldValue(DatHeader.DatFormatKey));
datFile.Header = (DatHeader)datHeader.Clone();
return datFile;
}
@@ -636,7 +636,7 @@ namespace SabreTools.DatFiles
if (!GetSupportedTypes().Contains(datItem.GetFieldValue(Models.Metadata.DatItem.TypeKey)))
{
string itemString = JsonConvert.SerializeObject(datItem, Formatting.None);
- logger?.Verbose($"Item '{itemString}' was skipped because it was not supported in {Header?.DatFormat}");
+ logger?.Verbose($"Item '{itemString}' was skipped because it was not supported in {Header?.GetFieldValue(DatHeader.DatFormatKey)}");
return true;
}
@@ -646,9 +646,9 @@ namespace SabreTools.DatFiles
{
string itemString = JsonConvert.SerializeObject(datItem, Formatting.None);
#if NET20 || NET35
- logger?.Verbose($"Item '{itemString}' was skipped because it was missing required fields for {Header?.DatFormat}: {string.Join(", ", [.. missingFields])}");
+ logger?.Verbose($"Item '{itemString}' was skipped because it was missing required fields for {Header?.GetFieldValue(DatHeader.DatFormatKey)}: {string.Join(", ", [.. missingFields])}");
#else
- logger?.Verbose($"Item '{itemString}' was skipped because it was missing required fields for {Header?.DatFormat}: {string.Join(", ", missingFields)}");
+ logger?.Verbose($"Item '{itemString}' was skipped because it was missing required fields for {Header?.GetFieldValue(DatHeader.DatFormatKey)}: {string.Join(", ", missingFields)}");
#endif
return true;
}
diff --git a/SabreTools.DatFiles/DatHeader.cs b/SabreTools.DatFiles/DatHeader.cs
index 05648dd5..8e1d4ac9 100644
--- a/SabreTools.DatFiles/DatHeader.cs
+++ b/SabreTools.DatFiles/DatHeader.cs
@@ -23,6 +23,11 @@ namespace SabreTools.DatFiles
///
public const string AddExtensionKey = "ADDEXTENSION";
+ ///
+ /// Read or write format
+ ///
+ public const string DatFormatKey = "DATFORMAT";
+
///
/// External name of the DAT
///
@@ -67,12 +72,6 @@ namespace SabreTools.DatFiles
#region Fields
- ///
- /// Read or write format
- ///
- [JsonIgnore, XmlIgnore]
- public DatFormat DatFormat { get; set; }
-
[JsonIgnore]
public bool InfosSpecified
{
@@ -166,11 +165,10 @@ namespace SabreTools.DatFiles
{
var header = new DatHeader()
{
- DatFormat = this.DatFormat,
-
InputDepot = this.InputDepot?.Clone() as DepotInformation,
OutputDepot = this.OutputDepot?.Clone() as DepotInformation,
};
+ header.SetFieldValue(DatHeader.AddExtensionKey, GetFieldValue(DatHeader.AddExtensionKey));
header.SetFieldValue(Models.Metadata.Header.AuthorKey, GetFieldValue(Models.Metadata.Header.AuthorKey));
header.SetFieldValue(Models.Metadata.Header.BiosModeKey, GetFieldValue(Models.Metadata.Header.BiosModeKey));
header.SetFieldValue(Models.Metadata.Header.BuildKey, GetFieldValue(Models.Metadata.Header.BuildKey));
@@ -178,6 +176,7 @@ namespace SabreTools.DatFiles
header.SetFieldValue(Models.Metadata.Header.CategoryKey, GetFieldValue(Models.Metadata.Header.CategoryKey));
header.SetFieldValue(Models.Metadata.Header.CommentKey, GetFieldValue(Models.Metadata.Header.CommentKey));
header.SetFieldValue(Models.Metadata.Header.DateKey, GetFieldValue(Models.Metadata.Header.DateKey));
+ header.SetFieldValue(DatHeader.DatFormatKey, GetFieldValue(DatHeader.DatFormatKey));
header.SetFieldValue(Models.Metadata.Header.DatVersionKey, GetFieldValue(Models.Metadata.Header.DatVersionKey));
header.SetFieldValue(Models.Metadata.Header.DebugKey, GetFieldValue(Models.Metadata.Header.DebugKey));
header.SetFieldValue(Models.Metadata.Header.DescriptionKey, GetFieldValue(Models.Metadata.Header.DescriptionKey));
@@ -186,6 +185,7 @@ namespace SabreTools.DatFiles
header.SetFieldValue(Models.Metadata.Header.ForceMergingKey, GetFieldValue(Models.Metadata.Header.ForceMergingKey));
header.SetFieldValue(Models.Metadata.Header.ForceNodumpKey, GetFieldValue(Models.Metadata.Header.ForceNodumpKey));
header.SetFieldValue(Models.Metadata.Header.ForcePackingKey, GetFieldValue(Models.Metadata.Header.ForcePackingKey));
+ header.SetFieldValue(DatHeader.GameNameKey, GetFieldValue(DatHeader.GameNameKey));
header.SetFieldValue(Models.Metadata.Header.HeaderKey, GetFieldValue(Models.Metadata.Header.HeaderKey));
header.SetFieldValue(Models.Metadata.Header.HomepageKey, GetFieldValue(Models.Metadata.Header.HomepageKey));
header.SetFieldValue(Models.Metadata.Header.IdKey, GetFieldValue(Models.Metadata.Header.IdKey));
@@ -195,6 +195,11 @@ namespace SabreTools.DatFiles
header.SetFieldValue(Models.Metadata.Header.LockSampleModeKey, GetFieldValue(Models.Metadata.Header.LockSampleModeKey));
header.SetFieldValue(Models.Metadata.Header.MameConfigKey, GetFieldValue(Models.Metadata.Header.MameConfigKey));
header.SetFieldValue(Models.Metadata.Header.NameKey, GetFieldValue(Models.Metadata.Header.NameKey));
+ header.SetFieldValue(DatHeader.PostfixKey, GetFieldValue(DatHeader.PostfixKey));
+ header.SetFieldValue(DatHeader.PrefixKey, GetFieldValue(DatHeader.PrefixKey));
+ header.SetFieldValue(DatHeader.QuotesKey, GetFieldValue(DatHeader.QuotesKey));
+ header.SetFieldValue(DatHeader.RemoveExtensionKey, GetFieldValue(DatHeader.RemoveExtensionKey));
+ header.SetFieldValue(DatHeader.ReplaceExtensionKey, GetFieldValue(DatHeader.ReplaceExtensionKey));
header.SetFieldValue(Models.Metadata.Header.RomTitleKey, GetFieldValue(Models.Metadata.Header.RomTitleKey));
header.SetFieldValue(Models.Metadata.Header.RomModeKey, GetFieldValue(Models.Metadata.Header.RomModeKey));
header.SetFieldValue(Models.Metadata.Header.RootDirKey, GetFieldValue(Models.Metadata.Header.RootDirKey));
@@ -204,16 +209,8 @@ namespace SabreTools.DatFiles
header.SetFieldValue(Models.Metadata.Header.SystemKey, GetFieldValue(Models.Metadata.Header.SystemKey));
header.SetFieldValue(Models.Metadata.Header.TypeKey, GetFieldValue(Models.Metadata.Header.TypeKey));
header.SetFieldValue(Models.Metadata.Header.UrlKey, GetFieldValue(Models.Metadata.Header.UrlKey));
- header.SetFieldValue(Models.Metadata.Header.VersionKey, GetFieldValue(Models.Metadata.Header.VersionKey));
-
- header.SetFieldValue(DatHeader.AddExtensionKey, GetFieldValue(DatHeader.AddExtensionKey));
- header.SetFieldValue(DatHeader.GameNameKey, GetFieldValue(DatHeader.GameNameKey));
- header.SetFieldValue(DatHeader.PostfixKey, GetFieldValue(DatHeader.PostfixKey));
- header.SetFieldValue(DatHeader.PrefixKey, GetFieldValue(DatHeader.PrefixKey));
- header.SetFieldValue(DatHeader.RemoveExtensionKey, GetFieldValue(DatHeader.RemoveExtensionKey));
- header.SetFieldValue(DatHeader.ReplaceExtensionKey, GetFieldValue(DatHeader.ReplaceExtensionKey));
- header.SetFieldValue(DatHeader.QuotesKey, GetFieldValue(DatHeader.QuotesKey));
header.SetFieldValue(DatHeader.UseRomNameKey, GetFieldValue(DatHeader.UseRomNameKey));
+ header.SetFieldValue(Models.Metadata.Header.VersionKey, GetFieldValue(Models.Metadata.Header.VersionKey));
return header;
}
@@ -223,14 +220,12 @@ namespace SabreTools.DatFiles
///
public DatHeader CloneStandard()
{
- var header = new DatHeader()
- {
- DatFormat = this.DatFormat,
- };
+ var header = new DatHeader();
header.SetFieldValue(Models.Metadata.Header.AuthorKey, GetFieldValue(Models.Metadata.Header.AuthorKey));
header.SetFieldValue(Models.Metadata.Header.CategoryKey, GetFieldValue(Models.Metadata.Header.CategoryKey));
header.SetFieldValue(Models.Metadata.Header.CommentKey, GetFieldValue(Models.Metadata.Header.CommentKey));
header.SetFieldValue(Models.Metadata.Header.DateKey, GetFieldValue(Models.Metadata.Header.DateKey));
+ header.SetFieldValue(DatHeader.DatFormatKey, GetFieldValue(DatHeader.DatFormatKey));
header.SetFieldValue(Models.Metadata.Header.DescriptionKey, GetFieldValue(Models.Metadata.Header.DescriptionKey));
header.SetFieldValue(Models.Metadata.Header.EmailKey, GetFieldValue(Models.Metadata.Header.EmailKey));
header.SetFieldValue(DatHeader.FileNameKey, GetFieldValue(DatHeader.FileNameKey));
@@ -255,12 +250,11 @@ namespace SabreTools.DatFiles
{
var header = new DatHeader()
{
- DatFormat = this.DatFormat,
-
InputDepot = this.InputDepot?.Clone() as DepotInformation,
OutputDepot = this.OutputDepot?.Clone() as DepotInformation,
};
header.SetFieldValue(DatHeader.AddExtensionKey, GetFieldValue(DatHeader.AddExtensionKey));
+ header.SetFieldValue(DatHeader.DatFormatKey, GetFieldValue(DatHeader.DatFormatKey));
header.SetFieldValue(DatHeader.GameNameKey, GetFieldValue(DatHeader.GameNameKey));
header.SetFieldValue(DatHeader.PostfixKey, GetFieldValue(DatHeader.PostfixKey));
header.SetFieldValue(DatHeader.PrefixKey, GetFieldValue(DatHeader.PrefixKey));
@@ -332,8 +326,8 @@ namespace SabreTools.DatFiles
if (datHeader.GetFieldValue(Models.Metadata.Header.ForcePackingKey) != PackingFlag.None)
SetFieldValue(Models.Metadata.Header.ForcePackingKey, datHeader.GetFieldValue(Models.Metadata.Header.ForcePackingKey));
- if (datHeader.DatFormat != 0x00)
- DatFormat = datHeader.DatFormat;
+ if (datHeader.GetFieldValue(DatHeader.DatFormatKey) != 0x00)
+ SetFieldValue(DatHeader.DatFormatKey, datHeader.GetFieldValue(DatHeader.DatFormatKey));
if (!string.IsNullOrEmpty(datHeader.GetFieldValue(DatHeader.PrefixKey)))
SetFieldValue(DatHeader.PrefixKey, datHeader.GetFieldValue(DatHeader.PrefixKey));
@@ -421,9 +415,9 @@ namespace SabreTools.DatFiles
// CSV
#if NETFRAMEWORK
- if ((DatFormat & DatFormat.CSV) != 0)
+ if ((GetFieldValue(DatHeader.DatFormatKey) & DatFormat.CSV) != 0)
#else
- if (DatFormat.HasFlag(DatFormat.CSV))
+ if (GetFieldValue(DatHeader.DatFormatKey).HasFlag(DatFormat.CSV))
#endif
{
outfileNames.Add(DatFormat.CSV, CreateOutFileNamesHelper(outDir, ".csv", overwrite));
@@ -436,9 +430,9 @@ namespace SabreTools.DatFiles
// ClrMamePro
#if NETFRAMEWORK
- if ((DatFormat & DatFormat.ClrMamePro) != 0)
+ if ((GetFieldValue(DatHeader.DatFormatKey) & DatFormat.ClrMamePro) != 0)
#else
- if (DatFormat.HasFlag(DatFormat.ClrMamePro))
+ if (GetFieldValue(DatHeader.DatFormatKey).HasFlag(DatFormat.ClrMamePro))
#endif
{
outfileNames.Add(DatFormat.ClrMamePro, CreateOutFileNamesHelper(outDir, ".dat", overwrite));
@@ -447,9 +441,9 @@ namespace SabreTools.DatFiles
// RomCenter
#if NETFRAMEWORK
- if ((DatFormat & DatFormat.RomCenter) != 0)
+ if ((GetFieldValue(DatHeader.DatFormatKey) & DatFormat.RomCenter) != 0)
#else
- if (DatFormat.HasFlag(DatFormat.RomCenter))
+ if (GetFieldValue(DatHeader.DatFormatKey).HasFlag(DatFormat.RomCenter))
#endif
{
if (usedExtensions.Contains(".dat"))
@@ -466,9 +460,9 @@ namespace SabreTools.DatFiles
// DOSCenter
#if NETFRAMEWORK
- if ((DatFormat & DatFormat.DOSCenter) != 0)
+ if ((GetFieldValue(DatHeader.DatFormatKey) & DatFormat.DOSCenter) != 0)
#else
- if (DatFormat.HasFlag(DatFormat.DOSCenter))
+ if (GetFieldValue(DatHeader.DatFormatKey).HasFlag(DatFormat.DOSCenter))
#endif
{
if (usedExtensions.Contains(".dat"))
@@ -489,9 +483,9 @@ namespace SabreTools.DatFiles
// JSON
#if NETFRAMEWORK
- if ((DatFormat & DatFormat.SabreJSON) != 0)
+ if ((GetFieldValue(DatHeader.DatFormatKey) & DatFormat.SabreJSON) != 0)
#else
- if (DatFormat.HasFlag(DatFormat.SabreJSON))
+ if (GetFieldValue(DatHeader.DatFormatKey).HasFlag(DatFormat.SabreJSON))
#endif
{
outfileNames.Add(DatFormat.SabreJSON, CreateOutFileNamesHelper(outDir, ".json", overwrite));
@@ -504,9 +498,9 @@ namespace SabreTools.DatFiles
// Redump MD5
#if NETFRAMEWORK
- if ((DatFormat & DatFormat.RedumpMD5) != 0)
+ if ((GetFieldValue(DatHeader.DatFormatKey) & DatFormat.RedumpMD5) != 0)
#else
- if (DatFormat.HasFlag(DatFormat.RedumpMD5))
+ if (GetFieldValue(DatHeader.DatFormatKey).HasFlag(DatFormat.RedumpMD5))
#endif
{
outfileNames.Add(DatFormat.RedumpMD5, CreateOutFileNamesHelper(outDir, ".md5", overwrite));
@@ -519,9 +513,9 @@ namespace SabreTools.DatFiles
// Redump SFV
#if NETFRAMEWORK
- if ((DatFormat & DatFormat.RedumpSFV) != 0)
+ if ((GetFieldValue(DatHeader.DatFormatKey) & DatFormat.RedumpSFV) != 0)
#else
- if (DatFormat.HasFlag(DatFormat.RedumpSFV))
+ if (GetFieldValue(DatHeader.DatFormatKey).HasFlag(DatFormat.RedumpSFV))
#endif
{
outfileNames.Add(DatFormat.RedumpSFV, CreateOutFileNamesHelper(outDir, ".sfv", overwrite));
@@ -534,9 +528,9 @@ namespace SabreTools.DatFiles
// Redump SHA-1
#if NETFRAMEWORK
- if ((DatFormat & DatFormat.RedumpSHA1) != 0)
+ if ((GetFieldValue(DatHeader.DatFormatKey) & DatFormat.RedumpSHA1) != 0)
#else
- if (DatFormat.HasFlag(DatFormat.RedumpSHA1))
+ if (GetFieldValue(DatHeader.DatFormatKey).HasFlag(DatFormat.RedumpSHA1))
#endif
{
outfileNames.Add(DatFormat.RedumpSHA1, CreateOutFileNamesHelper(outDir, ".sha1", overwrite));
@@ -549,9 +543,9 @@ namespace SabreTools.DatFiles
// Redump SHA-256
#if NETFRAMEWORK
- if ((DatFormat & DatFormat.RedumpSHA256) != 0)
+ if ((GetFieldValue(DatHeader.DatFormatKey) & DatFormat.RedumpSHA256) != 0)
#else
- if (DatFormat.HasFlag(DatFormat.RedumpSHA256))
+ if (GetFieldValue(DatHeader.DatFormatKey).HasFlag(DatFormat.RedumpSHA256))
#endif
{
outfileNames.Add(DatFormat.RedumpSHA256, CreateOutFileNamesHelper(outDir, ".sha256", overwrite));
@@ -564,9 +558,9 @@ namespace SabreTools.DatFiles
// Redump SHA-384
#if NETFRAMEWORK
- if ((DatFormat & DatFormat.RedumpSHA384) != 0)
+ if ((GetFieldValue(DatHeader.DatFormatKey) & DatFormat.RedumpSHA384) != 0)
#else
- if (DatFormat.HasFlag(DatFormat.RedumpSHA384))
+ if (GetFieldValue(DatHeader.DatFormatKey).HasFlag(DatFormat.RedumpSHA384))
#endif
{
outfileNames.Add(DatFormat.RedumpSHA384, CreateOutFileNamesHelper(outDir, ".sha384", overwrite));
@@ -579,9 +573,9 @@ namespace SabreTools.DatFiles
// Redump SHA-512
#if NETFRAMEWORK
- if ((DatFormat & DatFormat.RedumpSHA512) != 0)
+ if ((GetFieldValue(DatHeader.DatFormatKey) & DatFormat.RedumpSHA512) != 0)
#else
- if (DatFormat.HasFlag(DatFormat.RedumpSHA512))
+ if (GetFieldValue(DatHeader.DatFormatKey).HasFlag(DatFormat.RedumpSHA512))
#endif
{
outfileNames.Add(DatFormat.RedumpSHA512, CreateOutFileNamesHelper(outDir, ".sha512", overwrite));
@@ -594,9 +588,9 @@ namespace SabreTools.DatFiles
// Redump SpamSum
#if NETFRAMEWORK
- if ((DatFormat & DatFormat.RedumpSpamSum) != 0)
+ if ((GetFieldValue(DatHeader.DatFormatKey) & DatFormat.RedumpSpamSum) != 0)
#else
- if (DatFormat.HasFlag(DatFormat.RedumpSpamSum))
+ if (GetFieldValue(DatHeader.DatFormatKey).HasFlag(DatFormat.RedumpSpamSum))
#endif
{
outfileNames.Add(DatFormat.RedumpSpamSum, CreateOutFileNamesHelper(outDir, ".spamsum", overwrite));
@@ -609,9 +603,9 @@ namespace SabreTools.DatFiles
// SSV
#if NETFRAMEWORK
- if ((DatFormat & DatFormat.SSV) != 0)
+ if ((GetFieldValue(DatHeader.DatFormatKey) & DatFormat.SSV) != 0)
#else
- if (DatFormat.HasFlag(DatFormat.SSV))
+ if (GetFieldValue(DatHeader.DatFormatKey).HasFlag(DatFormat.SSV))
#endif
{
outfileNames.Add(DatFormat.SSV, CreateOutFileNamesHelper(outDir, ".ssv", overwrite));
@@ -624,9 +618,9 @@ namespace SabreTools.DatFiles
// TSV
#if NETFRAMEWORK
- if ((DatFormat & DatFormat.TSV) != 0)
+ if ((GetFieldValue(DatHeader.DatFormatKey) & DatFormat.TSV) != 0)
#else
- if (DatFormat.HasFlag(DatFormat.TSV))
+ if (GetFieldValue(DatHeader.DatFormatKey).HasFlag(DatFormat.TSV))
#endif
{
outfileNames.Add(DatFormat.TSV, CreateOutFileNamesHelper(outDir, ".tsv", overwrite));
@@ -639,9 +633,9 @@ namespace SabreTools.DatFiles
// AttractMode
#if NETFRAMEWORK
- if ((DatFormat & DatFormat.AttractMode) != 0)
+ if ((GetFieldValue(DatHeader.DatFormatKey) & DatFormat.AttractMode) != 0)
#else
- if (DatFormat.HasFlag(DatFormat.AttractMode))
+ if (GetFieldValue(DatHeader.DatFormatKey).HasFlag(DatFormat.AttractMode))
#endif
{
outfileNames.Add(DatFormat.AttractMode, CreateOutFileNamesHelper(outDir, ".txt", overwrite));
@@ -650,9 +644,9 @@ namespace SabreTools.DatFiles
// MAME Listroms
#if NETFRAMEWORK
- if ((DatFormat & DatFormat.Listrom) != 0)
+ if ((GetFieldValue(DatHeader.DatFormatKey) & DatFormat.Listrom) != 0)
#else
- if (DatFormat.HasFlag(DatFormat.Listrom))
+ if (GetFieldValue(DatHeader.DatFormatKey).HasFlag(DatFormat.Listrom))
#endif
{
if (usedExtensions.Contains(".txt"))
@@ -669,9 +663,9 @@ namespace SabreTools.DatFiles
// Missfile
#if NETFRAMEWORK
- if ((DatFormat & DatFormat.MissFile) != 0)
+ if ((GetFieldValue(DatHeader.DatFormatKey) & DatFormat.MissFile) != 0)
#else
- if (DatFormat.HasFlag(DatFormat.MissFile))
+ if (GetFieldValue(DatHeader.DatFormatKey).HasFlag(DatFormat.MissFile))
#endif
{
if (usedExtensions.Contains(".txt"))
@@ -688,9 +682,9 @@ namespace SabreTools.DatFiles
// Everdrive SMDB
#if NETFRAMEWORK
- if ((DatFormat & DatFormat.EverdriveSMDB) != 0)
+ if ((GetFieldValue(DatHeader.DatFormatKey) & DatFormat.EverdriveSMDB) != 0)
#else
- if (DatFormat.HasFlag(DatFormat.EverdriveSMDB))
+ if (GetFieldValue(DatHeader.DatFormatKey).HasFlag(DatFormat.EverdriveSMDB))
#endif
{
if (usedExtensions.Contains(".txt"))
@@ -711,18 +705,18 @@ namespace SabreTools.DatFiles
// Logiqx XML
#if NETFRAMEWORK
- if ((DatFormat & DatFormat.Logiqx) != 0)
+ if ((GetFieldValue(DatHeader.DatFormatKey) & DatFormat.Logiqx) != 0)
#else
- if (DatFormat.HasFlag(DatFormat.Logiqx))
+ if (GetFieldValue(DatHeader.DatFormatKey).HasFlag(DatFormat.Logiqx))
#endif
{
outfileNames.Add(DatFormat.Logiqx, CreateOutFileNamesHelper(outDir, ".xml", overwrite));
usedExtensions.Add(".xml");
}
#if NETFRAMEWORK
- if ((DatFormat & DatFormat.LogiqxDeprecated) != 0)
+ if ((GetFieldValue(DatHeader.DatFormatKey) & DatFormat.LogiqxDeprecated) != 0)
#else
- if (DatFormat.HasFlag(DatFormat.LogiqxDeprecated))
+ if (GetFieldValue(DatHeader.DatFormatKey).HasFlag(DatFormat.LogiqxDeprecated))
#endif
{
outfileNames.Add(DatFormat.LogiqxDeprecated, CreateOutFileNamesHelper(outDir, ".xml", overwrite));
@@ -731,9 +725,9 @@ namespace SabreTools.DatFiles
// SabreDAT
#if NETFRAMEWORK
- if ((DatFormat & DatFormat.SabreXML) != 0)
+ if ((GetFieldValue(DatHeader.DatFormatKey) & DatFormat.SabreXML) != 0)
#else
- if (DatFormat.HasFlag(DatFormat.SabreXML))
+ if (GetFieldValue(DatHeader.DatFormatKey).HasFlag(DatFormat.SabreXML))
#endif
{
if (usedExtensions.Contains(".xml"))
@@ -750,9 +744,9 @@ namespace SabreTools.DatFiles
// Software List
#if NETFRAMEWORK
- if ((DatFormat & DatFormat.SoftwareList) != 0)
+ if ((GetFieldValue(DatHeader.DatFormatKey) & DatFormat.SoftwareList) != 0)
#else
- if (DatFormat.HasFlag(DatFormat.SoftwareList))
+ if (GetFieldValue(DatHeader.DatFormatKey).HasFlag(DatFormat.SoftwareList))
#endif
{
if (usedExtensions.Contains(".xml"))
@@ -769,9 +763,9 @@ namespace SabreTools.DatFiles
// MAME Listxml
#if NETFRAMEWORK
- if ((DatFormat & DatFormat.Listxml) != 0)
+ if ((GetFieldValue(DatHeader.DatFormatKey) & DatFormat.Listxml) != 0)
#else
- if (DatFormat.HasFlag(DatFormat.Listxml))
+ if (GetFieldValue(DatHeader.DatFormatKey).HasFlag(DatFormat.Listxml))
#endif
{
if (usedExtensions.Contains(".xml"))
@@ -788,9 +782,9 @@ namespace SabreTools.DatFiles
// OfflineList
#if NETFRAMEWORK
- if ((DatFormat & DatFormat.OfflineList) != 0)
+ if ((GetFieldValue(DatHeader.DatFormatKey) & DatFormat.OfflineList) != 0)
#else
- if (DatFormat.HasFlag(DatFormat.OfflineList))
+ if (GetFieldValue(DatHeader.DatFormatKey).HasFlag(DatFormat.OfflineList))
#endif
{
if (usedExtensions.Contains(".xml"))
@@ -807,9 +801,9 @@ namespace SabreTools.DatFiles
// openMSX
#if NETFRAMEWORK
- if ((DatFormat & DatFormat.OpenMSX) != 0)
+ if ((GetFieldValue(DatHeader.DatFormatKey) & DatFormat.OpenMSX) != 0)
#else
- if (DatFormat.HasFlag(DatFormat.OpenMSX))
+ if (GetFieldValue(DatHeader.DatFormatKey).HasFlag(DatFormat.OpenMSX))
#endif
{
if (usedExtensions.Contains(".xml"))
@@ -826,9 +820,9 @@ namespace SabreTools.DatFiles
// Archive.org
#if NETFRAMEWORK
- if ((DatFormat & DatFormat.ArchiveDotOrg) != 0)
+ if ((GetFieldValue(DatHeader.DatFormatKey) & DatFormat.ArchiveDotOrg) != 0)
#else
- if (DatFormat.HasFlag(DatFormat.ArchiveDotOrg))
+ if (GetFieldValue(DatHeader.DatFormatKey).HasFlag(DatFormat.ArchiveDotOrg))
#endif
{
if (usedExtensions.Contains(".xml"))
diff --git a/SabreTools.DatTools/Parser.cs b/SabreTools.DatTools/Parser.cs
index 44a64bbc..0e53ea84 100644
--- a/SabreTools.DatTools/Parser.cs
+++ b/SabreTools.DatTools/Parser.cs
@@ -102,7 +102,9 @@ namespace SabreTools.DatTools
// If the output type isn't set already, get the internal output type
DatFormat currentPathFormat = GetDatFormat(currentPath);
- datFile.Header.DatFormat = datFile.Header.DatFormat == 0 ? currentPathFormat : datFile.Header.DatFormat;
+ datFile.Header.SetFieldValue(DatHeader.DatFormatKey, datFile.Header.GetFieldValue(DatHeader.DatFormatKey) == 0
+ ? currentPathFormat
+ : datFile.Header.GetFieldValue(DatHeader.DatFormatKey));
datFile.Items.SetBucketedBy(ItemKey.CRC); // Setting this because it can reduce issues later
InternalStopwatch watch = new($"Parsing '{currentPath}' into internal DAT");
diff --git a/SabreTools.DatTools/Writer.cs b/SabreTools.DatTools/Writer.cs
index ff161b36..3fa5c837 100644
--- a/SabreTools.DatTools/Writer.cs
+++ b/SabreTools.DatTools/Writer.cs
@@ -58,10 +58,10 @@ namespace SabreTools.DatTools
InternalStopwatch watch = new($"Writing out internal dat to '{outDir}'");
// If the DAT has no output format, default to XML
- if (datFile.Header.DatFormat == 0)
+ if (datFile.Header.GetFieldValue(DatHeader.DatFormatKey) == 0)
{
logger.Verbose("No DAT format defined, defaulting to XML");
- datFile.Header.DatFormat = DatFormat.Logiqx;
+ datFile.Header.SetFieldValue(DatHeader.DatFormatKey, DatFormat.Logiqx);
}
// Make sure that the three essential fields are filled in
diff --git a/SabreTools.Test/DatFiles/DatHeaderTests.cs b/SabreTools.Test/DatFiles/DatHeaderTests.cs
index 296befba..e87ed93f 100644
--- a/SabreTools.Test/DatFiles/DatHeaderTests.cs
+++ b/SabreTools.Test/DatFiles/DatHeaderTests.cs
@@ -14,11 +14,9 @@ namespace SabreTools.Test.DatFiles
public void CreateOutFileNamesTest(DatFormat datFormat, string extension)
{
// Create the empty DatHeader
- var datHeader = new DatHeader
- {
- DatFormat = datFormat,
- };
+ var datHeader = new DatHeader();
datHeader.SetFieldValue(DatHeader.FileNameKey, "test.dat");
+ datHeader.SetFieldValue(DatHeader.DatFormatKey, datFormat);
// Invoke the method
string outDir = "C:\\Test";
@@ -34,11 +32,9 @@ namespace SabreTools.Test.DatFiles
public void CreateOutFileNamesAllOutputsTest()
{
// Create the empty DatHeader
- var datHeader = new DatHeader
- {
- DatFormat = DatFormat.ALL,
- };
+ var datHeader = new DatHeader();
datHeader.SetFieldValue(DatHeader.FileNameKey, "test.dat");
+ datHeader.SetFieldValue(DatHeader.DatFormatKey, DatFormat.ALL);
// Invoke the method
string outDir = "C:\\Test";
diff --git a/SabreTools.Test/DatTools/ParserTests.cs b/SabreTools.Test/DatTools/ParserTests.cs
index 26967a98..d441d5d7 100644
--- a/SabreTools.Test/DatTools/ParserTests.cs
+++ b/SabreTools.Test/DatTools/ParserTests.cs
@@ -42,7 +42,7 @@ namespace SabreTools.Test.DatTools
filename = Path.Combine(Environment.CurrentDirectory, "TestData", filename);
var datFile = SabreTools.DatTools.Parser.CreateAndParse(filename, throwOnError: true);
- Assert.Equal(datFormat, datFile.Header.DatFormat);
+ Assert.Equal(datFormat, datFile.Header.GetFieldValue(DatHeader.DatFormatKey));
Assert.Equal(totalCount, datFile.Items.TotalCount);
}
}
diff --git a/SabreTools/Features/BaseFeature.cs b/SabreTools/Features/BaseFeature.cs
index 95022666..d7f3bf9d 100644
--- a/SabreTools/Features/BaseFeature.cs
+++ b/SabreTools/Features/BaseFeature.cs
@@ -2198,11 +2198,11 @@ Some special strings that can be used:
}
else if (dftemp == DatFormat.Logiqx && deprecated)
{
- datHeader.DatFormat |= DatFormat.LogiqxDeprecated;
+ datHeader.SetFieldValue(DatHeader.DatFormatKey, datHeader.GetFieldValue(DatHeader.DatFormatKey) | DatFormat.LogiqxDeprecated);
}
else
{
- datHeader.DatFormat |= dftemp;
+ datHeader.SetFieldValue(DatHeader.DatFormatKey, datHeader.GetFieldValue(DatHeader.DatFormatKey) | dftemp);
}
}
diff --git a/SabreTools/Features/Batch.cs b/SabreTools/Features/Batch.cs
index c025d7d2..680d0dfa 100644
--- a/SabreTools/Features/Batch.cs
+++ b/SabreTools/Features/Batch.cs
@@ -480,10 +480,10 @@ Reset the internal state: reset();";
public override void Process(BatchState batchState)
{
// Assume there could be multiple
- batchState.DatFile.Header.DatFormat = 0x00;
+ batchState.DatFile.Header.SetFieldValue(DatHeader.DatFormatKey, 0x00);
foreach (string format in Arguments)
{
- batchState.DatFile.Header.DatFormat |= GetDatFormat(format);
+ batchState.DatFile.Header.SetFieldValue(DatHeader.DatFormatKey, batchState.DatFile.Header.GetFieldValue(DatHeader.DatFormatKey) | GetDatFormat(format));
}
}
}
@@ -804,7 +804,7 @@ Reset the internal state: reset();";
// Read in the individual arguments
(string? type, string? key) = FilterParser.ParseFilterId(Arguments[0]);
-
+
// If we had an invalid input, log and continue
if ((type == null || !string.Equals(type, Models.Metadata.MetadataFile.HeaderKey, StringComparison.OrdinalIgnoreCase)) && key == null)
{
diff --git a/SabreTools/Features/Update.cs b/SabreTools/Features/Update.cs
index 800b11b0..19ab16a1 100644
--- a/SabreTools/Features/Update.cs
+++ b/SabreTools/Features/Update.cs
@@ -167,9 +167,9 @@ namespace SabreTools.Features
DatFile datFile = DatFile.Create(Header);
logger.User($"Processing '{Path.GetFileName(inputPath.CurrentPath)}'");
Parser.ParseInto(datFile, inputPath, keep: true,
- keepext: datFile.Header.DatFormat.HasFlag(DatFormat.TSV)
- || datFile.Header.DatFormat.HasFlag(DatFormat.CSV)
- || datFile.Header.DatFormat.HasFlag(DatFormat.SSV));
+ keepext: datFile.Header.GetFieldValue(DatHeader.DatFormatKey).HasFlag(DatFormat.TSV)
+ || datFile.Header.GetFieldValue(DatHeader.DatFormatKey).HasFlag(DatFormat.CSV)
+ || datFile.Header.GetFieldValue(DatHeader.DatFormatKey).HasFlag(DatFormat.SSV));
// Perform additional processing steps
Extras!.ApplyExtras(datFile);