Example #1
0
        public void callDownloadSR1HD()
        {
            long   totalBytes = 1L;
            string msg        = "sosi. CallWholeUpdate";

            if (form.Lang == "ru")
            {
                totalBytes = 179385718L;
                msg        = "Скачивание файлов: ";
            }
            if (form.Lang == "eng")
            {
                totalBytes = 171312408L;
                msg        = "Downloading files: ";
            }
            string   tempArchivePath = executePath + "\\Temp.zip";
            FileInfo fileInfo        = DownloadFiles(executePath, tempArchivePath, SRHD1Url, SRHD1Url, callProgressBar: true, totalBytes, msg);

            Thread.Sleep(1200);
            temp.Value = 0;


            if (!form.abortEtoGreh)
            {
                form.archiveBegun = true;
                ZipArchiveExtensions.Unpack(tempArchivePath, executePath, this, form, true);
            }
            else
            {
                File.Delete(tempArchivePath);
            }
            downloadSR1HDMode = false;
        }
Example #2
0
        private void OnClosing(object sender, CancelEventArgs cancelEventArgs)
        {
            if (form.updateInProgress || form.archiveBegun)
            {
                string text = "видимо автор малок если это сообщение появилось. Проблема в update.OnClosing, с языком";
                if (form.Lang == "ru")
                {
                    text = "Вы уверены, что хотите закрыть это окно? Обновление в процессе";
                }
                if (form.Lang == "eng")
                {
                    text = "Update is currently in progress. Are you sure that you want to close the window? ";
                }
                switch (MessageBox.Show(text, "", MessageBoxButtons.YesNo, MessageBoxIcon.Question))
                {
                case DialogResult.Yes:
                    form.changeEnabledStatusButtons();
                    form.updateInProgress = false;
                    form.abortEtoGreh     = true;
                    form.updateForm       = null;
                    FileDownloader.getSetAbourt(true);
                    ZipArchiveExtensions.setUpdateCancel(mystate: true);
                    break;

                case DialogResult.No:
                    if (!downloadSR1HDMode)
                    {
                        form.updateRequired = true;
                    }
                    cancelEventArgs.Cancel = true;

                    break;
                }
            }
            else if (form != null)
            {
                form.changeEnabledStatusButtons();
                if (!updateRequired)
                {
                    form.play.Enabled = true;
                    form.play.Image   = Resources._2ContinueA;
                }
                form.updateForm = null;
            }
        }
Example #3
0
        public void downloadAllPatches(bool allUpdate)
        {
            form.updateRequired = false;
            string        versionPath    = StringProcessing.StepUp(form.pathToFile) + "\\Mods\\version.txt";
            double        num            = 7.0;
            List <string> list           = new List <string>();
            float         currentVersion = 7.0f;

            if (!allUpdate)
            {
                using (Stream stream = Assembly.GetExecutingAssembly().GetManifestResourceStream("SRHDLauncher.launсherHashСopy.txt"))
                {
                    TextReader textReader = new StreamReader(stream);
                    string     item;
                    while ((item = textReader.ReadLine()) != null)
                    {
                        list.Add(item);
                    }
                }
                string ln = "";
                using (StreamReader file = new StreamReader(versionPath))
                {
                    int counter = 0;
                    ln = file.ReadLine();
                    file.Close();
                }
                float.TryParse(ln, out currentVersion);
            }


            string[] array = list.ToArray();
            for (int i = 1; i < info.Length - 1; i += 5)
            {
                if (list != null)
                {
                    bool unpackToSave = false;
                    if (info[i + 2][0] == '1')
                    {
                        unpackToSave = true;
                    }
                    float result  = 0f;
                    long  result2 = 1L;

                    bool flag  = float.TryParse(info[i], out result);
                    bool flag2 = long.TryParse(info[i + 2], out result2);
                    if (flag && flag2 && currentVersion < (double)result)
                    {
                        string path = StringProcessing.StepUp(form.pathToFile) + "\\Mods\\version.txt";
                        num = double.Parse(info[i]);
                        if (File.Exists(path))
                        {
                            File.Delete(path);
                        }

                        using (StreamWriter streamWriter = File.CreateText(path))
                        {
                            streamWriter.WriteLine(info[i]);
                        }

                        string text    = StringProcessing.StepUp(executePath) + "\\Mods\\" + info[i] + ".zip";
                        string message = "";
                        FileDownloader.DownloadFileFromURLToPath(info[i + 1], info[i + 1], text, callProgressBar: true, this, form, result2, message);
                        string pathRegular = StringProcessing.StepUp(executePath) + "\\Mods";

                        if (unpackToSave && info[i + 3] == form.Lang)
                        {
                            string pathForSaves = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + "\\spacerangershd\\save";
                            ZipArchiveExtensions.Unpack(text, pathForSaves, this, form, true);
                        }
                        else
                        {
                            if (!unpackToSave)
                            {
                                ZipArchiveExtensions.Unpack(text, pathRegular, this, form, true);
                            }
                        }
                    }
                }
            }
            string text2 = "downloadAllPatches";

            FileDownloader.DownloadFileFromURLToPath(AppInfo.RU_CHANGLEOG, AppInfo.RU_CHANGELOG_MIRROR, StringProcessing.StepUp(form.pathToFile) + "\\changeLogRu.txt", callProgressBar: false, this, form, "");
            FileDownloader.DownloadFileFromURLToPath(AppInfo.ENG_CHANGELOG, AppInfo.ENG_CHANGELOG_MIRROR, StringProcessing.StepUp(form.pathToFile) + "\\changeLogEng.txt", callProgressBar: false, this, form, "");
            if (form.Lang == "ru")
            {
                Process.Start(StringProcessing.StepUp(form.pathToFile) + "\\changeLogRu.txt");
            }
            if (form.Lang == "eng")
            {
                Process.Start(StringProcessing.StepUp(form.pathToFile) + "\\changeLogEng.txt");
            }
        }
