From 098fca28954bfca13f9dafa2f8f8b52dfacee340 Mon Sep 17 00:00:00 2001 From: adelikat Date: Fri, 27 Dec 2013 16:48:47 +0000 Subject: [PATCH] Ram Search - make manual removal of addresses undo-able, slight cleanup of Start method --- .../tools/RamSearchEngine.cs | 22 +++++++++++++------ .../tools/Watch/RamSearch.cs | 1 + 2 files changed, 16 insertions(+), 7 deletions(-) diff --git a/BizHawk.Client.Common/tools/RamSearchEngine.cs b/BizHawk.Client.Common/tools/RamSearchEngine.cs index 7cb68482b7..69fe72da20 100644 --- a/BizHawk.Client.Common/tools/RamSearchEngine.cs +++ b/BizHawk.Client.Common/tools/RamSearchEngine.cs @@ -55,50 +55,53 @@ namespace BizHawk.Client.Common case Watch.WatchSize.Byte: if (_settings.Mode == Settings.SearchMode.Detailed) { - for (int i = 0; i < _settings.Domain.Size; i++) + for (int i = 0; i < domain.Size; i++) { _watchList.Add(new MiniByteWatchDetailed(domain, i)); } } else { - for (int i = 0; i < _settings.Domain.Size; i++) + for (int i = 0; i < domain.Size; i++) { _watchList.Add(new MiniByteWatch(domain, i)); } } + break; case Watch.WatchSize.Word: if (_settings.Mode == Settings.SearchMode.Detailed) { - for (int i = 0; i < _settings.Domain.Size; i += (_settings.CheckMisAligned ? 1 : 2)) + for (int i = 0; i < domain.Size; i += (_settings.CheckMisAligned ? 1 : 2)) { _watchList.Add(new MiniWordWatchDetailed(domain, i, _settings.BigEndian)); } } else { - for (int i = 0; i < _settings.Domain.Size; i += (_settings.CheckMisAligned ? 1 : 2)) + for (int i = 0; i < domain.Size; i += (_settings.CheckMisAligned ? 1 : 2)) { _watchList.Add(new MiniWordWatch(domain, i, _settings.BigEndian)); } } + break; case Watch.WatchSize.DWord: if (_settings.Mode == Settings.SearchMode.Detailed) { - for (int i = 0; i < _settings.Domain.Size; i += (_settings.CheckMisAligned ? 1 : 4)) + for (int i = 0; i < domain.Size; i += (_settings.CheckMisAligned ? 1 : 4)) { _watchList.Add(new MiniDWordWatchDetailed(domain, i, _settings.BigEndian)); } } else { - for (int i = 0; i < _settings.Domain.Size; i += (_settings.CheckMisAligned ? 1 : 4)) + for (int i = 0; i < domain.Size; i += (_settings.CheckMisAligned ? 1 : 4)) { _watchList.Add(new MiniDWordWatch(domain, i, _settings.BigEndian)); } } + break; } @@ -145,7 +148,7 @@ namespace BizHawk.Client.Common public int DoSearch() { int before = _watchList.Count; - + switch (_compareTo) { default: @@ -316,6 +319,11 @@ namespace BizHawk.Client.Common public void RemoveRange(IEnumerable addresses) { + if (_keepHistory) + { + _history.AddState(_watchList); + } + _watchList = _watchList.Where(x => !addresses.Contains(x.Address)).ToList(); } diff --git a/BizHawk.Client.EmuHawk/tools/Watch/RamSearch.cs b/BizHawk.Client.EmuHawk/tools/Watch/RamSearch.cs index 91a7fa91ba..ca3a1d12b2 100644 --- a/BizHawk.Client.EmuHawk/tools/Watch/RamSearch.cs +++ b/BizHawk.Client.EmuHawk/tools/Watch/RamSearch.cs @@ -738,6 +738,7 @@ namespace BizHawk.Client.EmuHawk WatchListView.ItemCount = _searches.Count; SetTotal(); WatchListView.SelectedIndices.Clear(); + ToggleSearchDependentToolBarItems(); } }