public void TestGetKnownFormulaeIds() { var bitmask = new byte[] { 0x00, 0x00, 0x05, 0x00, 0x05, 0x04, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x02, 0x00, 0x00 }; var formulae = FormulaeBitmask.FromBytes(bitmask).FormulaeIds; Assert.AreEqual(9, formulae.Count()); Assert.IsTrue(formulae.Contains(0x06)); Assert.IsTrue(formulae.Contains(0x08)); Assert.IsTrue(formulae.Contains(0x0c)); Assert.IsTrue(formulae.Contains(0x0e)); Assert.IsTrue(formulae.Contains(0x11)); Assert.IsTrue(formulae.Contains(0x13)); Assert.IsTrue(formulae.Contains(0x14)); Assert.IsTrue(formulae.Contains(0x38)); Assert.IsTrue(formulae.Contains(0x3a)); }
public static IEnumerable <FormulaeBitmask> ReadKnownFormulae() { if (_baseAddress == 0) { throw new InvalidOperationException("Connect to Darkland process first!"); } var formulae = new List <FormulaeBitmask>(NumberofCharacters); using (var accessor = new MemoryAccessor("dosbox")) { for (var i = 0; i < NumberofCharacters; i++) { var bytes = new byte[FormulaeBitmask.FormulaeBitmaskSize]; if (accessor.ReadMemory( _baseAddress + KnownFormulaeOffset + i * FormulaeBitmask.FormulaeBitmaskSize, bytes)) { formulae.Add(FormulaeBitmask.FromBytes(bytes)); } } } return(formulae); }