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);
}