Don't hardcode "AM2R.exe" as exe name for windows zips

Fix #7
mac
Miepee 3 years ago
parent dbe65e0852
commit 9847521e70

@ -27,7 +27,9 @@ public abstract class RawMods : ModsBase
public static ModOS GetModOSOfRawZip(string inputRawZipPath) public static ModOS GetModOSOfRawZip(string inputRawZipPath)
{ {
ZipArchive archive = ZipFile.OpenRead(inputRawZipPath); ZipArchive archive = ZipFile.OpenRead(inputRawZipPath);
if (archive.Entries.Any(f => f.FullName == "AM2R.exe") && archive.Entries.Any(f => f.FullName == "data.win")) // Since exe's can be differently named, we'll search for exactly one exe in no subdirectories.
var exeList = archive.Entries.Where(f => f.FullName.EndsWith(".exe")).ToList();
if (exeList.Count == 1 && !exeList[0].FullName.Contains('/') && archive.Entries.Any(f => f.FullName == "data.win"))
return ModOS.Windows; return ModOS.Windows;
if (archive.Entries.Any(f => f.FullName == "runner") && archive.Entries.Any(f => f.FullName == "assets/game.unx")) if (archive.Entries.Any(f => f.FullName == "runner") && archive.Entries.Any(f => f.FullName == "assets/game.unx"))
@ -129,7 +131,8 @@ public abstract class RawMods : ModsBase
switch (currentOS) switch (currentOS)
{ {
case ModOS.Windows: case ModOS.Windows:
File.Delete(assetsDir + "/AM2R.exe"); var exeFile = new DirectoryInfo(assetsDir).GetFiles().First(f => f.Name.EndsWith(".exe"));
exeFile.Delete();
File.Delete(assetsDir + "/D3DX9_43.dll"); File.Delete(assetsDir + "/D3DX9_43.dll");
File.Move(assetsDir + "/data.win", assetsDir + "/game.unx"); File.Move(assetsDir + "/data.win", assetsDir + "/game.unx");
break; break;
@ -215,7 +218,8 @@ public abstract class RawMods : ModsBase
switch (currentOS) switch (currentOS)
{ {
case ModOS.Windows: case ModOS.Windows:
File.Delete(apkAssetsDir + "/AM2R.exe"); var exeFile = new DirectoryInfo(apkAssetsDir).GetFiles().First(f => f.Name.EndsWith(".exe"));
exeFile.Delete();
File.Delete(apkAssetsDir + "/D3DX9_43.dll"); File.Delete(apkAssetsDir + "/D3DX9_43.dll");
File.Move(apkAssetsDir + "/data.win", apkAssetsDir + "/game.droid"); File.Move(apkAssetsDir + "/data.win", apkAssetsDir + "/game.droid");
break; break;
@ -406,7 +410,8 @@ public abstract class RawMods : ModsBase
switch (currentOS) switch (currentOS)
{ {
case ModOS.Windows: case ModOS.Windows:
File.Delete(extractDirectory + "/AM2R.exe"); var exeFile = new DirectoryInfo(extractDirectory).GetFiles().First(f => f.Name.EndsWith(".exe"));
exeFile.Delete();
File.Delete(extractDirectory + "/D3DX9_43.dll"); File.Delete(extractDirectory + "/D3DX9_43.dll");
File.Move(extractDirectory + "/data.win", extractDirectory + "/game.ios"); File.Move(extractDirectory + "/data.win", extractDirectory + "/game.ios");
break; break;

Loading…
Cancel
Save