Exemplo n.º 1
0
        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!");
        }
Exemplo n.º 2
0
        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);
        }
Exemplo n.º 3
0
        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();
        }
Exemplo n.º 4
0
        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!");
        }