From da31963df54f9dc3d1115200e3cc93e2224c02b1 Mon Sep 17 00:00:00 2001 From: "andres.delikat" Date: Sun, 20 Feb 2011 23:01:43 +0000 Subject: [PATCH] Ram Search - implement searching by number of changes --- .../tools/RamSearch.Designer.cs | 2 +- BizHawk.MultiClient/tools/RamSearch.cs | 118 +++++++++++++++++- BizHawk.MultiClient/tools/RamSearch.resx | 6 +- 3 files changed, 121 insertions(+), 5 deletions(-) diff --git a/BizHawk.MultiClient/tools/RamSearch.Designer.cs b/BizHawk.MultiClient/tools/RamSearch.Designer.cs index 82d4b52a65..7a1c20af25 100644 --- a/BizHawk.MultiClient/tools/RamSearch.Designer.cs +++ b/BizHawk.MultiClient/tools/RamSearch.Designer.cs @@ -392,7 +392,7 @@ this.toolStripButton1.ImageTransparentColor = System.Drawing.Color.Magenta; this.toolStripButton1.Name = "toolStripButton1"; this.toolStripButton1.Size = new System.Drawing.Size(23, 22); - this.toolStripButton1.Text = "toolStripButton1"; + this.toolStripButton1.Text = "Search"; this.toolStripButton1.Click += new System.EventHandler(this.toolStripButton1_Click); // // ClearChangeCountstoolStripButton diff --git a/BizHawk.MultiClient/tools/RamSearch.cs b/BizHawk.MultiClient/tools/RamSearch.cs index f8060f446c..90ec164adf 100644 --- a/BizHawk.MultiClient/tools/RamSearch.cs +++ b/BizHawk.MultiClient/tools/RamSearch.cs @@ -461,11 +461,49 @@ namespace BizHawk.MultiClient private bool DoPreviousValue() { + switch (GetOperator()) + { + case SOperator.LESS: + break; + case SOperator.GREATER: + break; + case SOperator.LESSEQUAL: + break; + case SOperator.GREATEREQUAL: + break; + case SOperator.EQUAL: + break; + case SOperator.NOTEQUAL: + break; + case SOperator.DIFFBY: + break; + case SOperator.MODULUS: + break; + } return false; } private bool DoSpecificValue() { + switch (GetOperator()) + { + case SOperator.LESS: + break; + case SOperator.GREATER: + break; + case SOperator.LESSEQUAL: + break; + case SOperator.GREATEREQUAL: + break; + case SOperator.EQUAL: + break; + case SOperator.NOTEQUAL: + break; + case SOperator.DIFFBY: + break; + case SOperator.MODULUS: + break; + } return false; } @@ -563,9 +601,87 @@ namespace BizHawk.MultiClient return true; } + private int GetSpecificChanges() + { + bool i = InputValidate.IsValidUnsignedNumber(NumberOfChangesBox.Text); + if (!i) return -1; + + return int.Parse(NumberOfChangesBox.Text.ToUpper().Trim()); + } + private bool DoNumberOfChanges() { - return false; + int changes = GetSpecificChanges(); + if (changes < 0) + { + MessageBox.Show("Missing or invalid number of changes", "Invalid number", MessageBoxButtons.OK, MessageBoxIcon.Error); + NumberOfChangesBox.Focus(); + NumberOfChangesBox.SelectAll(); + return false; + } + switch (GetOperator()) + { + case SOperator.LESS: + for (int x = 0; x < searchList.Count; x++) + { + if (searchList[x].changecount < changes) + weededList.Add(searchList[x]); + } + break; + case SOperator.GREATER: + for (int x = 0; x < searchList.Count; x++) + { + if (searchList[x].changecount > changes) + weededList.Add(searchList[x]); + } + break; + case SOperator.LESSEQUAL: + for (int x = 0; x < searchList.Count; x++) + { + if (searchList[x].changecount <= changes) + weededList.Add(searchList[x]); + } + break; + case SOperator.GREATEREQUAL: + for (int x = 0; x < searchList.Count; x++) + { + if (searchList[x].changecount >= changes) + weededList.Add(searchList[x]); + } + break; + case SOperator.EQUAL: + for (int x = 0; x < searchList.Count; x++) + { + if (searchList[x].changecount == changes) + weededList.Add(searchList[x]); + } + break; + case SOperator.NOTEQUAL: + for (int x = 0; x < searchList.Count; x++) + { + if (searchList[x].changecount != changes) + weededList.Add(searchList[x]); + } + break; + case SOperator.DIFFBY: + int diff = GetDifferentBy(); + if (diff < 0) + { + MessageBox.Show("Missing or invalid Different By value", "Invalid value", MessageBoxButtons.OK, MessageBoxIcon.Error); + DifferentByBox.Focus(); + DifferentByBox.SelectAll(); + return false; + } + for (int x = 0; x < searchList.Count; x++) + { + if (searchList[x].address == changes + diff || searchList[x].address == changes - diff) + weededList.Add(searchList[x]); + } + break; + case SOperator.MODULUS: + break; + } + return true; } private void signedToolStripMenuItem_Click(object sender, EventArgs e) diff --git a/BizHawk.MultiClient/tools/RamSearch.resx b/BizHawk.MultiClient/tools/RamSearch.resx index 5597b9c11f..70c8b2fa77 100644 --- a/BizHawk.MultiClient/tools/RamSearch.resx +++ b/BizHawk.MultiClient/tools/RamSearch.resx @@ -171,9 +171,6 @@ 259, 17 - - 358, 17 - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 @@ -205,6 +202,9 @@ s1c0gHPmbrPTpHNJKOCo2G1mZs20zcwUJ5yp1AB5+8/zEwgF5GMVDxh4AAAAAElFTkSuQmCC + + 358, 17 + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8