Exemple #1
0
        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!");
        }