Cheats - fix emulator freeze with bad config files

This commit is contained in:
adelikat 2012-09-11 03:25:39 +00:00
parent d84f13275e
commit 7be2ea0946
1 changed files with 17 additions and 26 deletions

View File

@ -1029,43 +1029,34 @@ namespace BizHawk.MultiClient
private void ColumnPositionSet() private void ColumnPositionSet()
{ {
List<ColumnHeader> columnHeaders = new List<ColumnHeader>(); List<ColumnHeader> columnHeaders = new List<ColumnHeader>();
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]); columnHeaders.Add(CheatListView.Columns[i]);
} }
CheatListView.Columns.Clear(); CheatListView.Columns.Clear();
i = 0; List<KeyValuePair<int, string>> columnSettings = new List<KeyValuePair<int, string>>();
do columnSettings.Add(new KeyValuePair<int, string>(Global.Config.RamWatchAddressIndex, "Name"));
{ columnSettings.Add(new KeyValuePair<int, string>(Global.Config.RamWatchAddressIndex, "Address"));
string column = ""; columnSettings.Add(new KeyValuePair<int, string>(Global.Config.RamWatchAddressIndex, "Value"));
if (Global.Config.CheatsNameIndex == i) columnSettings.Add(new KeyValuePair<int, string>(Global.Config.RamWatchAddressIndex, "Compare"));
column = "Name"; columnSettings.Add(new KeyValuePair<int, string>(Global.Config.RamWatchAddressIndex, "Domain"));
else if (Global.Config.CheatsAddressIndex == i) columnSettings.Add(new KeyValuePair<int, string>(Global.Config.RamWatchAddressIndex, "On"));
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++) columnSettings = columnSettings.OrderBy(s => s.Key).ToList();
{
if (columnHeaders[k].Text == column)
{
CheatListView.Columns.Add(columnHeaders[k]);
columnHeaders.Remove(columnHeaders[k]);
break;
for (int i = 0; i < columnSettings.Count; i++)
{
for (int j = 0; j < columnHeaders.Count; j++)
{
if (columnSettings[i].Value == columnHeaders[j].Text)
{
CheatListView.Columns.Add(columnHeaders[j]);
}
} }
} }
i++;
} while (columnHeaders.Count() > 0);
} }
private void Cheats_DragEnter(object sender, DragEventArgs e) private void Cheats_DragEnter(object sender, DragEventArgs e)