diff --git a/SabreTools.Core/Enums.cs b/SabreTools.Core/Enums.cs
index 6d619839..587a9e7a 100644
--- a/SabreTools.Core/Enums.cs
+++ b/SabreTools.Core/Enums.cs
@@ -565,6 +565,9 @@ namespace SabreTools.Core
AltName,
AltTitle,
+ // Rom (Logiqx)
+ MIA,
+
// Rom (OpenMSX)
Original,
OpenMSXSubType,
diff --git a/SabreTools.Core/Tools/Converters.cs b/SabreTools.Core/Tools/Converters.cs
index 3d849507..653489d1 100644
--- a/SabreTools.Core/Tools/Converters.cs
+++ b/SabreTools.Core/Tools/Converters.cs
@@ -449,6 +449,10 @@ namespace SabreTools.Core.Tools
case "alt-romtitle":
return DatItemField.AltTitle;
+ // Rom (Logiqx)
+ case "mia":
+ return DatItemField.MIA;
+
// Rom (OpenMSX)
case "original":
return DatItemField.Original;
diff --git a/SabreTools.DatFiles/Formats/Logiqx.cs b/SabreTools.DatFiles/Formats/Logiqx.cs
index 47b51cd7..b94c1bbe 100644
--- a/SabreTools.DatFiles/Formats/Logiqx.cs
+++ b/SabreTools.DatFiles/Formats/Logiqx.cs
@@ -606,6 +606,7 @@ namespace SabreTools.DatFiles.Formats
ItemStatus = reader.GetAttribute("status").AsItemStatus(),
Date = CleanDate(reader.GetAttribute("date")),
Inverted = reader.GetAttribute("inverted").AsYesNo(),
+ MIA = reader.GetAttribute("mia").AsYesNo(),
Source = new Source
{
@@ -1090,6 +1091,7 @@ namespace SabreTools.DatFiles.Formats
xtw.WriteOptionalAttributeString("date", rom.Date);
xtw.WriteOptionalAttributeString("status", rom.ItemStatus.FromItemStatus(false));
xtw.WriteOptionalAttributeString("inverted", rom.Inverted.FromYesNo());
+ xtw.WriteOptionalAttributeString("mia", rom.MIA.FromYesNo());
xtw.WriteEndElement();
break;
diff --git a/SabreTools.DatFiles/Setter.cs b/SabreTools.DatFiles/Setter.cs
index a54e51dd..6f3e1e58 100644
--- a/SabreTools.DatFiles/Setter.cs
+++ b/SabreTools.DatFiles/Setter.cs
@@ -1123,6 +1123,9 @@ namespace SabreTools.DatFiles
if (DatItemMappings.Keys.Contains(DatItemField.AltTitle))
rom.AltTitle = DatItemMappings[DatItemField.AltTitle];
+ if (DatItemMappings.Keys.Contains(DatItemField.MIA))
+ rom.MIA = DatItemMappings[DatItemField.MIA].AsYesNo();
+
#endregion
#region OpenMSX
diff --git a/SabreTools.DatItems/Formats/Rom.cs b/SabreTools.DatItems/Formats/Rom.cs
index 64464468..b3e6d7f9 100644
--- a/SabreTools.DatItems/Formats/Rom.cs
+++ b/SabreTools.DatItems/Formats/Rom.cs
@@ -230,6 +230,19 @@ namespace SabreTools.DatItems.Formats
#endregion
+ #region Logiqx
+
+ ///
+ /// Alternate title for the item
+ ///
+ [JsonProperty("mia", DefaultValueHandling = DefaultValueHandling.Ignore), XmlElement("mia")]
+ public bool? MIA { get; set; } = null;
+
+ [JsonIgnore]
+ public bool MIASpecified { get { return MIA != null; } }
+
+ #endregion
+
#region OpenMSX
///
@@ -432,6 +445,8 @@ namespace SabreTools.DatItems.Formats
AltName = this.AltName,
AltTitle = this.AltTitle,
+ MIA = this.MIA,
+
Original = this.Original,
OpenMSXSubType = this.OpenMSXSubType,
OpenMSXType = this.OpenMSXType,
diff --git a/SabreTools.Filtering/DatItemFilter.cs b/SabreTools.Filtering/DatItemFilter.cs
index 3622a722..6ba26de1 100644
--- a/SabreTools.Filtering/DatItemFilter.cs
+++ b/SabreTools.Filtering/DatItemFilter.cs
@@ -51,11 +51,13 @@ namespace SabreTools.Filtering
public FilterItem Rotation { get; private set; } = new FilterItem();
public FilterItem Summation { get; private set; } = new FilterItem();
-
// Rom (AttractMode)
public FilterItem AltName { get; private set; } = new FilterItem();
public FilterItem AltTitle { get; private set; } = new FilterItem();
+ // Rom (Logiqx)
+ public FilterItem MIA { get; private set; } = new FilterItem();
+
// Rom (OpenMSX)
public FilterItem Original { get; private set; } = new FilterItem();
public FilterItem OpenMSXSubType { get; private set; } = new FilterItem() { Positive = Core.OpenMSXSubType.NULL, Negative = Core.OpenMSXSubType.NULL };
@@ -368,6 +370,11 @@ namespace SabreTools.Filtering
SetStringFilter(AltTitle, value, negate);
break;
+ // Rom (Logiqx)
+ case DatItemField.MIA:
+ SetBooleanFilter(MIA, value, negate);
+ break;
+
// Rom (OpenMSX)
case DatItemField.Original:
SetStringFilter(Original, value, negate);
@@ -1855,6 +1862,14 @@ namespace SabreTools.Filtering
#endregion
+ #region Logiqx
+
+ // Filter on MIA>
+ if (!PassBoolFilter(MIA, rom.MIA))
+ return false;
+
+ #endregion
+
#region OpenMSX
// Filter on original
diff --git a/SabreTools.Filtering/DatItemRemover.cs b/SabreTools.Filtering/DatItemRemover.cs
index fbeed346..aed05529 100644
--- a/SabreTools.Filtering/DatItemRemover.cs
+++ b/SabreTools.Filtering/DatItemRemover.cs
@@ -965,6 +965,13 @@ namespace SabreTools.Filtering
#endregion
+ #region Logiqx
+
+ if (DatItemFields.Contains(DatItemField.MIA))
+ rom.MIA = null;
+
+ #endregion
+
#region OpenMSX
if (DatItemFields.Contains(DatItemField.Original))
diff --git a/SabreTools.Filtering/Replacer.cs b/SabreTools.Filtering/Replacer.cs
index c7b41ae2..7331961b 100644
--- a/SabreTools.Filtering/Replacer.cs
+++ b/SabreTools.Filtering/Replacer.cs
@@ -954,6 +954,13 @@ namespace SabreTools.Filtering
#endregion
+ #region Logiqx
+
+ if (datItemFields.Contains(DatItemField.MIA))
+ rom.MIA = newItem.MIA;
+
+ #endregion
+
#region OpenMSX
if (datItemFields.Contains(DatItemField.Original))
diff --git a/SabreTools.Test/TestData/test-logiqx.xml b/SabreTools.Test/TestData/test-logiqx.xml
index 4bb21012..57d42740 100644
--- a/SabreTools.Test/TestData/test-logiqx.xml
+++ b/SabreTools.Test/TestData/test-logiqx.xml
@@ -44,8 +44,8 @@
game3
-
-
+
+