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); }
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); } } }
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); } } }