diff --git a/SabreTools.Filtering/ExtraIniItem.cs b/SabreTools.Core/Filter/ExtraIniItem.cs similarity index 94% rename from SabreTools.Filtering/ExtraIniItem.cs rename to SabreTools.Core/Filter/ExtraIniItem.cs index e7697c47..f1adf758 100644 --- a/SabreTools.Filtering/ExtraIniItem.cs +++ b/SabreTools.Core/Filter/ExtraIniItem.cs @@ -1,10 +1,9 @@ using System; using System.Collections.Generic; -using SabreTools.Core.Filter; using SabreTools.IO.Logging; using SabreTools.IO.Readers; -namespace SabreTools.Filtering +namespace SabreTools.Core.Filter { public class ExtraIniItem { @@ -25,9 +24,11 @@ namespace SabreTools.Filtering #region Constructors - public ExtraIniItem(string itemName, string fieldName) + public ExtraIniItem(string itemName, string fieldName, string ini) { Key = new FilterKey(itemName, fieldName); + if (!PopulateFromFile(ini)) + Mappings.Clear(); } #endregion @@ -46,7 +47,7 @@ namespace SabreTools.Filtering /// the value is boolean. If there's another section name, then that is set /// as the value instead. /// - public bool PopulateFromFile(string ini) + private bool PopulateFromFile(string ini) { // Prepare all intenral variables IniReader ir = new(ini) { ValidateRows = false }; diff --git a/SabreTools.Filtering/ExtraIni.cs b/SabreTools.Filtering/ExtraIni.cs index fb324340..ece47577 100644 --- a/SabreTools.Filtering/ExtraIni.cs +++ b/SabreTools.Filtering/ExtraIni.cs @@ -67,8 +67,8 @@ namespace SabreTools.Filtering string fileString = inputTrimmed.Substring(fieldString.Length + 1).Trim('"', ' ', '\t'); FilterParser.ParseFilterId(fieldString, out string itemName, out string fieldName); - var item = new ExtraIniItem(itemName, fieldName); - if (item.PopulateFromFile(fileString)) + var item = new ExtraIniItem(itemName, fieldName, fileString); + if (item.Mappings.Count > 0) Items.Add(item); } diff --git a/SabreTools/Features/Batch.cs b/SabreTools/Features/Batch.cs index 21644815..c1db61a0 100644 --- a/SabreTools/Features/Batch.cs +++ b/SabreTools/Features/Batch.cs @@ -342,8 +342,7 @@ Reset the internal state: reset();"; // Create the extra INI var extraIni = new ExtraIni(); - var extraIniItem = new ExtraIniItem(itemName, fieldName); - extraIniItem.PopulateFromFile(extraFile); + var extraIniItem = new ExtraIniItem(itemName, fieldName, extraFile); extraIni.Items.Add(extraIniItem); // Apply the extra INI blindly