public virtual void WriteToStreamDelta(Stream stream, Magazine previous) { if (previous == null) { Magazine.Serialize(stream, this); return; } Magazine.SerializeDelta(stream, this, previous); }
public static void SerializeDelta(Stream stream, BaseProjectile instance, BaseProjectile previous) { MemoryStream memoryStream = Pool.Get <MemoryStream>(); if (instance.primaryMagazine != null) { stream.WriteByte(10); memoryStream.SetLength((long)0); Magazine.SerializeDelta(memoryStream, instance.primaryMagazine, previous.primaryMagazine); uint length = (uint)memoryStream.Length; ProtocolParser.WriteUInt32(stream, length); stream.Write(memoryStream.GetBuffer(), 0, (int)length); } Pool.FreeMemoryStream(ref memoryStream); }