diff --git a/Quintessential.csproj b/Quintessential.csproj index 1c67f0e..0d63224 100644 --- a/Quintessential.csproj +++ b/Quintessential.csproj @@ -16,13 +16,10 @@ + - - ..\..\..\..\..\Program Files (x86)\Steam\steamapps\common\Opus Magnum\Ionic.Zip.Reduced.dll - False - ..\..\..\..\..\Program Files (x86)\Steam\steamapps\common\Opus Magnum\IntermediaryLightning.exe false diff --git a/Quintessential/QuintessentialLoader.cs b/Quintessential/QuintessentialLoader.cs index 28e8a39..c9e8615 100644 --- a/Quintessential/QuintessentialLoader.cs +++ b/Quintessential/QuintessentialLoader.cs @@ -7,7 +7,7 @@ using System.Reflection; using System.Resources; -using Ionic.Zip; +using ICSharpCode.SharpZipLib.Zip; using MonoMod.Utils; @@ -46,6 +46,8 @@ public class QuintessentialLoader { private static readonly string zipExtractSuffix = "__quintessential_from_zip"; private static readonly string quintAssetFolder = "__quintessential_assets"; + private static FastZip zipExtractor = new FastZip(); + public static void PreInit() { try { PathLightning = Path.GetDirectoryName(typeof(GameLogic).Assembly.Location); @@ -93,6 +95,8 @@ public static void PreInit() { var set = manager.GetResourceSet(CultureInfo.InvariantCulture, true, true); foreach(object item in set){ if(item is DictionaryEntry de){ + foreach(object item in set) { + if(item is DictionaryEntry de) { string name = (string)de.Key; using var toStream = File.OpenWrite(Path.Combine(outDir, name)); byte[] content = (byte[])de.Value; @@ -323,8 +327,7 @@ protected static void FindZipMod(string zip) { return; var dest = zip.Substring(0, zip.Length - ".zip".Length) + zipExtractSuffix; - using(ZipFile file = new(zip)) - file.ExtractAll(dest); + zipExtractor.ExtractZip(zip, dest, ""); FindFolderMod(dest, zip); }