Example #4
0
        public void callWholeUpdate()
        {
            //Задание всевозможный путей для работы с папкой игры и модов.
            string SRHDFolder    = StringProcessing.StepUp(form.pathToFile);
            string ModsFolder    = SRHDFolder + "\\Mods";
            string pathToModCfg  = ModsFolder + "\\ModCFG.txt";
            string pathToTempCfg = ModsFolder + "\\tempCfg.txt";

            if (!Directory.Exists(ModsFolder))
            {
                Directory.CreateDirectory(ModsFolder);
            }
            //Ниже идет проверка на то, удалены ли какие-либо моды в результаты обновлений ModCfg.txt на диске.
            if (File.Exists(pathToModCfg))
            {
                //Скачка Cfg файла приложения со списком модов
                FileDownloader.DownloadFileFromURLToPath(AppInfo.APP_CFG_LINK_FILE, AppInfo.APP_CFG_LINK_FILE, pathToTempCfg, callProgressBar: false, this, null, 1L, "");
                List <string> localModCfg = ParseCfgFile(File.ReadAllLines(pathToModCfg));                //Локальный ModCfg.txt
                List <string> driveModCfg = ParseCfgFile(File.ReadAllLines(pathToTempCfg));               //ModCfg.txt с Диска
                foreach (string item in localModCfg)
                {
                    if (!driveModCfg.Any(item.Contains))
                    {
                        string path3 = ModsFolder + "\\" + item;
                        if (Directory.Exists(path3))
                        {
                            Directory.Delete(ModsFolder + "\\" + item, recursive: true);
                        }
                    }
                }
                File.Delete(pathToTempCfg);
            }
            //Происходит самоу далние, путем сравнения двух массивов
            string[] modFolderFileList = Directory.GetFiles(ModsFolder);
            if (modFolderFileList.Length > 1)
            {
                foreach (string text3 in modFolderFileList)
                {
                    try { if (!text3.Contains("ModCFG.txt"))
                          {
                              File.Delete(text3);
                          }
                    }
                    catch (Exception) { }
                }
            }
            //Блок ниже скачивает сам архив с модом диска
            string tempZipFolder = SRHDFolder + "\\Temp.zip";
            string msg           = StringProcessing.getMessage(form.Lang, "Скачивание файлов: ", "Downloading files: ");

            DownloadFiles(SRHDFolder, SRHDFolder + "\\Temp.zip", AppInfo.APP_ZIP_FILE_LINK, AppInfo.APP_ZIP_FILE_LINK_MIRROR, callProgressBar: true, form.totalBytes, msg);
            //Вроде как необходим какой-то перерыв чтоб записаться на диск, даже после окончания работы воркера
            Thread.Sleep(600);
            //Если никто не отменил скачку, начинается распаковка
            if (!form.abortEtoGreh)
            {
                form.archiveBegun = true;
                ZipArchiveExtensions.Unpack(tempZipFolder, SRHDFolder, this, form, false);
                Thread.Sleep(50);
            }
            else
            {
                File.Delete(tempZipFolder);
            }
        }