diff --git a/SabreTools.Data.Extensions/MetadataExtensions.cs b/SabreTools.Data.Extensions/MetadataExtensions.cs
index 980fc1cb..468b55f6 100644
--- a/SabreTools.Data.Extensions/MetadataExtensions.cs
+++ b/SabreTools.Data.Extensions/MetadataExtensions.cs
@@ -146,6 +146,8 @@ namespace SabreTools.Data.Extensions
cloneHeader.RomTitle = selfHeader.RomTitle;
cloneHeader.RootDir = selfHeader.RootDir;
cloneHeader.SampleMode = selfHeader.SampleMode;
+ cloneHeader.ScreenshotsHeight = selfHeader.ScreenshotsHeight;
+ cloneHeader.ScreenshotsWidth = selfHeader.ScreenshotsWidth;
cloneHeader.System = selfHeader.System;
cloneHeader.Timestamp = selfHeader.Timestamp;
cloneHeader.Type = selfHeader.Type;
diff --git a/SabreTools.Data.Models/Metadata/Header.cs b/SabreTools.Data.Models/Metadata/Header.cs
index 31803fe3..c0b9c140 100644
--- a/SabreTools.Data.Models/Metadata/Header.cs
+++ b/SabreTools.Data.Models/Metadata/Header.cs
@@ -77,6 +77,10 @@ namespace SabreTools.Data.Models.Metadata
/// (none|split|merged|nonmerged|fullmerged|device|full) "split"
public MergingFlag SampleMode { get; set; }
+ public string? ScreenshotsHeight { get; set; }
+
+ public string? ScreenshotsWidth { get; set; }
+
public string? System { get; set; }
public string? Timestamp { get; set; }
@@ -120,12 +124,6 @@ namespace SabreTools.Data.Models.Metadata
/// string
public const string SchemaLocationKey = "schemaLocation";
- /// string
- public const string ScreenshotsHeightKey = "screenshotsHeight";
-
- /// string
- public const string ScreenshotsWidthKey = "screenshotsWidth";
-
/// TODO: This needs an internal model OR mapping to fields
/// Search
[NoFilter]
diff --git a/SabreTools.Metadata.DatFiles.Test/DatFileTests.FromMetadata.cs b/SabreTools.Metadata.DatFiles.Test/DatFileTests.FromMetadata.cs
index 78ba90bc..7596bf62 100644
--- a/SabreTools.Metadata.DatFiles.Test/DatFileTests.FromMetadata.cs
+++ b/SabreTools.Metadata.DatFiles.Test/DatFileTests.FromMetadata.cs
@@ -235,8 +235,8 @@ namespace SabreTools.Metadata.DatFiles.Test
RootDir = "rootdir",
SampleMode = Data.Models.Metadata.MergingFlag.Merged,
[Data.Models.Metadata.Header.SchemaLocationKey] = "schemalocation",
- [Data.Models.Metadata.Header.ScreenshotsHeightKey] = "screenshotsheight",
- [Data.Models.Metadata.Header.ScreenshotsWidthKey] = "screenshotsWidth",
+ ScreenshotsHeight = "screenshotsheight",
+ ScreenshotsWidth = "screenshotsWidth",
[Data.Models.Metadata.Header.SearchKey] = search,
System = "system",
Timestamp = "timestamp",
@@ -1042,8 +1042,8 @@ namespace SabreTools.Metadata.DatFiles.Test
Assert.Equal("rootdir", datHeader.RootDir);
Assert.Equal(Data.Models.Metadata.MergingFlag.Merged, datHeader.SampleMode);
Assert.Equal("schemalocation", datHeader.ReadString(Data.Models.Metadata.Header.SchemaLocationKey));
- Assert.Equal("screenshotsheight", datHeader.ReadString(Data.Models.Metadata.Header.ScreenshotsHeightKey));
- Assert.Equal("screenshotsWidth", datHeader.ReadString(Data.Models.Metadata.Header.ScreenshotsWidthKey));
+ Assert.Equal("screenshotsheight", datHeader.ScreenshotsHeight);
+ Assert.Equal("screenshotsWidth", datHeader.ScreenshotsWidth);
Assert.NotNull(datHeader.ReadString(Data.Models.Metadata.Header.SearchKey));
Assert.Equal("system", datHeader.System);
Assert.Equal("timestamp", datHeader.Timestamp);
diff --git a/SabreTools.Metadata.DatFiles.Test/DatFileTests.ToMetadata.cs b/SabreTools.Metadata.DatFiles.Test/DatFileTests.ToMetadata.cs
index 5b9af6fe..4835d4c8 100644
--- a/SabreTools.Metadata.DatFiles.Test/DatFileTests.ToMetadata.cs
+++ b/SabreTools.Metadata.DatFiles.Test/DatFileTests.ToMetadata.cs
@@ -387,8 +387,8 @@ namespace SabreTools.Metadata.DatFiles.Test
Assert.Equal("rootdir", header.RootDir);
Assert.Equal(Data.Models.Metadata.MergingFlag.Merged, header.SampleMode);
Assert.Equal("schemalocation", header.ReadString(Data.Models.Metadata.Header.SchemaLocationKey));
- Assert.Equal("screenshotsheight", header.ReadString(Data.Models.Metadata.Header.ScreenshotsHeightKey));
- Assert.Equal("screenshotsWidth", header.ReadString(Data.Models.Metadata.Header.ScreenshotsWidthKey));
+ Assert.Equal("screenshotsheight", header.ScreenshotsHeight);
+ Assert.Equal("screenshotsWidth", header.ScreenshotsWidth);
Assert.NotNull(header.Read(Data.Models.Metadata.Header.SearchKey));
Assert.Equal("system", header.System);
Assert.Equal("timestamp", header.Timestamp);
diff --git a/SabreTools.Metadata.DatFiles/DatFile.FromMetadata.cs b/SabreTools.Metadata.DatFiles/DatFile.FromMetadata.cs
index a9781137..d47b7517 100644
--- a/SabreTools.Metadata.DatFiles/DatFile.FromMetadata.cs
+++ b/SabreTools.Metadata.DatFiles/DatFile.FromMetadata.cs
@@ -154,10 +154,10 @@ namespace SabreTools.Metadata.DatFiles
Header.SampleMode = header.SampleMode;
if (Header.ReadString(Data.Models.Metadata.Header.SchemaLocationKey) is null)
Header.Write(Data.Models.Metadata.Header.SchemaLocationKey, header.ReadString(Data.Models.Metadata.Header.SchemaLocationKey));
- if (Header.ReadString(Data.Models.Metadata.Header.ScreenshotsHeightKey) is null)
- Header.Write(Data.Models.Metadata.Header.ScreenshotsHeightKey, header.ReadString(Data.Models.Metadata.Header.ScreenshotsHeightKey));
- if (Header.ReadString(Data.Models.Metadata.Header.ScreenshotsWidthKey) is null)
- Header.Write(Data.Models.Metadata.Header.ScreenshotsWidthKey, header.ReadString(Data.Models.Metadata.Header.ScreenshotsWidthKey));
+ if (Header.ScreenshotsHeight is null)
+ Header.ScreenshotsHeight = header.ScreenshotsHeight;
+ if (Header.ScreenshotsWidth is null)
+ Header.ScreenshotsWidth = header.ScreenshotsWidth;
if (Header.System is null)
Header.System = header.System;
if (Header.Timestamp is null)
diff --git a/SabreTools.Metadata.DatFiles/DatHeader.cs b/SabreTools.Metadata.DatFiles/DatHeader.cs
index 3d601c9f..0d5c4704 100644
--- a/SabreTools.Metadata.DatFiles/DatHeader.cs
+++ b/SabreTools.Metadata.DatFiles/DatHeader.cs
@@ -238,6 +238,18 @@ namespace SabreTools.Metadata.DatFiles
set => _internal.SampleMode = value;
}
+ public string? ScreenshotsHeight
+ {
+ get => _internal.ScreenshotsHeight;
+ set => _internal.ScreenshotsHeight = value;
+ }
+
+ public string? ScreenshotsWidth
+ {
+ get => _internal.ScreenshotsWidth;
+ set => _internal.ScreenshotsWidth = value;
+ }
+
[JsonIgnore]
public bool SearchSpecified
{
diff --git a/SabreTools.Metadata.Filter/FilterObject.cs b/SabreTools.Metadata.Filter/FilterObject.cs
index 0bd83177..26511e95 100644
--- a/SabreTools.Metadata.Filter/FilterObject.cs
+++ b/SabreTools.Metadata.Filter/FilterObject.cs
@@ -855,6 +855,12 @@ namespace SabreTools.Metadata.Filter
case Header item when fieldName == "samplemode":
checkValue = item.SampleMode.AsStringValue();
return true;
+ case Header item when fieldName == "screenshotsheight":
+ checkValue = item.ScreenshotsHeight;
+ return true;
+ case Header item when fieldName == "screenshotswidth":
+ checkValue = item.ScreenshotsWidth;
+ return true;
case Header item when fieldName == "system":
checkValue = item.System;
return true;
diff --git a/SabreTools.Metadata/DictionaryBaseExtensions.cs b/SabreTools.Metadata/DictionaryBaseExtensions.cs
index 6c9941a2..ccf77fa3 100644
--- a/SabreTools.Metadata/DictionaryBaseExtensions.cs
+++ b/SabreTools.Metadata/DictionaryBaseExtensions.cs
@@ -232,6 +232,10 @@ namespace SabreTools.Metadata
return false;
if (selfHeader.SampleMode != otherHeader.SampleMode)
return false;
+ if (selfHeader.ScreenshotsHeight != otherHeader.ScreenshotsHeight)
+ return false;
+ if (selfHeader.ScreenshotsWidth != otherHeader.ScreenshotsWidth)
+ return false;
if (selfHeader.System != otherHeader.System)
return false;
if (selfHeader.Timestamp != otherHeader.Timestamp)
diff --git a/SabreTools.Serialization.CrossModel/OfflineList.Deserializer.cs b/SabreTools.Serialization.CrossModel/OfflineList.Deserializer.cs
index 02efd5fe..d8b8fe37 100644
--- a/SabreTools.Serialization.CrossModel/OfflineList.Deserializer.cs
+++ b/SabreTools.Serialization.CrossModel/OfflineList.Deserializer.cs
@@ -38,15 +38,15 @@ namespace SabreTools.Serialization.CrossModel
if (item.Name is not null
|| item.ContainsKey(Data.Models.Metadata.Header.ImFolderKey)
- || item.DatVersion != null
- || item.System != null
- || item.ContainsKey(Data.Models.Metadata.Header.ScreenshotsWidthKey)
- || item.ContainsKey(Data.Models.Metadata.Header.ScreenshotsHeightKey)
+ || item.DatVersion is not null
+ || item.System is not null
+ || item.ScreenshotsHeight is not null
+ || item.ScreenshotsWidth is not null
|| item.ContainsKey(Data.Models.Metadata.Header.InfosKey)
|| item.ContainsKey(Data.Models.Metadata.Header.CanOpenKey)
|| item.ContainsKey(Data.Models.Metadata.Header.NewDatKey)
|| item.ContainsKey(Data.Models.Metadata.Header.SearchKey)
- || item.RomTitle != null)
+ || item.RomTitle is not null)
{
dat.Configuration = new Configuration
{
@@ -54,8 +54,8 @@ namespace SabreTools.Serialization.CrossModel
ImFolder = item.ReadString(Data.Models.Metadata.Header.ImFolderKey),
DatVersion = item.DatVersion,
System = item.System,
- ScreenshotsWidth = item.ReadString(Data.Models.Metadata.Header.ScreenshotsWidthKey),
- ScreenshotsHeight = item.ReadString(Data.Models.Metadata.Header.ScreenshotsHeightKey),
+ ScreenshotsWidth = item.ScreenshotsHeight,
+ ScreenshotsHeight = item.ScreenshotsWidth,
Infos = item.Read(Data.Models.Metadata.Header.InfosKey),
CanOpen = item.Read(Data.Models.Metadata.Header.CanOpenKey),
NewDat = item.Read(Data.Models.Metadata.Header.NewDatKey),
diff --git a/SabreTools.Serialization.CrossModel/OfflineList.Serializer.cs b/SabreTools.Serialization.CrossModel/OfflineList.Serializer.cs
index ac4e12da..7a8dcf6c 100644
--- a/SabreTools.Serialization.CrossModel/OfflineList.Serializer.cs
+++ b/SabreTools.Serialization.CrossModel/OfflineList.Serializer.cs
@@ -41,8 +41,8 @@ namespace SabreTools.Serialization.CrossModel
header[Data.Models.Metadata.Header.ImFolderKey] = item.Configuration.ImFolder;
header.DatVersion = item.Configuration.DatVersion;
header.System = item.Configuration.System;
- header[Data.Models.Metadata.Header.ScreenshotsWidthKey] = item.Configuration.ScreenshotsWidth;
- header[Data.Models.Metadata.Header.ScreenshotsHeightKey] = item.Configuration.ScreenshotsHeight;
+ header.ScreenshotsHeight = item.Configuration.ScreenshotsWidth;
+ header.ScreenshotsWidth = item.Configuration.ScreenshotsHeight;
header[Data.Models.Metadata.Header.InfosKey] = item.Configuration.Infos;
header[Data.Models.Metadata.Header.CanOpenKey] = item.Configuration.CanOpen;
header[Data.Models.Metadata.Header.NewDatKey] = item.Configuration.NewDat;