Esempio n. 1
0
 public void RemoveSavestate(Savestate savestate)
 {
     if (savestates.Contains(savestate))
     {
         savestates.Remove(savestate);
     }
 }
        private void RenameSavestate(Savestate savestate)
        {
            using (NameEditForm nameEditForm = new NameEditForm($"Edit {savestate.DisplayName}", "Savestate Name:", savestate.DisplayName)) {
                if (nameEditForm.ShowDialog() == DialogResult.OK)
                {
                    if (savestate.DisplayName.Equals(nameEditForm.Input))
                    {
                        return;
                    }

                    if (Savestate.ExistsInProfile(nameEditForm.Input, currentlySelectedProfile) && !savestate.DisplayName.Equals(nameEditForm.Input, StringComparison.OrdinalIgnoreCase))
                    {
                        MessageBox.Show($"A savestate named \"{nameEditForm.Input}\" already exists!", "Savestate Already Exists", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                        RenameSavestate(savestate);
                        return;
                    }

                    savestate.ChangeName(nameEditForm.Input);
                    trvSavestates.SelectedNode.Text = nameEditForm.Input;

                    TreeNode nodeToSelect = trvSavestates.SelectedNode;
                    trvSavestates.Sort();
                    trvSavestates.SelectedNode = nodeToSelect;
                }
            }
        }
Esempio n. 3
0
 public void AddSavestate(Savestate savestate)
 {
     if (!savestates.Contains(savestate))
     {
         savestates.Add(savestate);
     }
 }
        private void ImportSavestate(Profile profile)
        {
            if (!ReadyForImport())
            {
                return;
            }

            string saveName = GetNewSavestateName(profile.FullPath);
            string savePath = Path.Combine(profile.FullPath, saveName);

            try {
                Directory.CreateDirectory(savePath);
                CopySaveFolderAndContents(settings.SavefileDirectory, savePath);
            }
            catch (Exception e) {
                MessageBox.Show($"An error occured while importing the savestate:\n\n{e.Message}", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }

            Savestate save = new Savestate(saveName, savePath);

            profile.AddSavestate(save);

            TreeNode node = new TreeNode()
            {
                Text = save.DisplayName,
                Tag  = save
            };

            trvSavestates.Nodes.Add(node);
            trvSavestates.Select();
            trvSavestates.SelectedNode = node;

            SetStatusText("Import Successful!", Color.RoyalBlue);
        }
        private void ReplaceSavestate(Savestate savestate)
        {
            DialogResult result = MessageBox.Show($"Are you sure you want to replace \"{savestate.DisplayName}\"?", $"Replace {savestate.DisplayName}", MessageBoxButtons.YesNo, MessageBoxIcon.Warning);

            if (result != DialogResult.Yes)
            {
                return;
            }

            try {
                Directory.Delete(Path.Combine(savestate.FullPath, GetSavefileFolderName()), true);
                CopySaveFolderAndContents(settings.SavefileDirectory, savestate.FullPath);

                SetStatusText("Replace Successful!", Color.Orange);
            }
            catch (Exception e) {
                MessageBox.Show($"An error occured while replacing the savestate:\n\n{e.Message}", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
        private void LoadSavestate(Savestate savestate)
        {
            if (!ReadyForLoad())
            {
                return;
            }

            try {
                Directory.Delete(settings.SavefileDirectory, true);
                Directory.CreateDirectory(settings.SavefileDirectory);
                CopySaveFolderAndContents(Path.Combine(savestate.FullPath, new DirectoryInfo(settings.SavefileDirectory).Name), new DirectoryInfo(settings.SavefileDirectory).Parent.FullName);
            }
            catch (Exception e) {
                MessageBox.Show($"An error occured while loading the savestate:\n\n{e.Message}", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }

            SetStatusText("Load Successful!", Color.Green);
        }
        private void DeleteSavestate(Savestate savestate)
        {
            DialogResult result = MessageBox.Show($"Are you sure you want to delete \"{savestate.DisplayName}\"?", "Delete Savestate", MessageBoxButtons.YesNo, MessageBoxIcon.Warning);

            if (result == DialogResult.Yes)
            {
                try {
                    Directory.Delete(savestate.FullPath, true);
                    currentlySelectedProfile.RemoveSavestate(savestate);
                    FillSavestates(currentlySelectedProfile);
                    trvSavestates.Select();
                }
                catch (Exception e) {
                    MessageBox.Show($"An error occured while deleting the savestate:\n\n{e.Message}", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    return;
                }

                SetStatusText("Delete Successful!", Color.Red);
            }
        }
Esempio n. 8
0
        public int Compare(object x, object y)
        {
            TreeNode node1 = x as TreeNode;
            TreeNode node2 = y as TreeNode;

            if (node1 == null && node2 == null)
            {
                return(0);
            }

            Savestate save1 = node1.Tag as Savestate;
            Savestate save2 = node2.Tag as Savestate;

            if (save1 == null || save2 == null)
            {
                return(0);
            }

            DateTime save1CreationTime = Directory.GetCreationTimeUtc(save1.FullPath);
            DateTime save2CreationTime = Directory.GetCreationTimeUtc(save2.FullPath);

            return(DateTime.Compare(save1CreationTime, save2CreationTime));
        }