예제 #1
0
        public update(string executePath, bool updateRequired, long totalBytes, mainform form, bool isModInstalled, string[] info, bool reinstall, bool downloadSR1HDMode)
        {
            //Присваивает все переменные

            bool sizeDiffers = false;

            string[] array = null;
            this.reinstall         = reinstall;
            this.downloadSR1HDMode = downloadSR1HDMode;
            this.info           = info;
            this.updateRequired = updateRequired;
            this.form           = form;
            this.executePath    = executePath;
            this.isModInstalled = isModInstalled;
            //Назначаемсвойства прогресс бара
            progressBar              = new CustomProgressBar();
            progressBar.Size         = new Size(775, 19);
            progressBar.Location     = new Point(121, 544);
            progressBar.DisplayStyle = ProgressBarDisplayText.CustomTex;
            base.Controls.Add(progressBar);
            InitializeComponent();

            //Добавляем некотрые кастомные события
            base.MouseDown += settings_MouseDown;
            base.MouseDown += pictureBox1_MouseDown;
            base.MouseDown += pictureBox1_MouseDown;
            base.Closing   += OnClosing;
            //Меняем визуальную и функциоальную составляющую кнопки на выключенную
            degenerateChoice.Enabled = false;
            degenerateChoice.Image   = SRHDLauncher.Properties.Resources._2OkD;
            //Проверка на наличие обновлений? Нужна ли?
            if (!downloadSR1HDMode)
            {
                string message = "";
                updateRequired = (reinstall || BoolConfirmation.checkIfUpdateIsRequired(executePath, "https://drive.google.com/file/d/1jDScpEkq-mybtv4SNtL-rjyE-9wM4Uos/view?usp=sharing", ref message, this, form, ref totalBytes, ref sizeDiffers, ref array));
            }
            //Выключение лишних кнопок в основной форме, дабы не было дубликатов
            form.changeEnabledStatusButtons();
            form.checkUpdates.Enabled = false;
            form.checkUpdates.Image   = SRHDLauncher.Properties.Resources._2SettingsD;

            //Установка соотвествующего языка в форме
            if (form.Lang == "ru")
            {
                setRu();
                progressBar.CustomText = "Инициализация...";
            }
            if (form.Lang == "eng")
            {
                setEng();
                progressBar.CustomText = "Initialising...";
            }
            Show();

            //Запуск механизма обновления
            updateAppPreparation();
        }
예제 #2
0
        public void updateAppPreparation()
        {
            ///В случае, если выбрана была скачка SR1HD - качает ее и пропускает все остальное.
            if (downloadSR1HDMode)
            {
                callDownloadSR1HD();
                return;
            }
            //Установка необходимых параметров для дальнейшего использования. UpdateBytes - максимум размера файла.
            string message     = "";         //Не используется, но необходимый параметр для метода
            long   updateBytes = 1L;
            bool   sizeDiffers = false;      //Ваще не помню для чего, уточнить.

            string[] array = null;
            updateRequired = (reinstall || BoolConfirmation.checkIfUpdateIsRequired(form.pathToFile, "https://drive.google.com/file/d/1jDScpEkq-mybtv4SNtL-rjyE-9wM4Uos/view?usp=sharing", ref message, this, form, ref updateBytes, ref sizeDiffers, ref array));
            if (updateRequired)
            {
                form.updateInProgress = true;
                string path  = StringProcessing.StepUp(form.pathToFile) + "\\Mods\\version.txt";
                string path2 = StringProcessing.StepUp(form.pathToFile) + "\\Mods\\ModCFG.txt";
                //Идет проверка, существуют ли оба файла. Если да - он считается установленным
                if (File.Exists(path) && File.Exists(path2))
                {
                    isModInstalled      = true;
                    form.isModInstalled = true;
                }
                else
                {
                    isModInstalled      = false;
                    form.isModInstalled = false;
                }
                // Проверяется, выбрана ли переустановка. В таком случае идет удаление папки модс
                if (reinstall)
                {
                    try { Directory.Delete(executePath, recursive: true); }
                    catch (Exception) { }
                }
                //Если обновление нужно, то, в зависимости от того, установлен мод или нет качается либо патчи, либо весь архив с игрой.
                if (updateRequired)
                {
                    form.updateInProgress = true;                     //Переменная, которая отвечает за то, при нажатии давать ли окошко о прерывании (и прерывать ли потоки) во время обновления.
                    if (isModInstalled && !reinstall)
                    {
                        downloadAllPatches(false);
                    }
                    else
                    {
                        callWholeUpdate();
                    }
                    degenerateChoice.Enabled = true;
                    degenerateChoice.Image   = SRHDLauncher.Properties.Resources._2OkA;
                }
            }
        }
예제 #3
0
        /// <summary>
        /// Метод для самого процесса скачки
        /// </summary>
        /// <param name="zipFilePath"></param>
        /// <param name="zipFileFolderPath"></param>
        public static void Download(string zipFilePath, string zipFileFolderPath)
        {
            wc = new WebClient();
            zipReadingStream = wc.OpenRead(zipFilePath);
            zip = new ZipArchive(zipReadingStream);
            zip.ExtractToDirectory(zipFileFolderPath, _progress);
            flag = BoolConfirmation.checkIfUpdateIsRequired(form2.pathToFile, "https://drive.google.com/file/d/1jDScpEkq-mybtv4SNtL-rjyE-9wM4Uos/view?usp=sharing", form1, form2);
            form1.flagToContinue = flag;
            form1.RepeatUntilBusy(wc);
            disposeHere();
            File.Delete(archivePath);
            form2.updateInProgress = false;
            form2.archiveBegun     = false;
            string message     = "";
            long   updateBytes = 1L;
            bool   sizeDiffers = false;

            string[] info = null;
            Thread.Sleep(1500);
            flag = BoolConfirmation.checkIfUpdateIsRequired(form2.pathToFile, "https://drive.google.com/file/d/1jDScpEkq-mybtv4SNtL-rjyE-9wM4Uos/view?usp=sharing", ref message, form1, form2, ref updateBytes, ref sizeDiffers, ref info);
            form1.flagToContinue = true;
            form1.isModInstalled = true;
            form2.isModInstalled = true;
            form2.updateRequired = flag;
            form1.updateRequired = flag;
            if (form1.reinstall)
            {
                form1.reinstall      = false;
                form1.isModInstalled = true;
            }
            if (!flag || patch)
            {
                form2.updateInProgress = false;
            }

            else
            {
                form1.downloadAllPatches(true);
            }                                        //костыль по смене галочки для скачки фигни
                                                     //Установка технически переменных, которые были не убраны из метода по обновлению короч этого самого вашего лончера.
        }