Beispiel #1
0
        public virtual void Read(BinaryReaderExt r)
        {
            EntryFlags  = r.ReadInt64();
            EntryNumber = r.ReadInt32();

            bool hasString = r.ReadBoolean();

            EntryName = r.ReadString(0x38);

            bool hasLabel = r.ReadBoolean();

            EntryLabel = r.ReadString(0x40);

            bool hasStartPosition = r.ReadBoolean();

            StartPosition    = new LVDVector3(r.ReadSingle(), r.ReadSingle(), r.ReadSingle());
            UseStartPosition = r.ReadBoolean();

            // Unknown
            r.Skip(1);
            UnknownIndex2 = r.ReadInt32();

            r.Skip(1);
            UnknownVector = new LVDVector3(r.ReadSingle(), r.ReadSingle(), r.ReadSingle());
            UnknownIndex  = r.ReadInt32();

            r.Skip(1);
            BoneName = r.ReadString(0x40);
        }
Beispiel #2
0
        public void CheckCharNameAnswerTest()
        {
            var packet = new CheckCharacterNameAnswerPacket()
            {
                CharacterName = "Test",
                Availability  = true
            };
            var bytes = packet.GetBytes();

            using (var ms = new MemoryStream(bytes))
            {
                using (var bs = new BinaryReaderExt(ms))
                {
                    var characterName = bs.ReadUnicodeStatic(21);
                    Assert.AreEqual(packet.CharacterName, characterName);

                    var availability = bs.ReadBoolean();
                    Assert.AreEqual(packet.Availability, availability);
                }
            }
        }
Beispiel #3
0
        public void Read(BinaryReaderExt r, int VersionMinor)
        {
            base.Read(r);

            Flag1       = r.ReadBoolean();
            Rigged      = r.ReadBoolean();
            Flag3       = r.ReadBoolean();
            PassThrough = r.ReadBoolean();

            r.ReadByte();
            int vertCount = r.ReadInt32();

            for (int i = 0; i < vertCount; i++)
            {
                r.ReadByte();
                Vertices.Add(new LVDVector2(r.ReadSingle(), r.ReadSingle()));
            }

            r.ReadByte();
            int normalCount = r.ReadInt32();

            for (int i = 0; i < normalCount; i++)
            {
                r.ReadByte();
                Normals.Add(new LVDVector2(r.ReadSingle(), r.ReadSingle()));
            }

            r.ReadByte();
            int cliffCount = r.ReadInt32();

            for (int i = 0; i < cliffCount; i++)
            {
                var cliff = new LVDCollisionCliff();
                cliff.Read(r);
                Cliffs.Add(cliff);
            }

            r.ReadByte();
            int materialCount = r.ReadInt32();

            for (int i = 0; i < materialCount; i++)
            {
                var material = new LVDCollisionMaterial();
                material.Read(r);
                Materials.Add(material);
            }

            // Ultimate Only?

            if (VersionMinor > 10)
            {
                r.ReadByte();
                var vecCount = r.ReadInt32();
                for (int i = 0; i < vecCount; i++)
                {
                    var vec = new LVDCollisionCurve();
                    vec.Read(r);
                    Curves.Add(vec);
                }
            }
        }