Add No-Intro MIA support

This commit is contained in:
Matt Nadareski
2023-03-26 22:03:29 -04:00
parent 2681e4a997
commit dc79249d61
9 changed files with 59 additions and 3 deletions

View File

@@ -565,6 +565,9 @@ namespace SabreTools.Core
AltName, AltName,
AltTitle, AltTitle,
// Rom (Logiqx)
MIA,
// Rom (OpenMSX) // Rom (OpenMSX)
Original, Original,
OpenMSXSubType, OpenMSXSubType,

View File

@@ -449,6 +449,10 @@ namespace SabreTools.Core.Tools
case "alt-romtitle": case "alt-romtitle":
return DatItemField.AltTitle; return DatItemField.AltTitle;
// Rom (Logiqx)
case "mia":
return DatItemField.MIA;
// Rom (OpenMSX) // Rom (OpenMSX)
case "original": case "original":
return DatItemField.Original; return DatItemField.Original;

View File

@@ -606,6 +606,7 @@ namespace SabreTools.DatFiles.Formats
ItemStatus = reader.GetAttribute("status").AsItemStatus(), ItemStatus = reader.GetAttribute("status").AsItemStatus(),
Date = CleanDate(reader.GetAttribute("date")), Date = CleanDate(reader.GetAttribute("date")),
Inverted = reader.GetAttribute("inverted").AsYesNo(), Inverted = reader.GetAttribute("inverted").AsYesNo(),
MIA = reader.GetAttribute("mia").AsYesNo(),
Source = new Source Source = new Source
{ {
@@ -1090,6 +1091,7 @@ namespace SabreTools.DatFiles.Formats
xtw.WriteOptionalAttributeString("date", rom.Date); xtw.WriteOptionalAttributeString("date", rom.Date);
xtw.WriteOptionalAttributeString("status", rom.ItemStatus.FromItemStatus(false)); xtw.WriteOptionalAttributeString("status", rom.ItemStatus.FromItemStatus(false));
xtw.WriteOptionalAttributeString("inverted", rom.Inverted.FromYesNo()); xtw.WriteOptionalAttributeString("inverted", rom.Inverted.FromYesNo());
xtw.WriteOptionalAttributeString("mia", rom.MIA.FromYesNo());
xtw.WriteEndElement(); xtw.WriteEndElement();
break; break;

View File

@@ -1123,6 +1123,9 @@ namespace SabreTools.DatFiles
if (DatItemMappings.Keys.Contains(DatItemField.AltTitle)) if (DatItemMappings.Keys.Contains(DatItemField.AltTitle))
rom.AltTitle = DatItemMappings[DatItemField.AltTitle]; rom.AltTitle = DatItemMappings[DatItemField.AltTitle];
if (DatItemMappings.Keys.Contains(DatItemField.MIA))
rom.MIA = DatItemMappings[DatItemField.MIA].AsYesNo();
#endregion #endregion
#region OpenMSX #region OpenMSX

View File

@@ -230,6 +230,19 @@ namespace SabreTools.DatItems.Formats
#endregion #endregion
#region Logiqx
/// <summary>
/// Alternate title for the item
/// </summary>
[JsonProperty("mia", DefaultValueHandling = DefaultValueHandling.Ignore), XmlElement("mia")]
public bool? MIA { get; set; } = null;
[JsonIgnore]
public bool MIASpecified { get { return MIA != null; } }
#endregion
#region OpenMSX #region OpenMSX
/// <summary> /// <summary>
@@ -432,6 +445,8 @@ namespace SabreTools.DatItems.Formats
AltName = this.AltName, AltName = this.AltName,
AltTitle = this.AltTitle, AltTitle = this.AltTitle,
MIA = this.MIA,
Original = this.Original, Original = this.Original,
OpenMSXSubType = this.OpenMSXSubType, OpenMSXSubType = this.OpenMSXSubType,
OpenMSXType = this.OpenMSXType, OpenMSXType = this.OpenMSXType,

View File

@@ -51,11 +51,13 @@ namespace SabreTools.Filtering
public FilterItem<string> Rotation { get; private set; } = new FilterItem<string>(); public FilterItem<string> Rotation { get; private set; } = new FilterItem<string>();
public FilterItem<string> Summation { get; private set; } = new FilterItem<string>(); public FilterItem<string> Summation { get; private set; } = new FilterItem<string>();
// Rom (AttractMode) // Rom (AttractMode)
public FilterItem<string> AltName { get; private set; } = new FilterItem<string>(); public FilterItem<string> AltName { get; private set; } = new FilterItem<string>();
public FilterItem<string> AltTitle { get; private set; } = new FilterItem<string>(); public FilterItem<string> AltTitle { get; private set; } = new FilterItem<string>();
// Rom (Logiqx)
public FilterItem<bool?> MIA { get; private set; } = new FilterItem<bool?>();
// Rom (OpenMSX) // Rom (OpenMSX)
public FilterItem<string> Original { get; private set; } = new FilterItem<string>(); public FilterItem<string> Original { get; private set; } = new FilterItem<string>();
public FilterItem<OpenMSXSubType> OpenMSXSubType { get; private set; } = new FilterItem<OpenMSXSubType>() { Positive = Core.OpenMSXSubType.NULL, Negative = Core.OpenMSXSubType.NULL }; public FilterItem<OpenMSXSubType> OpenMSXSubType { get; private set; } = new FilterItem<OpenMSXSubType>() { Positive = Core.OpenMSXSubType.NULL, Negative = Core.OpenMSXSubType.NULL };
@@ -368,6 +370,11 @@ namespace SabreTools.Filtering
SetStringFilter(AltTitle, value, negate); SetStringFilter(AltTitle, value, negate);
break; break;
// Rom (Logiqx)
case DatItemField.MIA:
SetBooleanFilter(MIA, value, negate);
break;
// Rom (OpenMSX) // Rom (OpenMSX)
case DatItemField.Original: case DatItemField.Original:
SetStringFilter(Original, value, negate); SetStringFilter(Original, value, negate);
@@ -1855,6 +1862,14 @@ namespace SabreTools.Filtering
#endregion #endregion
#region Logiqx
// Filter on MIA>
if (!PassBoolFilter(MIA, rom.MIA))
return false;
#endregion
#region OpenMSX #region OpenMSX
// Filter on original // Filter on original

View File

@@ -965,6 +965,13 @@ namespace SabreTools.Filtering
#endregion #endregion
#region Logiqx
if (DatItemFields.Contains(DatItemField.MIA))
rom.MIA = null;
#endregion
#region OpenMSX #region OpenMSX
if (DatItemFields.Contains(DatItemField.Original)) if (DatItemFields.Contains(DatItemField.Original))

View File

@@ -954,6 +954,13 @@ namespace SabreTools.Filtering
#endregion #endregion
#region Logiqx
if (datItemFields.Contains(DatItemField.MIA))
rom.MIA = newItem.MIA;
#endregion
#region OpenMSX #region OpenMSX
if (datItemFields.Contains(DatItemField.Original)) if (datItemFields.Contains(DatItemField.Original))

View File

@@ -44,8 +44,8 @@
<relatedto>game3</relatedto> <relatedto>game3</relatedto>
</trurip> </trurip>
<disk name="disk" md5="a41d8cd98f00b204e9800998ecf8427e" sha1="aa39a3ee5e6b4b0d3255bfef95601890afd80709" merge="disk2" status="good" /> <disk name="disk" md5="a41d8cd98f00b204e9800998ecf8427e" sha1="aa39a3ee5e6b4b0d3255bfef95601890afd80709" merge="disk2" status="good" />
<media name="media" md5="b41d8cd98f00b204e9800998ecf8427e" sha1="ba39a3ee5e6b4b0d3255bfef95601890afd80709" sha256="aa7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad" spamsum="QXXY" /> <media name="media" md5="b41d8cd98f00b204e9800998ecf8427e" sha1="ba39a3ee5e6b4b0d3255bfef95601890afd80709" sha256="aa7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad" spamsum="QXXY"/>
<rom name="rom.bin" size="1024" crc="deadbeef" md5="c41d8cd98f00b204e9800998ecf8427e" sha1="ca39a3ee5e6b4b0d3255bfef95601890afd80709" sha256="ca7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad" sha384="ab00753f45a35e8bb5a03d699ac65007272c32ab0eded1631a8b605a43ff5bed8086072ba1e7cc2358baeca134c825a7" sha512="cdaf35a193617abacc417349ae20413112e6fa4e89a97ea20a9eeee64b55d39a2192992a274fc1a836ba3c23a3feebbd454d4423643ce80e2a9ac94fa54ca49f" spamsum="QXXZ" merge="rom2.bin" status="good" date="1980-01-01" inverted="true" /> <rom name="rom.bin" size="1024" crc="deadbeef" md5="c41d8cd98f00b204e9800998ecf8427e" sha1="ca39a3ee5e6b4b0d3255bfef95601890afd80709" sha256="ca7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad" sha384="ab00753f45a35e8bb5a03d699ac65007272c32ab0eded1631a8b605a43ff5bed8086072ba1e7cc2358baeca134c825a7" sha512="cdaf35a193617abacc417349ae20413112e6fa4e89a97ea20a9eeee64b55d39a2192992a274fc1a836ba3c23a3feebbd454d4423643ce80e2a9ac94fa54ca49f" spamsum="QXXZ" merge="rom2.bin" status="good" date="1980-01-01" inverted="true" mia="yes" />
</machine> </machine>
<game name="game2"> <game name="game2">
<archive name="archive" /> <archive name="archive" />