From 19778947d87c34aa1ef12adf5f97ab1624012c16 Mon Sep 17 00:00:00 2001 From: Matt Nadareski Date: Mon, 3 Apr 2023 12:24:42 -0400 Subject: [PATCH] Add header-level No-Intro ID support --- SabreTools.Core/Enums.cs | 1 + SabreTools.Core/Tools/Converters.cs | 5 +++++ SabreTools.DatFiles/DatHeader.cs | 31 +++++++++++++++++++++++++++ SabreTools.DatFiles/Formats/Logiqx.cs | 5 +++++ SabreTools.DatFiles/Setter.cs | 3 +++ 5 files changed, 45 insertions(+) diff --git a/SabreTools.Core/Enums.cs b/SabreTools.Core/Enums.cs index de487bb3..a1c97755 100644 --- a/SabreTools.Core/Enums.cs +++ b/SabreTools.Core/Enums.cs @@ -485,6 +485,7 @@ namespace SabreTools.Core #region Logiqx + NoIntroID, Build, RomMode, BiosMode, diff --git a/SabreTools.Core/Tools/Converters.cs b/SabreTools.Core/Tools/Converters.cs index b3551548..c44f267f 100644 --- a/SabreTools.Core/Tools/Converters.cs +++ b/SabreTools.Core/Tools/Converters.cs @@ -199,6 +199,11 @@ namespace SabreTools.Core.Tools #region Logiqx + case "id": + case "nointroid": + case "no_intro_id": + return DatHeaderField.NoIntroID; + case "build": return DatHeaderField.Build; diff --git a/SabreTools.DatFiles/DatHeader.cs b/SabreTools.DatFiles/DatHeader.cs index bec7542b..e5246e02 100644 --- a/SabreTools.DatFiles/DatHeader.cs +++ b/SabreTools.DatFiles/DatHeader.cs @@ -181,6 +181,13 @@ namespace SabreTools.DatFiles #region Logiqx + /// + /// No-Intro system ID + /// + [JsonProperty("nointroid", DefaultValueHandling = DefaultValueHandling.Include)] + [XmlElement("nointroid")] + public string NoIntroID { get; set; } + /// /// Build version /// @@ -475,6 +482,9 @@ namespace SabreTools.DatFiles #region Logiqx + if (mappings.Keys.Contains(DatHeaderField.NoIntroID)) + NoIntroID = mappings[DatHeaderField.NoIntroID]; + if (mappings.Keys.Contains(DatHeaderField.Build)) Build = mappings[DatHeaderField.Build]; @@ -555,6 +565,27 @@ namespace SabreTools.DatFiles ForcePacking = this.ForcePacking, DatFormat = this.DatFormat, + Debug = this.Debug, + MameConfig = this.MameConfig, + + NoIntroID = this.NoIntroID, + Build = this.Build, + System = this.System, + RomMode = this.RomMode, + BiosMode = this.BiosMode, + SampleMode = this.SampleMode, + LockRomMode = this.LockRomMode, + LockBiosMode = this.LockBiosMode, + LockSampleMode = this.LockSampleMode, + + ScreenshotsWidth = this.ScreenshotsWidth, + ScreenshotsHeight = this.ScreenshotsHeight, + Infos = this.Infos, // TODO: Perform a deep clone + CanOpen = this.CanOpen, // TODO: Perform a deep clone + RomTitle = this.RomTitle, + + RomCenterVersion = this.RomCenterVersion, + UseRomName = this.UseRomName, Prefix = this.Prefix, Postfix = this.Postfix, diff --git a/SabreTools.DatFiles/Formats/Logiqx.cs b/SabreTools.DatFiles/Formats/Logiqx.cs index 37a80ef3..d89eaf85 100644 --- a/SabreTools.DatFiles/Formats/Logiqx.cs +++ b/SabreTools.DatFiles/Formats/Logiqx.cs @@ -315,6 +315,11 @@ namespace SabreTools.DatFiles.Formats string content; switch (reader.Name) { + case "id": + content = reader.ReadElementContentAsString(); + Header.NoIntroID ??= content; + break; + case "name": content = reader.ReadElementContentAsString(); Header.Name ??= content; diff --git a/SabreTools.DatFiles/Setter.cs b/SabreTools.DatFiles/Setter.cs index d6435a0b..cbd92680 100644 --- a/SabreTools.DatFiles/Setter.cs +++ b/SabreTools.DatFiles/Setter.cs @@ -170,6 +170,9 @@ namespace SabreTools.DatFiles #region Logiqx + if (DatHeaderMappings.Keys.Contains(DatHeaderField.NoIntroID)) + datHeader.NoIntroID = DatHeaderMappings[DatHeaderField.NoIntroID]; + if (DatHeaderMappings.Keys.Contains(DatHeaderField.Build)) datHeader.Build = DatHeaderMappings[DatHeaderField.Build];