public void TestGetKnownSaints() { var knownSaintFromBytes = SaintBitmask.FromBytes(new byte[] { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }).SaintIds; Assert.IsTrue(knownSaintFromBytes.Count == 0); knownSaintFromBytes = SaintBitmask.FromBytes(new byte[] { 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }).SaintIds; Assert.IsTrue(knownSaintFromBytes.Count == 1); Assert.IsTrue(knownSaintFromBytes.First() == 0); knownSaintFromBytes = SaintBitmask.FromBytes(new byte[] { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01 }).SaintIds; Assert.IsTrue(knownSaintFromBytes.Count == 1); Assert.IsTrue(knownSaintFromBytes.First() == 159); var saints = SaintBitmask.FromBytes(new byte[] { 0x00, 0xFF, 0x00, 0x12, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }); saints.ForgetSaint(10); Assert.IsFalse(saints.HasSaint(10)); saints.ForgetSaint(10); Assert.IsFalse(saints.HasSaint(10)); saints.LearnSaint(10); Assert.IsTrue(saints.HasSaint(10)); saints.LearnSaint(10); Assert.IsTrue(saints.HasSaint(10)); }
public SaintModel(Saint saint, SaintBitmask bitmask) { Name = saint.ShortName; Tip = StringHelper.WordWrap(saint.Description + Environment.NewLine + Environment.NewLine + saint.Clue, 70); _id = saint.Id; _bitmask = bitmask; }
public SaintViewModel(IEnumerable <Saint> saints, SaintBitmask knownSaints) { var models = new List <SaintModel>(); models.AddRange(from s in saints select new SaintModel(s, knownSaints)); Saints = models; }
public static IEnumerable <SaintBitmask> ReadKnownSaints() { if (_baseAddress == 0) { throw new InvalidOperationException("Connect to Darkland process first!"); } var saints = new List <SaintBitmask>(NumberofCharacters); using (var accessor = new MemoryAccessor("dosbox")) { for (var i = 0; i < NumberofCharacters; i++) { var bytes = new byte[SaintBitmask.SaintBitmaskSize]; if (accessor.ReadMemory( _baseAddress + KnownSaintsOffset + i * SaintBitmask.SaintBitmaskSize, bytes)) { saints.Add(SaintBitmask.FromBytes(bytes)); } } } return(saints); }