From ecd037d338b79c14e917d16aa961b019881a126a Mon Sep 17 00:00:00 2001 From: Marcel Greter Date: Mon, 29 Jul 2024 18:45:35 +0200 Subject: [PATCH] Fix XML-Patcher for V1 compatibility --- Library/Utils/ModXmlPatcher.cs | 21 ++++++++------------- MicroSplat.dll | Bin 81408 -> 81408 bytes ModInfo.xml | 2 +- README.md | 4 ++++ 4 files changed, 13 insertions(+), 14 deletions(-) diff --git a/Library/Utils/ModXmlPatcher.cs b/Library/Utils/ModXmlPatcher.cs index 13d82de..a4730dd 100644 --- a/Library/Utils/ModXmlPatcher.cs +++ b/Library/Utils/ModXmlPatcher.cs @@ -27,7 +27,6 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE using System.Collections.Generic; using System.IO; using System.Linq; -using System.Reflection; using System.Text; using System.Xml; using System.Xml.Linq; @@ -181,9 +180,6 @@ private static void ReplaceTemplateOccurences( kv.Value); } - // We need to call into the private function to proceed with XML patching - private static readonly MethodInfo MethodSinglePatch = AccessTools.Method(typeof(XmlPatcher), "singlePatch"); - // Function to load another XML file and basically call the same PatchXML function again private static bool IncludeAnotherDocument(XmlFile target, XmlFile parent, XElement element, Mod mod) { @@ -223,7 +219,7 @@ private static bool IncludeAnotherDocument(XmlFile target, XmlFile parent, XElem continue; } result &= XmlPatcher.PatchXml( - target, element, _patchXml, mod); + target, _patchXml.XmlDoc.Root, _patchXml, mod); } catch (Exception ex) { @@ -272,7 +268,7 @@ public static bool PatchXml(XmlFile xmlFile, } } // Otherwise try to apply the patches found in child element - else if (!ApplyPatchEntry(xmlFile, child, patchXml, mod, ref stack)) + else if (!ApplyPatchEntry(xmlFile, patchXml, child, mod, ref stack)) { IXmlLineInfo lineInfo = child; Log.Warning(string.Format("XML patch for \"{0}\" from mod \"{1}\" did not apply: {2} (line {3} at pos {4})", @@ -293,8 +289,8 @@ public struct ParserStack // Entry point instead of (private) `XmlPatcher.singlePatch` // Implements conditional patching and also allows includes - private static bool ApplyPatchEntry(XmlFile _targetFile, XElement _patchElement, - XmlFile _patchFile, Mod _patchingMod, ref ParserStack stack) + private static bool ApplyPatchEntry(XmlFile _targetFile, XmlFile _patchFile, + XElement _patchElement, Mod _patchingMod, ref ParserStack stack) { // Only support root level @@ -381,8 +377,8 @@ private static bool ApplyPatchEntry(XmlFile _targetFile, XElement _patchElement, stack.IfClauseParsed = false; stack.PreviousResult = true; // Dispatch to original function - return (bool)MethodSinglePatch.Invoke(null, - new object[] { _targetFile, _patchElement, _patchFile, _patchingMod }); + return XmlPatcher.singlePatch(_targetFile, + _patchElement, _patchFile, _patchingMod); } } @@ -416,9 +412,8 @@ static bool Prefix( if (int.Parse(version) > 5) return true; } // Call out to static helper function - __result = PatchXml( - _xmlFile, _patchFile, - element, _patchingMod); + __result = PatchXml(_xmlFile, _patchFile, + _containerElement, _patchingMod); // First one wins _patchFile = null; return false; diff --git a/MicroSplat.dll b/MicroSplat.dll index dfc157f3ff6a33afd5991852148d7edd34d77fd0..a0ee49f64d39f518cc4523ce9af920c8a1e6a50d 100644 GIT binary patch delta 11073 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 S7tbwCtv7ZfS4r?u<^KZZEIhIR delta 11167 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 Z8_6NNq#opVo;#Da%hZcpA$1R^{|84{JIw$9 diff --git a/ModInfo.xml b/ModInfo.xml index f0ffce2..979682f 100644 --- a/ModInfo.xml +++ b/ModInfo.xml @@ -5,5 +5,5 @@ - + \ No newline at end of file diff --git a/README.md b/README.md index 0c04809..c3ccb8e 100644 --- a/README.md +++ b/README.md @@ -252,6 +252,10 @@ Download from https://github.com/OCB7D2D/OcbMicroSplatHelper/releases ## Changelog +### Version 0.9.2 + +- Fix XML-Patcher for V1 compatibility + ### Version 0.9.1 - Fix potential NRE when unloading textures