Fix outstanding issues from 011f4bfe03
This commit is contained in:
parent
0d3c7b7e0c
commit
bdcd37215c
|
@ -49,11 +49,8 @@ namespace BizHawk.Client.Common.RamSearchEngine
|
||||||
{
|
{
|
||||||
_history.Clear();
|
_history.Clear();
|
||||||
var domain = _settings.Domain;
|
var domain = _settings.Domain;
|
||||||
var listSize = domain.Size;
|
int stepSize = _settings.CheckMisAligned ? 1 : (int)_settings.Size;
|
||||||
if (!_settings.CheckMisAligned)
|
long listSize = domain.Size / stepSize - (int)_settings.Size + stepSize;
|
||||||
{
|
|
||||||
listSize /= (int)_settings.Size;
|
|
||||||
}
|
|
||||||
|
|
||||||
_watchList = new IMiniWatch[listSize];
|
_watchList = new IMiniWatch[listSize];
|
||||||
|
|
||||||
|
@ -77,29 +74,29 @@ namespace BizHawk.Client.Common.RamSearchEngine
|
||||||
|
|
||||||
break;
|
break;
|
||||||
case WatchSize.Word:
|
case WatchSize.Word:
|
||||||
for (int i = 0; i < domain.Size - 1; i += _settings.CheckMisAligned ? 1 : 2)
|
for (int i = 0; i < listSize; i++)
|
||||||
{
|
{
|
||||||
if (_settings.IsDetailed())
|
if (_settings.IsDetailed())
|
||||||
{
|
{
|
||||||
_watchList[i] = new MiniWordWatchDetailed(domain, i, _settings.BigEndian);
|
_watchList[i] = new MiniWordWatchDetailed(domain, i * stepSize, _settings.BigEndian);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
_watchList[i] = new MiniWordWatch(domain, i, _settings.BigEndian);
|
_watchList[i] = new MiniWordWatch(domain, i * stepSize, _settings.BigEndian);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
break;
|
break;
|
||||||
case WatchSize.DWord:
|
case WatchSize.DWord:
|
||||||
for (int i = 0; i < domain.Size - 3; i += _settings.CheckMisAligned ? 1 : 4)
|
for (int i = 0; i < listSize; i++)
|
||||||
{
|
{
|
||||||
if (_settings.IsDetailed())
|
if (_settings.IsDetailed())
|
||||||
{
|
{
|
||||||
_watchList[i] = new MiniDWordWatchDetailed(domain, i, _settings.BigEndian);
|
_watchList[i] = new MiniDWordWatchDetailed(domain, i * stepSize, _settings.BigEndian);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
_watchList[i] = new MiniDWordWatch(domain, i, _settings.BigEndian);
|
_watchList[i] = new MiniDWordWatch(domain, i * stepSize, _settings.BigEndian);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -273,16 +270,11 @@ namespace BizHawk.Client.Common.RamSearchEngine
|
||||||
|
|
||||||
public void RemoveAddressRange(IEnumerable<long> addresses)
|
public void RemoveAddressRange(IEnumerable<long> addresses)
|
||||||
{
|
{
|
||||||
_watchList.RemoveAll(w => addresses.Contains(w.Address));
|
_watchList = _watchList.Where(w => !addresses.Contains(w.Address)).ToArray();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void AddRange(IEnumerable<long> addresses, bool append)
|
public void AddRange(IEnumerable<long> addresses, bool append)
|
||||||
{
|
{
|
||||||
if (!append)
|
|
||||||
{
|
|
||||||
Array.Clear(_watchList, 0, _watchList.Length);
|
|
||||||
}
|
|
||||||
|
|
||||||
var list = _settings.Size switch
|
var list = _settings.Size switch
|
||||||
{
|
{
|
||||||
WatchSize.Byte => addresses.ToBytes(_settings),
|
WatchSize.Byte => addresses.ToBytes(_settings),
|
||||||
|
@ -291,7 +283,7 @@ namespace BizHawk.Client.Common.RamSearchEngine
|
||||||
_ => addresses.ToBytes(_settings)
|
_ => addresses.ToBytes(_settings)
|
||||||
};
|
};
|
||||||
|
|
||||||
_watchList.AddRange(list);
|
_watchList = (append ? _watchList.Concat(list) : list).ToArray();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Sort(string column, bool reverse)
|
public void Sort(string column, bool reverse)
|
||||||
|
|
Loading…
Reference in New Issue