BizHawk/BizHawk.Client.Common/tools/RamSearchEngine/SearchEngineSettings.cs

42 lines
1.2 KiB
C#

using BizHawk.Emulation.Common;
namespace BizHawk.Client.Common.RamSearchEngine
{
public class SearchEngineSettings
{
public SearchEngineSettings(IMemoryDomains memoryDomains)
{
BigEndian = memoryDomains.MainMemory.EndianType == MemoryDomain.Endian.Big;
Size = (WatchSize)memoryDomains.MainMemory.WordSize;
Type = DisplayType.Unsigned;
Mode = memoryDomains.MainMemory.Size > 1024 * 1024
? SearchMode.Fast
: SearchMode.Detailed;
Domain = memoryDomains.MainMemory;
CheckMisAligned = false;
PreviousType = PreviousType.LastSearch;
}
/*Require restart*/
public SearchMode Mode { get; set; }
public MemoryDomain Domain { get; set; }
public WatchSize Size { get; set; }
public bool CheckMisAligned { get; set; }
/*Can be changed mid-search*/
public DisplayType Type { get; set; }
public bool BigEndian { get; set; }
public PreviousType PreviousType { get; set; }
}
public static class SearchEngineSettingsExtensions
{
public static bool IsFastMode(this SearchEngineSettings settings)
=> settings.Mode == SearchMode.Fast;
public static bool IsDetailed(this SearchEngineSettings settings)
=> settings.Mode == SearchMode.Detailed;
}
}