mirror of
https://github.com/soarqin/DSP_Mods.git
synced 2025-12-10 11:23:29 +08:00
Do not use UnpatchAll()
This commit is contained in:
@@ -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();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user