internal Npc(MemoryReader reader, int version) { if (190 <= version) { SpriteId = reader.ReadInt32(); Type = "default"; } else { SpriteId = 0; Type = reader.ReadBString(); } Name = reader.ReadBString(); X = reader.ReadSingle(); Y = reader.ReadSingle(); IsHomeless = reader.ReadBoolean(); HomeX = reader.ReadInt32(); HomeY = reader.ReadInt32(); if (213 <= version && reader.ReadBoolean()) { TownVariationIndex = reader.ReadInt32(); } else { TownVariationIndex = 0; } }
sizeof(CallFlags); // CallFlags void ISerializable.Deserialize(ref MemoryReader reader) { Hash = reader.ReadSerializable <UInt160>(); Method = reader.ReadVarString(32); if (Method.StartsWith('_')) { throw new FormatException(); } ParametersCount = reader.ReadUInt16(); HasReturnValue = reader.ReadBoolean(); CallFlags = (CallFlags)reader.ReadByte(); if ((CallFlags & ~CallFlags.All) != 0) { throw new FormatException(); } }
public override void Deserialize(ref MemoryReader reader) { base.Deserialize(ref reader); ChangeViewMessages = reader.ReadSerializableArray <ChangeViewPayloadCompact>(byte.MaxValue).ToDictionary(p => p.ValidatorIndex); if (reader.ReadBoolean()) { PrepareRequestMessage = reader.ReadSerializable <PrepareRequest>(); } else { int preparationHashSize = UInt256.Zero.Size; if (preparationHashSize == (int)reader.ReadVarInt((ulong)preparationHashSize)) { PreparationHash = new UInt256(reader.ReadMemory(preparationHashSize).Span); } } PreparationMessages = reader.ReadSerializableArray <PreparationPayloadCompact>(byte.MaxValue).ToDictionary(p => p.ValidatorIndex); CommitMessages = reader.ReadSerializableArray <CommitPayloadCompact>(byte.MaxValue).ToDictionary(p => p.ValidatorIndex); }
public void GeneralSerialization() { var writer = new MemoryWriter(); writer.Write(true); writer.Write(123); writer.Write(-0.25f); writer.Write('c'); var guid = Guid.NewGuid(); writer.Write(guid); writer.Write("Hello"); writer.Write(new Vector2(0.25f, -0.3f)); writer.Write(new Vector3(0.5f, -0.6f, 0.25f)); writer.Write(new Vector4(0.75f, -0.9f, -0.4f, 0.333f)); writer.Write(new Quaternion(0.75f, -0.9f, -0.4f, 0.333f)); var reader = new MemoryReader(writer.GetBuffer(), writer.Length); Assert.True(reader.ReadBoolean()); Assert.AreEqual(123, reader.ReadInt32()); Assert.AreEqual(-0.25f, reader.ReadSingle()); Assert.AreEqual('c', reader.ReadChar()); Assert.AreEqual(guid, reader.ReadGuid()); Assert.AreEqual("Hello", reader.ReadString()); Assert.AreEqual(new Vector2(0.25f, -0.3f), reader.ReadVector2()); Assert.AreEqual(new Vector3(0.5f, -0.6f, 0.25f), reader.ReadVector3()); Assert.AreEqual(new Vector4(0.75f, -0.9f, -0.4f, 0.333f), reader.ReadVector4()); Assert.AreEqual(new Quaternion(0.75f, -0.9f, -0.4f, 0.333f), reader.ReadQuaternion()); }
protected override void DeserializeWithoutType(ref MemoryReader reader, int maxNestDepth) { Expression = reader.ReadBoolean(); }