public void ConstantField() { InitTest(); var boolTrue = new MemoryFieldConstant <bool>("BoolTrue", true); var boolFalse = new MemoryFieldConstant <bool>("BoolFalse", false); drvPool.Add(boolTrue); drvPool.Add(boolFalse); memory.Refresh(); Assert.AreEqual(0, actionLogbook.Count); Assert.True(drvPool.ReadAs <bool>("BoolTrue")); Assert.False(drvPool.ReadAs <bool>("BoolFalse")); }
public void CounterField() { InitTest(); int iCounter = 0; var fieldCounter = new MemoryFieldFunc <int>("Counter", (pool) => { iCounter++; return(iCounter); }); drvPool.Add(fieldCounter); memory.Refresh(); Assert.AreEqual(1, drvPool.ReadAs <int>("Counter")); Assert.AreEqual(2, drvPool.ReadAs <int>("Counter")); Assert.AreEqual(3, drvPool.ReadAs <int>("Counter")); Assert.AreEqual(4, drvPool.ReadAs <int>("Counter")); Assert.AreEqual(5, drvPool.ReadAs <int>("Counter")); Assert.AreEqual(6, drvPool.ReadAs <int>("Counter")); Assert.AreEqual(7, drvPool.ReadAs <int>("Counter")); }
public void FieldDynamic() { InitTest(); var FieldFuel = new MemoryField <float>("FuelCapacity", MemoryAddress.Dynamic, 0, 0x3160, 4); var FieldIndex = new MemoryField <int>("Index", MemoryAddress.Dynamic, 0, 0x8, 4); // +0x8 = driver index drvPool.Add(FieldIndex); drvPool.Add(FieldFuel); memory.Refresh(); Assert.True(FieldIndex.HasChanged()); Assert.True(FieldFuel.HasChanged()); // only 1 read from pool: Assert.AreEqual(1, actionLogbook.Count); Assert.AreEqual(0x7154C0, actionLogbook[0].Address); Assert.AreEqual(0x6000, actionLogbook[0].Size); // And read some values in different types: Assert.AreEqual(0, drvPool.ReadAs <int>("Index")); Assert.AreEqual(0, drvPool.ReadAs <uint>("Index")); Assert.AreEqual(0.0f, drvPool.ReadAs <float>("Index")); Assert.AreEqual(100.0f, drvPool.ReadAs <float>("FuelCapacity")); Assert.AreEqual(100, drvPool.ReadAs <int>("FuelCapacity")); Assert.AreEqual(100.0, drvPool.ReadAs <double>("FuelCapacity")); memory.Refresh(); Assert.False(FieldIndex.HasChanged()); Assert.False(FieldFuel.HasChanged()); Assert.AreEqual(2, actionLogbook.Count); Assert.AreEqual(0x7154C0, actionLogbook[0].Address); Assert.AreEqual(0x6000, actionLogbook[0].Size); Assert.AreEqual(0x7154C0, actionLogbook[1].Address); Assert.AreEqual(0x6000, actionLogbook[1].Size); }
public void FieldStaticAbsoluteSignature() { InitTest(); var plrMemoryPtr = new MemoryFieldSignature <int>("Player", MemoryAddress.StaticAbsolute, "A0XXXXXXXX8B0D????????F6D81BC0", new[] { 0 }, 0x6000); drvPool.Add(plrMemoryPtr); memory.Scanner.Enable(); memory.Refresh(); memory.Scanner.Disable(); Assert.True(plrMemoryPtr.HasChanged()); int preRescanCount = actionLogbook.Count; Assert.Greater(actionLogbook.Count, 1); Assert.AreEqual(0x7154C0, actionLogbook[actionLogbook.Count - 3].Address); // pool itself Assert.AreEqual(0x6000, actionLogbook[actionLogbook.Count - 3].Size); Assert.AreEqual(0x71528C, actionLogbook[actionLogbook.Count - 2].Address); // our sig ptr scan Assert.AreEqual(0x4, actionLogbook[actionLogbook.Count - 2].Size); Assert.AreEqual(0x7154C0, actionLogbook[actionLogbook.Count - 1].Address); // our sig Assert.AreEqual(0x6000, actionLogbook[actionLogbook.Count - 1].Size); Assert.AreEqual(0x7154C0, drvPool.ReadAs <int>("Player")); Assert.AreEqual(0x7154C0, plrMemoryPtr.Address); Assert.AreEqual(actionLogbook.Count, preRescanCount); // It will only refresh the contents of the pointer memory.Refresh(); Assert.False(plrMemoryPtr.HasChanged()); int postRescanCount = actionLogbook.Count; Assert.AreEqual(2, postRescanCount - preRescanCount); Assert.AreEqual(0x7154C0, actionLogbook[actionLogbook.Count - 5].Address); // pool itself Assert.AreEqual(0x6000, actionLogbook[actionLogbook.Count - 5].Size); Assert.AreEqual(0x71528C, actionLogbook[actionLogbook.Count - 4].Address); // our sig ptr scan Assert.AreEqual(0x4, actionLogbook[actionLogbook.Count - 4].Size); Assert.AreEqual(0x7154C0, actionLogbook[actionLogbook.Count - 3].Address); // our sig Assert.AreEqual(0x6000, actionLogbook[actionLogbook.Count - 3].Size); Assert.AreEqual(0x7154C0, actionLogbook[actionLogbook.Count - 2].Address); // pool itself Assert.AreEqual(0x6000, actionLogbook[actionLogbook.Count - 2].Size); Assert.AreEqual(0x7154C0, actionLogbook[actionLogbook.Count - 1].Address); // our result from sig Assert.AreEqual(0x6000, actionLogbook[actionLogbook.Count - 1].Size); }