From ac54318cfbd39722e9b0c5ea0fdcc0379976683b Mon Sep 17 00:00:00 2001 From: adelikat Date: Fri, 12 Jun 2020 13:39:20 -0500 Subject: [PATCH] GlobalWin.Cheatlist begone --- .../Extensions/ToolExtensions.cs | 13 ---------- src/BizHawk.Client.EmuHawk/GlobalWin.cs | 2 -- src/BizHawk.Client.EmuHawk/MainForm.cs | 4 +-- .../tools/HexEditor/HexEditor.cs | 13 +++++----- .../tools/Watch/RamPoke.cs | 26 +++++++------------ .../tools/Watch/RamSearch.cs | 9 +++---- .../tools/Watch/RamWatch.cs | 9 +++---- 7 files changed, 26 insertions(+), 50 deletions(-) diff --git a/src/BizHawk.Client.EmuHawk/Extensions/ToolExtensions.cs b/src/BizHawk.Client.EmuHawk/Extensions/ToolExtensions.cs index 0111a5ec78..22a54ebd34 100644 --- a/src/BizHawk.Client.EmuHawk/Extensions/ToolExtensions.cs +++ b/src/BizHawk.Client.EmuHawk/Extensions/ToolExtensions.cs @@ -234,19 +234,6 @@ namespace BizHawk.Client.EmuHawk.ToolExtensions GlobalWin.Sound.StartSound(); } - public static void FreezeAll(this IEnumerable watches) - { - GlobalWin.CheatList.AddRange( - watches - .Where(w => !w.IsSeparator) - .Select(w => new Cheat(w, w.Value))); - } - - public static void UnfreezeAll(this IEnumerable watches) - { - GlobalWin.CheatList.RemoveRange(watches.Where(watch => !watch.IsSeparator)); - } - public static IEnumerable MenuItems(this IMemoryDomains domains, Action setCallback, string selected = "", int? maxSize = null) { foreach (var domain in domains) diff --git a/src/BizHawk.Client.EmuHawk/GlobalWin.cs b/src/BizHawk.Client.EmuHawk/GlobalWin.cs index 4ae81959e0..e362bb9d83 100644 --- a/src/BizHawk.Client.EmuHawk/GlobalWin.cs +++ b/src/BizHawk.Client.EmuHawk/GlobalWin.cs @@ -13,8 +13,6 @@ namespace BizHawk.Client.EmuHawk public static IEmulator Emulator { get; set; } - public static CheatCollection CheatList { get; set; } - /// /// the IGL to be used for rendering /// diff --git a/src/BizHawk.Client.EmuHawk/MainForm.cs b/src/BizHawk.Client.EmuHawk/MainForm.cs index 5f22107090..566cc6b7a2 100644 --- a/src/BizHawk.Client.EmuHawk/MainForm.cs +++ b/src/BizHawk.Client.EmuHawk/MainForm.cs @@ -432,7 +432,7 @@ namespace BizHawk.Client.EmuHawk Sound.StartSound(); InputManager.SyncControls(Emulator, MovieSession, Config); - GlobalWin.CheatList = new CheatCollection(Config.Cheats); + CheatList = new CheatCollection(Config.Cheats); CheatList.Changed += Tools.UpdateCheatRelatedTools; RewireSound(); @@ -874,7 +874,7 @@ namespace BizHawk.Client.EmuHawk } private Sound Sound => GlobalWin.Sound; - public CheatCollection CheatList => GlobalWin.CheatList; + public CheatCollection CheatList { get; } public IRewinder Rewinder { get; private set; } diff --git a/src/BizHawk.Client.EmuHawk/tools/HexEditor/HexEditor.cs b/src/BizHawk.Client.EmuHawk/tools/HexEditor/HexEditor.cs index 5517a76033..88617a1dc9 100644 --- a/src/BizHawk.Client.EmuHawk/tools/HexEditor/HexEditor.cs +++ b/src/BizHawk.Client.EmuHawk/tools/HexEditor/HexEditor.cs @@ -1654,12 +1654,6 @@ namespace BizHawk.Client.EmuHawk if (addresses.Any()) { - using var poke = new RamPoke - { - InitialLocation = this.ChildPointToScreen(AddressLabel), - ParentTool = this - }; - var watches = addresses.Select( address => Watch.GenerateWatch( _domain, @@ -1668,7 +1662,12 @@ namespace BizHawk.Client.EmuHawk Common.DisplayType.Hex, BigEndian)); - poke.SetWatch(watches); + using var poke = new RamPoke(watches, MainForm.CheatList) + { + InitialLocation = this.ChildPointToScreen(AddressLabel), + ParentTool = this + }; + poke.ShowHawkDialog(); GeneralUpdate(); } diff --git a/src/BizHawk.Client.EmuHawk/tools/Watch/RamPoke.cs b/src/BizHawk.Client.EmuHawk/tools/Watch/RamPoke.cs index 73572ce615..a97085b3b9 100644 --- a/src/BizHawk.Client.EmuHawk/tools/Watch/RamPoke.cs +++ b/src/BizHawk.Client.EmuHawk/tools/Watch/RamPoke.cs @@ -8,25 +8,24 @@ using BizHawk.Client.Common; namespace BizHawk.Client.EmuHawk { + // TODO: don't use textboxes as labels public partial class RamPoke : Form { - // TODO: don't use textboxes as labels - private List _watchList = new List(); - + private readonly List _watchList; + private readonly CheatCollection _cheats; public Point InitialLocation { get; set; } = new Point(0, 0); - public RamPoke() + public RamPoke(IEnumerable watches, CheatCollection cheats) { + _watchList = watches + .Where(w => !w.IsSeparator) // Weed out separators just in case + .ToList(); + _cheats = cheats; InitializeComponent(); } public IToolForm ParentTool { get; set; } - public void SetWatch(IEnumerable watches) - { - _watchList = watches.ToList(); - } - private void UnSupportedConfiguration() { MessageBox.Show("RAM Poke does not support mixed types", "Unsupported Options", MessageBoxButtons.OK, MessageBoxIcon.Error); @@ -35,8 +34,6 @@ namespace BizHawk.Client.EmuHawk private void RamPoke_Load(object sender, EventArgs e) { - _watchList = _watchList.Where(x => !x.IsSeparator).ToList(); // Weed out separators just in case - if (_watchList.Count == 0) { ValueBox.Enabled = false; @@ -97,11 +94,8 @@ namespace BizHawk.Client.EmuHawk var result = watch.Poke(ValueBox.Text); if (result) { - var cheat = GlobalWin.CheatList.FirstOrDefault(c => c.Address == watch.Address && c.Domain == watch.Domain); - if (!(cheat is null)) - { - cheat.PokeValue(watch.Value); - } + var cheat = _cheats.FirstOrDefault(c => c.Address == watch.Address && c.Domain == watch.Domain); + cheat?.PokeValue(watch.Value); } else { diff --git a/src/BizHawk.Client.EmuHawk/tools/Watch/RamSearch.cs b/src/BizHawk.Client.EmuHawk/tools/Watch/RamSearch.cs index 797f8f4ec3..a421e01629 100644 --- a/src/BizHawk.Client.EmuHawk/tools/Watch/RamSearch.cs +++ b/src/BizHawk.Client.EmuHawk/tools/Watch/RamSearch.cs @@ -860,14 +860,12 @@ namespace BizHawk.Client.EmuHawk { if (SelectedIndices.Any()) { - var poke = new RamPoke + var poke = new RamPoke(SelectedIndices.Select(t => _searches[t]), MainForm.CheatList) { InitialLocation = this.ChildPointToScreen(WatchListView) }; - poke.SetWatch(SelectedIndices.Select(t => _searches[t])); poke.ShowHawkDialog(); - UpdateList(); } } @@ -1256,11 +1254,12 @@ namespace BizHawk.Client.EmuHawk var allCheats = SelectedWatches.All(x => MainForm.CheatList.IsActive(x.Domain, x.Address)); if (allCheats) { - SelectedWatches.UnfreezeAll(); + MainForm.CheatList.RemoveRange(SelectedWatches); } else { - SelectedWatches.FreezeAll(); + MainForm.CheatList.AddRange( + SelectedWatches.Select(w => new Cheat(w, w.Value))); } } diff --git a/src/BizHawk.Client.EmuHawk/tools/Watch/RamWatch.cs b/src/BizHawk.Client.EmuHawk/tools/Watch/RamWatch.cs index 17a443b3e9..d61e0867e5 100644 --- a/src/BizHawk.Client.EmuHawk/tools/Watch/RamWatch.cs +++ b/src/BizHawk.Client.EmuHawk/tools/Watch/RamWatch.cs @@ -763,13 +763,11 @@ namespace BizHawk.Client.EmuHawk { if (SelectedWatches.Any()) { - var poke = new RamPoke + var poke = new RamPoke(SelectedWatches, MainForm.CheatList) { InitialLocation = this.ChildPointToScreen(WatchListView) }; - poke.SetWatch(SelectedWatches); - if (poke.ShowHawkDialog(this).IsOk()) { GeneralUpdate(); @@ -782,11 +780,12 @@ namespace BizHawk.Client.EmuHawk var allCheats = SelectedWatches.All(x => MainForm.CheatList.IsActive(x.Domain, x.Address)); if (allCheats) { - SelectedWatches.UnfreezeAll(); + MainForm.CheatList.RemoveRange(SelectedWatches); } else { - SelectedWatches.FreezeAll(); + MainForm.CheatList.AddRange( + SelectedWatches.Select(w => new Cheat(w, w.Value))); } }