1
0
mirror of https://github.com/soarqin/DSP_Mods.git synced 2025-12-10 10:03:30 +08:00

Do not use UnpatchAll()

This commit is contained in:
2023-04-02 21:24:33 +08:00
parent 4347083769
commit fcf233b656

View File

@@ -19,6 +19,7 @@ public enum CompressionType
[BepInPlugin(PluginInfo.PLUGIN_GUID, PluginInfo.PLUGIN_NAME, PluginInfo.PLUGIN_VERSION)] [BepInPlugin(PluginInfo.PLUGIN_GUID, PluginInfo.PLUGIN_NAME, PluginInfo.PLUGIN_VERSION)]
public class CompressSave : BaseUnityPlugin public class CompressSave : BaseUnityPlugin
{ {
private Harmony patchSave, patchUISave, patchUILoad;
string StringFromCompresstionType(CompressionType type) string StringFromCompresstionType(CompressionType type)
{ {
switch (type) switch (type)
@@ -60,10 +61,10 @@ public class CompressSave : BaseUnityPlugin
$"Save version mismatch. Expect:{SaveUtil.VerifiedVersion}, Current:{GameConfig.gameVersion}. MOD may not work as expected."); $"Save version mismatch. Expect:{SaveUtil.VerifiedVersion}, Current:{GameConfig.gameVersion}. MOD may not work as expected.");
} }
Harmony.CreateAndPatchAll(typeof(PatchSave)); patchSave = Harmony.CreateAndPatchAll(typeof(PatchSave));
if (PatchSave.EnableCompress && PatchSave.CompressionTypeForSaves != CompressionType.None) if (PatchSave.EnableCompress && PatchSave.CompressionTypeForSaves != CompressionType.None)
Harmony.CreateAndPatchAll(typeof(PatchUISaveGame)); patchUISave = Harmony.CreateAndPatchAll(typeof(PatchUISaveGame));
Harmony.CreateAndPatchAll(typeof(PatchUILoadGame)); patchUILoad = Harmony.CreateAndPatchAll(typeof(PatchUILoadGame));
} }
else else
SaveUtil.logger.LogWarning("Either lz4warp.dll or zstdwrap.dll is not avaliable."); SaveUtil.logger.LogWarning("Either lz4warp.dll or zstdwrap.dll is not avaliable.");
@@ -71,9 +72,17 @@ public class CompressSave : BaseUnityPlugin
public void OnDestroy() public void OnDestroy()
{ {
PatchUISaveGame.OnDestroy(); if (patchUISave != null)
PatchUILoadGame.OnDestroy(); {
Harmony.UnpatchAll(); PatchUISaveGame.OnDestroy();
patchUISave.UnpatchSelf();
}
if (patchUILoad != null)
{
PatchUILoadGame.OnDestroy();
patchUILoad.UnpatchSelf();
}
patchSave?.UnpatchSelf();
} }
} }