From 04e5980e01a460c6c6b1e2854db819ee73dadc91 Mon Sep 17 00:00:00 2001 From: Matt Nadareski Date: Thu, 2 Feb 2017 23:04:24 -0800 Subject: [PATCH] [DatFile] Make runnable flag better --- SabreTools.Helper/Dats/Machine.cs | 8 ++++---- SabreTools.Helper/Dats/Partials/DatFile.DFD.cs | 1 - .../Dats/Partials/DatFile.Parsers.cs | 15 ++++++++++++++- .../Dats/Partials/DatFile.Writers.cs | 2 +- 4 files changed, 19 insertions(+), 7 deletions(-) diff --git a/SabreTools.Helper/Dats/Machine.cs b/SabreTools.Helper/Dats/Machine.cs index fefd5d06..e5b2dc81 100644 --- a/SabreTools.Helper/Dats/Machine.cs +++ b/SabreTools.Helper/Dats/Machine.cs @@ -19,7 +19,7 @@ namespace SabreTools.Helper.Dats protected string _cloneOf; protected string _sampleOf; protected string _sourceFile; - protected bool _runnable; + protected bool? _runnable; protected string _board; protected string _rebuildTo; protected List _devices; @@ -75,7 +75,7 @@ namespace SabreTools.Helper.Dats get { return _sourceFile; } set { _sourceFile = value; } } - public bool Runnable + public bool? Runnable { get { return _runnable; } set { _runnable = value; } @@ -112,7 +112,7 @@ namespace SabreTools.Helper.Dats { _name = ""; _description = ""; - _runnable = true; + _runnable = null; } /// @@ -124,7 +124,7 @@ namespace SabreTools.Helper.Dats { _name = name; _description = description; - _runnable = true; + _runnable = null; } #endregion diff --git a/SabreTools.Helper/Dats/Partials/DatFile.DFD.cs b/SabreTools.Helper/Dats/Partials/DatFile.DFD.cs index 2d807c20..6082b698 100644 --- a/SabreTools.Helper/Dats/Partials/DatFile.DFD.cs +++ b/SabreTools.Helper/Dats/Partials/DatFile.DFD.cs @@ -437,7 +437,6 @@ namespace SabreTools.Helper.Dats { Name = gamename, Description = gamename, - Runnable = false, }; } else diff --git a/SabreTools.Helper/Dats/Partials/DatFile.Parsers.cs b/SabreTools.Helper/Dats/Partials/DatFile.Parsers.cs index 049e57bb..001beae1 100644 --- a/SabreTools.Helper/Dats/Partials/DatFile.Parsers.cs +++ b/SabreTools.Helper/Dats/Partials/DatFile.Parsers.cs @@ -1274,7 +1274,6 @@ namespace SabreTools.Helper.Dats xtr.GetAttribute("isdevice") == "yes" ? MachineType.Device : xtr.GetAttribute("ismechanical") == "yes" ? MachineType.Mechanical : MachineType.None, - Runnable = xtr.GetAttribute("runnable") == "yes" || xtr.GetAttribute("runnable") == null, }; // Get the supported value from the reader @@ -1291,6 +1290,20 @@ namespace SabreTools.Helper.Dats } } + // Get the runnable value from the reader + if (subreader.GetAttribute("runnable") != null) + { + switch (subreader.GetAttribute("runnable")) + { + case "no": + machine.Runnable = false; + break; + case "yes": + machine.Runnable = true; + break; + } + } + if (superdat && !keep) { string tempout = Regex.Match(machine.Name, @".*?\\(.*)").Groups[1].Value; diff --git a/SabreTools.Helper/Dats/Partials/DatFile.Writers.cs b/SabreTools.Helper/Dats/Partials/DatFile.Writers.cs index 09000e44..4f423a3f 100644 --- a/SabreTools.Helper/Dats/Partials/DatFile.Writers.cs +++ b/SabreTools.Helper/Dats/Partials/DatFile.Writers.cs @@ -488,7 +488,7 @@ namespace SabreTools.Helper.Dats (rom.Machine.MachineType == MachineType.Bios ? " isbios=\"yes\"" : "") + (rom.Machine.MachineType == MachineType.Device ? " isdevice=\"yes\"" : "") + (rom.Machine.MachineType == MachineType.Mechanical ? " ismechanical=\"yes\"" : "") + - (rom.Machine.Runnable ? " runnable=\"yes\"" : "") + + (rom.Machine.Runnable == true ? " runnable=\"yes\"" : "") + (String.IsNullOrEmpty(rom.Machine.CloneOf) || (rom.Machine.Name.ToLowerInvariant() == rom.Machine.CloneOf.ToLowerInvariant()) ? "" : " cloneof=\"" + HttpUtility.HtmlEncode(rom.Machine.CloneOf) + "\"") +