private void SwitchDatabase_Click(object sender, EventArgs e) { ProgressWindow progressWindow = new ProgressWindow("Loading selected database", 75); progressWindow.Show(); progressWindow.Refresh(); progressWindow.SetProgressPercentage(0); Button button = (Button)sender; Database database = Databases.Where(v => string.Equals(v.Name, button.Name)).FirstOrDefault(); if (database.PrerequisiteDatabase != null) { CopyDataToGame(database.PrerequisiteDatabase); progressWindow.SetProgressPercentage(40); } CopyDataToGame(database); progressWindow.SetProgressPercentage(80); // Update the loader config files as switching between CM89, CM93 and anything else requires some changes UpdateConfigFiles(database); progressWindow.SetProgressPercentage(100); progressWindow.Close(); DisplayMessage(database.Label + " database successfully loaded!"); }
private void BackupSaves_Click(object sender, EventArgs e) { ProgressWindow progressWindow = new ProgressWindow("Backing up save games", 85); progressWindow.Show(); progressWindow.Refresh(); int progressPerc = 0; progressWindow.SetProgressPercentage(progressPerc); string result = "No save games found!"; FileInfo[] saveGames = new DirectoryInfo(GameFolder).GetFiles("*.sav"); if (saveGames.Length > 0) { if (!Directory.Exists(BackupSavesFolder)) { Directory.CreateDirectory(BackupSavesFolder); } foreach (FileInfo save in saveGames) { File.Copy(save.FullName, Path.Combine(BackupSavesFolder, save.Name), true); progressPerc = progressPerc + 5; progressWindow.SetProgressPercentage(Math.Min(progressPerc, 100)); } result = saveGames.Length + @" save game(s) successfully backed up (to C:\CM0102 Backups)!"; } progressWindow.SetProgressPercentage(100); progressWindow.Close(); DisplayMessage(result); }
private void MainMenu_Load(object sender, EventArgs e) { Process[] mainProcesses = Process.GetProcessesByName("CM0102StarterKit"); if (mainProcesses.Length > 1) { DisplayMessage("The Starter Kit is already running! Exiting..."); Application.Exit(); } ProgressWindow progressWindow = new ProgressWindow("Loading Starter Kit", 100); progressWindow.Show(); progressWindow.Refresh(); if (!GameFolderExists()) { Directory.CreateDirectory(GameFolder); string gameZipFile = GameFolder + ".zip"; File.WriteAllBytes(gameZipFile, Properties.Resources.Game); progressWindow.SetProgressPercentage(20); new FastZip().ExtractZip(gameZipFile, GameFolder, null); File.Delete(gameZipFile); progressWindow.SetProgressPercentage(40); Thread.Sleep(2000); string exesZipFile = Path.Combine(GameFolder, "Exes.zip"); File.WriteAllBytes(exesZipFile, Properties.Resources.Exes); progressWindow.SetProgressPercentage(60); new FastZip().ExtractZip(exesZipFile, GameFolder, null); File.Delete(exesZipFile); int nextProgressPerc = 80; progressWindow.SetProgressPercentage(nextProgressPerc); if (File.Exists(DefaultChangesFile)) { FileInfo[] saveGames = new DirectoryInfo(DefaultGameFolder).GetFiles("*.sav"); if (saveGames.Length > 0) { foreach (FileInfo save in saveGames) { File.Copy(save.FullName, Path.Combine(GameFolder, save.Name), true); progressWindow.SetProgressPercentage(Math.Min(++nextProgressPerc, 100)); } } } } else { RefreshExeFiles(progressWindow); } progressWindow.SetProgressPercentage(100); RefreshForm(); progressWindow.Close(); }
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!"); }