From 35f8bc35b51da1d3adef64c083174b2264a2aeb8 Mon Sep 17 00:00:00 2001 From: Sam Byass Date: Tue, 20 Jul 2021 20:52:31 +0100 Subject: [PATCH] Fix incompatibility with HugsLib 9.0 --- 1.3/Assemblies/BetterLoading.dll | Bin 86528 -> 86016 bytes About/Manifest.xml | 2 +- Source/Compat/HugsLib/StageHugsLibInit.cs | 43 ++++++------------ .../9StageRunPostFinalizeCallbacks.cs | 1 - 4 files changed, 14 insertions(+), 32 deletions(-) diff --git a/1.3/Assemblies/BetterLoading.dll b/1.3/Assemblies/BetterLoading.dll index e3fd870991a4e74bc66b66e4d2a6a9dd136269c6..af1697f696fd51d387f901004d14dccc517851f8 100644 GIT binary patch delta 24087 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 k)Z&S_)3#C&j=Y;8$ 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 diff --git a/About/Manifest.xml b/About/Manifest.xml index dfcb520..7f755b9 100755 --- a/About/Manifest.xml +++ b/About/Manifest.xml @@ -1,7 +1,7 @@ BetterLoading - 3.1.3.0 + 3.1.3.1
  • Core >= 1.0
  • Startupimpact
  • diff --git a/Source/Compat/HugsLib/StageHugsLibInit.cs b/Source/Compat/HugsLib/StageHugsLibInit.cs index f412227..dc14ea2 100755 --- a/Source/Compat/HugsLib/StageHugsLibInit.cs +++ b/Source/Compat/HugsLib/StageHugsLibInit.cs @@ -16,11 +16,10 @@ public class StageHugsLibInit : LoadingStage private static List? _children; private static int _numChildrenInitialized; - private static int _numChildrenCheckedForUpdate; private static int _numChildrenDefLoaded; private static object? _currentChildMod; - private static Harmony? hInstance; + private static Harmony hInstance; private static PropertyInfo _modIdentifierProperty; @@ -42,27 +41,23 @@ public override string GetStageName() if (_currentChildMod != null) { - if (_numChildrenInitialized < _children.Count) + if (_numChildrenInitialized < _children!.Count) return $"Initializing child mods: {_numChildrenInitialized} / {_children}: {_modIdentifierProperty.GetValue(_currentChildMod, null)}"; - if (_numChildrenCheckedForUpdate < _children.Count) - return $"Checking for mod updates: {_numChildrenCheckedForUpdate} / {_children}: {_modIdentifierProperty.GetValue(_currentChildMod, null)}"; - if (_numChildrenDefLoaded < _children.Count) return $"Invoking post-load callbacks: {_numChildrenDefLoaded} / {_children}: {_modIdentifierProperty.GetValue(_currentChildMod, null)}"; } - return _numChildrenDefLoaded == _children.Count ? "Finishing up" : null; + return _numChildrenDefLoaded == _children!.Count ? "Finishing up" : null; } public override int GetCurrentProgress() { if (_done) return GetMaximumProgress() + 1; - + var result = _hasEnumeratedChildren ? 1 : 0; result += _numChildrenInitialized; - result += _numChildrenCheckedForUpdate; result += _numChildrenDefLoaded; // result += _done ? 1 : 0; @@ -87,19 +82,19 @@ public override void DoPatching(Harmony instance) var hlAssembly = LoadedModManager.RunningMods.First(m => m.Name == "HugsLib").assemblies.loadedAssemblies.Find(a => a.GetName().Name == "HugsLib"); - var controllerType = hlAssembly.GetTypes().First(t => t.Name == "HugsLibController"); - var updateFeatureManagerType = hlAssembly.GetTypes().First(t => t.Name == "UpdateFeatureManager"); + var controllerType = hlAssembly.GetTypes().FirstOrDefault(t => t.Name == "HugsLibController") ?? throw new Exception("Type HugsLibController is missing"); - _modIdentifierProperty = hlAssembly.GetTypes().First(t => t.Name == "ModBase").GetProperty("ModIdentifier"); + _modIdentifierProperty = hlAssembly.GetTypes().First(t => t.Name == "ModBase").GetProperty("ModIdentifier") ?? throw new Exception("Property ModBase.ModIdentifier is missing"); - Log.Message($"[BetterLoading:HugsLib Compat] Resolved required HugsLib types as follows: Controller: {controllerType?.FullName} / Update Manager: {updateFeatureManagerType?.FullName} / Mod Identifier (Property): {_modIdentifierProperty?.Name}"); + Log.Message($"[BetterLoading:HugsLib Compat] Resolved required HugsLib types as follows: Controller: {controllerType.FullName} / Mod Identifier (Property): {_modIdentifierProperty.Name}"); - hInstance.Patch(AccessTools.Method(controllerType, "LoadReloadInitialize"), postfix: new HarmonyMethod(typeof(StageHugsLibInit), nameof(PostLRI))); - hInstance.Patch(AccessTools.Method(controllerType, "EnumerateChildMods"), postfix: new HarmonyMethod(typeof(StageHugsLibInit), nameof(PostEnumerateChildren))); hInstance.Patch( - AccessTools.Method(updateFeatureManagerType, "InspectActiveMod"), - new HarmonyMethod(typeof(StageHugsLibInit), nameof(PreUpdateCheck)), - new HarmonyMethod(typeof(StageHugsLibInit), nameof(PostUpdateCheck)) + AccessTools.Method(controllerType, "LoadReloadInitialize") ?? throw new Exception("Method HugsLibController.LoadReloadInitialize is missing"), + postfix: new HarmonyMethod(typeof(StageHugsLibInit), nameof(PostLRI)) + ); + hInstance.Patch( + AccessTools.Method(controllerType, "EnumerateChildMods") ?? throw new Exception("Method HugsLibController.EnumerateChildMods is missing"), + postfix: new HarmonyMethod(typeof(StageHugsLibInit), nameof(PostEnumerateChildren)) ); Log.Message("[BetterLoading:HugsLib Compat] Successfully blind-patched HugsLib."); @@ -146,18 +141,6 @@ public static void PostChildInit() BetterLoadingApi.DispatchChange(inst); } - public static void PreUpdateCheck(string modId) - { - _currentChildMod = _children?.Find(m => (string) _modIdentifierProperty.GetValue(m, null) == modId); - BetterLoadingApi.DispatchChange(inst); - } - - public static void PostUpdateCheck() - { - _numChildrenCheckedForUpdate++; - BetterLoadingApi.DispatchChange(inst); - } - public static void PreDefsLoaded(object __instance) { if (__instance.GetType().GetProperty("ModIdentifier") == null) return; diff --git a/Source/Stage/InitialLoad/9StageRunPostFinalizeCallbacks.cs b/Source/Stage/InitialLoad/9StageRunPostFinalizeCallbacks.cs index d00d87b..9ff70cf 100755 --- a/Source/Stage/InitialLoad/9StageRunPostFinalizeCallbacks.cs +++ b/Source/Stage/InitialLoad/9StageRunPostFinalizeCallbacks.cs @@ -128,7 +128,6 @@ public static bool PreExecToExecWhenFinished(List ___toExecuteWhenFinish Thread.Sleep(0); GlobalTimingData.TicksFinishedPostFinalize = DateTime.UtcNow.Ticks; - Log.Message("Finished post-finalize at " + GlobalTimingData.TicksFinishedPostFinalize); _finishedExecuting = true; }, null, true, null);