From 7be2ea0946f274b27cccf84539f79b5de30c854c Mon Sep 17 00:00:00 2001 From: adelikat Date: Tue, 11 Sep 2012 03:25:39 +0000 Subject: [PATCH] Cheats - fix emulator freeze with bad config files --- BizHawk.MultiClient/tools/Cheats.cs | 43 ++++++++++++----------------- 1 file changed, 17 insertions(+), 26 deletions(-) diff --git a/BizHawk.MultiClient/tools/Cheats.cs b/BizHawk.MultiClient/tools/Cheats.cs index 4121957158..1ce8a681b3 100644 --- a/BizHawk.MultiClient/tools/Cheats.cs +++ b/BizHawk.MultiClient/tools/Cheats.cs @@ -1029,43 +1029,34 @@ namespace BizHawk.MultiClient private void ColumnPositionSet() { List columnHeaders = new List(); - int i = 0; - for (i = 0; i < CheatListView.Columns.Count; i++) + + for (int i = 0; i < CheatListView.Columns.Count; i++) { columnHeaders.Add(CheatListView.Columns[i]); } CheatListView.Columns.Clear(); - i = 0; - do + List> columnSettings = new List>(); + columnSettings.Add(new KeyValuePair(Global.Config.RamWatchAddressIndex, "Name")); + columnSettings.Add(new KeyValuePair(Global.Config.RamWatchAddressIndex, "Address")); + columnSettings.Add(new KeyValuePair(Global.Config.RamWatchAddressIndex, "Value")); + columnSettings.Add(new KeyValuePair(Global.Config.RamWatchAddressIndex, "Compare")); + columnSettings.Add(new KeyValuePair(Global.Config.RamWatchAddressIndex, "Domain")); + columnSettings.Add(new KeyValuePair(Global.Config.RamWatchAddressIndex, "On")); + + columnSettings = columnSettings.OrderBy(s => s.Key).ToList(); + + for (int i = 0; i < columnSettings.Count; i++) { - string column = ""; - if (Global.Config.CheatsNameIndex == i) - column = "Name"; - else if (Global.Config.CheatsAddressIndex == i) - column = "Address"; - else if (Global.Config.CheatsValueIndex == i) - column = "Value"; - else if (Global.Config.CheatsCompareIndex == i) - column = "Compare"; - else if (Global.Config.CheatsDomainIndex == i) - column = "Domain"; - else if (Global.Config.CheatsOnIndex == i) - column = "On"; - - for (int k = 0; k < columnHeaders.Count(); k++) + for (int j = 0; j < columnHeaders.Count; j++) { - if (columnHeaders[k].Text == column) + if (columnSettings[i].Value == columnHeaders[j].Text) { - CheatListView.Columns.Add(columnHeaders[k]); - columnHeaders.Remove(columnHeaders[k]); - break; - + CheatListView.Columns.Add(columnHeaders[j]); } } - i++; - } while (columnHeaders.Count() > 0); + } } private void Cheats_DragEnter(object sender, DragEventArgs e)