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));
        }
Exemple #2
0
        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;
        }
Exemple #3
0
        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;
        }
Exemple #4
0
        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);
        }