private void RefreshExeFiles(ProgressWindow progressWindow) { if (ExesNeedRefreshing()) { string tempZipFolder = Path.Combine(Directory.GetCurrentDirectory(), "Temp"); string tempZipFile = tempZipFolder + ".zip"; File.WriteAllBytes(tempZipFile, Properties.Resources.Exes); progressWindow.SetProgressPercentage(10); new FastZip().ExtractZip(tempZipFile, tempZipFolder, null); progressWindow.SetProgressPercentage(20); if (File.Exists(Cm0102)) { File.Delete(Cm0102); } File.Move(Path.Combine(tempZipFolder, Cm0102Exe), Cm0102); progressWindow.SetProgressPercentage(30); if (File.Exists(Cm0102Gdi)) { File.Delete(Cm0102Gdi); } File.Move(Path.Combine(tempZipFolder, Cm0102GdiExe), Cm0102Gdi); progressWindow.SetProgressPercentage(40); if (File.Exists(Cm89)) { File.Delete(Cm89); } File.Move(Path.Combine(tempZipFolder, Cm89Exe), Cm89); progressWindow.SetProgressPercentage(50); if (File.Exists(Cm93)) { File.Delete(Cm93); } File.Move(Path.Combine(tempZipFolder, Cm93Exe), Cm93); progressWindow.SetProgressPercentage(60); if (File.Exists(Cm3)) { File.Delete(Cm3); } File.Move(Path.Combine(tempZipFolder, Cm3Exe), Cm3); progressWindow.SetProgressPercentage(70); if (File.Exists(CmLoader)) { File.Delete(CmLoader); } File.Move(Path.Combine(tempZipFolder, CmLoaderExe), CmLoader); progressWindow.SetProgressPercentage(80); // Cleanup if (File.Exists(Cm0102Backup)) { File.Delete(Cm0102Backup); } File.Delete(tempZipFile); Directory.Delete(tempZipFolder, true); progressWindow.SetProgressPercentage(90); } }
private void GenerateFiles_Click(object sender, EventArgs e) { ProgressWindow progressWindow = new ProgressWindow("Generating files for Android", 75); progressWindow.Show(); progressWindow.Refresh(); progressWindow.SetProgressPercentage(0); Database database = GetCurrentDatabase(); // Copy correct CM exe file across File.Copy(database.ExeFile, Path.Combine(ExagearFolder, Cm0102Exe), true); // Copy CM loader exe file across File.Copy(CmLoader, Path.Combine(ExagearFolder, CmLoaderExe), true); progressWindow.SetProgressPercentage(5); // Copy correct CM loader config file across string androidConfigFile = Path.Combine(ExagearFolder, CmLoaderAndroidConfig); string configFile = CmLoaderConfig; bool copyPatchesFolder = false; if (this.nick_patcher.Checked) { configFile = CmLoaderCustomConfig; copyPatchesFolder = true; } File.Copy(Path.Combine(GameFolder, configFile), androidConfigFile, true); progressWindow.SetProgressPercentage(10); // We need to ensure certain patches are not applied to the Android version, even if they were selected List <string> defaultLines = GetDefaultConfigFileLines(androidConfigFile, database, true); WriteConfigFile(defaultLines, androidConfigFile); progressWindow.SetProgressPercentage(15); // Only copy Patches folder across if the user wants to use Nick's Patcher - otherwise just create an empty folder if (copyPatchesFolder) { CopyFolder(PatchesFolderName); } else { string newPatchesFolder = Path.Combine(ExagearFolder, PatchesFolderName); if (Directory.Exists(newPatchesFolder)) { Directory.Delete(newPatchesFolder, true); } Directory.CreateDirectory(newPatchesFolder); } progressWindow.SetProgressPercentage(25); // Copy generic folders across CopyFolder(DataFolderName); progressWindow.SetProgressPercentage(45); CopyFolder(PicturesFolderName); progressWindow.SetProgressPercentage(65); CopyFolder(SoundsFolderName); progressWindow.SetProgressPercentage(85); Thread.Sleep(2000); if (this.android_11.Checked) { File.Copy(Path.Combine(OptionalPatchesFolder, Android11Patch), Path.Combine(Path.Combine(ExagearFolder, PatchesFolderName), Android11Patch)); } progressWindow.SetProgressPercentage(100); progressWindow.Close(); DisplayMessage("Files successfully generated!"); }