diff --git a/BizHawk.MultiClient/tools/Watch/RamSearchEngine.cs b/BizHawk.MultiClient/tools/Watch/RamSearchEngine.cs index f544a56410..e988d1c83f 100644 --- a/BizHawk.MultiClient/tools/Watch/RamSearchEngine.cs +++ b/BizHawk.MultiClient/tools/Watch/RamSearchEngine.cs @@ -200,7 +200,17 @@ namespace BizHawk.MultiClient public Compare CompareTo { get { return _compareTo; } - set { _compareTo = value; } //TODO: check to see if this value is valid based on mode + set + { + if (CanDoCompareType(value)) + { + _compareTo = value; + } + else + { + throw new InvalidOperationException(); + } + } } public long? CompareValue @@ -678,6 +688,18 @@ namespace BizHawk.MultiClient } } + private bool CanDoCompareType(Compare compareType) + { + switch (_settings.Mode) + { + default: + case Settings.SearchMode.Detailed: + return true; + case Settings.SearchMode.Fast: + return !(compareType == Compare.Changes); + } + } + #endregion #region Classes