public Spawnset DownloadSpawnset(string fileName)
        {
            string url = UrlUtils.ApiGetSpawnset(fileName);

            try
            {
                Spawnset spawnset;

                using (TimeoutWebClient client = new TimeoutWebClient(Timeout))
                    using (Stream stream = new MemoryStream(client.DownloadData(url)))
                        if (!Spawnset.TryParse(stream, out spawnset))
                        {
                            App.Instance.ShowError("Error parsing file", "Could not parse file.");
                        }

                return(spawnset);
            }
            catch (WebException ex)
            {
                App.Instance.ShowError("Error downloading file", $"Could not connect to '{url}'.", ex);

                return(null);
            }
            catch (Exception ex)
            {
                App.Instance.ShowError("Unexpected error", "An unexpected error occurred.", ex);

                return(null);
            }
        }
Exemple #2
0
        private void loadFileToolStripMenuItem_Click(object sender, EventArgs e)
        {
            DialogResult result = openFileDialog.ShowDialog();

            if (result == DialogResult.OK)
            {
                Spawns = SpawnFs.ParseFile(openFileDialog.FileName);
                UpdateEnemyList();
                UpdateTextboxesValues();
            }
        }
Exemple #3
0
 public static bool TryWriteSpawnsetToFile(Spawnset spawnset, string destinationPath)
 {
     try
     {
         if (spawnset.TryGetBytes(out byte[] bytes))
         {
             File.WriteAllBytes(destinationPath, bytes);
             return(true);
         }
         else
         {
             App.Instance.ShowError("Unexpected error", "Error while trying to convert spawnset to binary.");
             return(false);
         }
     }
     catch (Exception ex)
     {
         App.Instance.ShowError("Unexpected error", $"Error while trying to write file to {destinationPath}.", ex);
         return(false);
     }
 }
Exemple #4
0
        private void FileOpen_Click(object sender, RoutedEventArgs e)
        {
            SpawnsetHandler.Instance.ProceedWithUnsavedChanges();

            OpenFileDialog dialog = new OpenFileDialog();
            bool?          result = dialog.ShowDialog();

            if (result.HasValue && result.Value)
            {
                if (!Spawnset.TryParse(new FileStream(dialog.FileName, FileMode.Open, FileAccess.Read), out SpawnsetHandler.Instance.spawnset))
                {
                    App.Instance.ShowError("Could not parse file", "Please open a valid Devil Daggers V3 spawnset file.");
                    return;
                }

                App.Instance.MainWindow.SpawnsetSpawns.UpdateSpawnset();
                App.Instance.MainWindow.SpawnsetArena.UpdateSpawnset();

                SpawnsetHandler.Instance.UpdateSpawnsetState(Path.GetFileName(dialog.FileName), dialog.FileName);
            }
        }
Exemple #5
0
        private void SurvivalOpen_Click(object sender, RoutedEventArgs e)
        {
            SpawnsetHandler.Instance.ProceedWithUnsavedChanges();

            if (!UserHandler.Instance.settings.SurvivalFileExists)
            {
                App.Instance.ShowError("Survival file does not exist", "Please make sure to correct the survival file location in the Options > Settings menu.");
                return;
            }

            if (!Spawnset.TryParse(new FileStream(UserHandler.Instance.settings.SurvivalFileLocation, FileMode.Open, FileAccess.Read), out SpawnsetHandler.Instance.spawnset))
            {
                App.Instance.ShowError("Could not parse file", "Failed to parse the 'survival' file.");
                return;
            }

            App.Instance.MainWindow.SpawnsetSpawns.UpdateSpawnset();
            App.Instance.MainWindow.SpawnsetArena.UpdateSpawnset();

            SpawnsetHandler.Instance.UpdateSpawnsetState("(survival)", UserHandler.Instance.settings.SurvivalFileLocation);
        }
        private void Download_Click(string fileName)
        {
            Close();

            Spawnset download = null;

            BackgroundWorker thread = new BackgroundWorker();

            thread.DoWork += (object senderDoWork, DoWorkEventArgs eDoWork) =>
            {
                download = NetworkHandler.Instance.DownloadSpawnset(fileName);
                if (download != null)
                {
                    SpawnsetHandler.Instance.spawnset = download;
                    SpawnsetHandler.Instance.UpdateSpawnsetState(fileName, "");
                }
            };
            thread.RunWorkerCompleted += (object senderRunWorkerCompleted, RunWorkerCompletedEventArgs eRunWorkerCompleted) =>
            {
                if (download == null)
                {
                    return;
                }

                Dispatcher.Invoke(() =>
                {
                    App.Instance.MainWindow.SpawnsetSpawns.UpdateSpawnset();
                    App.Instance.MainWindow.SpawnsetArena.UpdateSpawnset();

                    ConfirmWindow confirmWindow = new ConfirmWindow("Replace 'survival' file", "Do you want to replace the currently active 'survival' file as well?");
                    confirmWindow.ShowDialog();
                    if (confirmWindow.Confirmed && SpawnsetFileUtils.TryWriteSpawnsetToFile(SpawnsetHandler.Instance.spawnset, UserHandler.Instance.settings.SurvivalFileLocation))
                    {
                        App.Instance.ShowMessage("Success", $"Successfully replaced 'survival' file with '{SpawnsetFile.GetName(fileName)}'.");
                    }
                });
            };

            thread.RunWorkerAsync();
        }
        private string CalculateCurrentSurvivalHash()
        {
            try
            {
                using (FileStream fs = new FileStream(Path.Combine(Path.GetDirectoryName(Process.MainModule.FileName), "dd", "survival"), FileMode.Open, FileAccess.Read))
                {
                    if (Spawnset.TryParse(fs, out Spawnset spawnset))
                    {
                        return(spawnset.GetHashString());
                    }

                    Logging.Log.Error("Failed to calculate spawnset hash because the survival file could not be parsed.");
                }

                return(string.Empty);
            }
            catch (Exception ex)
            {
                Logging.Log.Error("Failed to calculate spawnset hash.", ex);

                return(string.Empty);
            }
        }