コード例 #1
0
            public static void SerializeDelta(Stream stream, PlayerLifeStory.DeathInfo instance, PlayerLifeStory.DeathInfo previous)
            {
                MemoryStream memoryStream = Pool.Get <MemoryStream>();

                if (instance.attackerName != null && instance.attackerName != previous.attackerName)
                {
                    stream.WriteByte(10);
                    ProtocolParser.WriteString(stream, instance.attackerName);
                }
                if (instance.attackerSteamID != previous.attackerSteamID)
                {
                    stream.WriteByte(16);
                    ProtocolParser.WriteUInt64(stream, instance.attackerSteamID);
                }
                if (instance.hitBone != null && instance.hitBone != previous.hitBone)
                {
                    stream.WriteByte(26);
                    ProtocolParser.WriteString(stream, instance.hitBone);
                }
                if (instance.inflictorName != null && instance.inflictorName != previous.inflictorName)
                {
                    stream.WriteByte(34);
                    ProtocolParser.WriteString(stream, instance.inflictorName);
                }
                if (instance.lastDamageType != previous.lastDamageType)
                {
                    stream.WriteByte(40);
                    ProtocolParser.WriteUInt64(stream, (ulong)instance.lastDamageType);
                }
                Pool.FreeMemoryStream(ref memoryStream);
            }
コード例 #2
0
 public static PlayerLifeStory.DeathInfo Deserialize(byte[] buffer, PlayerLifeStory.DeathInfo instance, bool isDelta = false)
 {
     using (MemoryStream memoryStream = new MemoryStream(buffer))
     {
         PlayerLifeStory.DeathInfo.Deserialize(memoryStream, instance, isDelta);
     }
     return(instance);
 }
コード例 #3
0
 public void CopyTo(PlayerLifeStory.DeathInfo instance)
 {
     instance.attackerName    = this.attackerName;
     instance.attackerSteamID = this.attackerSteamID;
     instance.hitBone         = this.hitBone;
     instance.inflictorName   = this.inflictorName;
     instance.lastDamageType  = this.lastDamageType;
 }
コード例 #4
0
 public static PlayerLifeStory.DeathInfo Deserialize(byte[] buffer)
 {
     PlayerLifeStory.DeathInfo deathInfo = Pool.Get <PlayerLifeStory.DeathInfo>();
     using (MemoryStream memoryStream = new MemoryStream(buffer))
     {
         PlayerLifeStory.DeathInfo.Deserialize(memoryStream, deathInfo, false);
     }
     return(deathInfo);
 }
コード例 #5
0
 public virtual void WriteToStreamDelta(Stream stream, PlayerLifeStory.DeathInfo previous)
 {
     if (previous == null)
     {
         PlayerLifeStory.DeathInfo.Serialize(stream, this);
         return;
     }
     PlayerLifeStory.DeathInfo.SerializeDelta(stream, this, previous);
 }
コード例 #6
0
 public static byte[] SerializeToBytes(PlayerLifeStory.DeathInfo instance)
 {
     byte[] array;
     using (MemoryStream memoryStream = new MemoryStream())
     {
         PlayerLifeStory.DeathInfo.Serialize(memoryStream, instance);
         array = memoryStream.ToArray();
     }
     return(array);
 }
コード例 #7
0
 public static void ResetToPool(PlayerLifeStory.DeathInfo instance)
 {
     if (!instance.ShouldPool)
     {
         return;
     }
     instance.attackerName    = string.Empty;
     instance.attackerSteamID = (ulong)0;
     instance.hitBone         = string.Empty;
     instance.inflictorName   = string.Empty;
     instance.lastDamageType  = 0;
     Pool.Free <PlayerLifeStory.DeathInfo>(ref instance);
 }
コード例 #8
0
 public static PlayerLifeStory.DeathInfo Deserialize(Stream stream, PlayerLifeStory.DeathInfo instance, bool isDelta)
 {
     while (true)
     {
         int num = stream.ReadByte();
         if (num == -1)
         {
             break;
         }
         if (num <= 16)
         {
             if (num == 10)
             {
                 instance.attackerName = ProtocolParser.ReadString(stream);
                 continue;
             }
             else if (num == 16)
             {
                 instance.attackerSteamID = ProtocolParser.ReadUInt64(stream);
                 continue;
             }
         }
         else if (num == 26)
         {
             instance.hitBone = ProtocolParser.ReadString(stream);
             continue;
         }
         else if (num == 34)
         {
             instance.inflictorName = ProtocolParser.ReadString(stream);
             continue;
         }
         else if (num == 40)
         {
             instance.lastDamageType = (int)ProtocolParser.ReadUInt64(stream);
             continue;
         }
         Key key = ProtocolParser.ReadKey((byte)num, stream);
         if (key.Field == 0)
         {
             throw new ProtocolBufferException("Invalid field id: 0, something went wrong in the stream");
         }
         ProtocolParser.SkipKey(stream, key);
     }
     return(instance);
 }
コード例 #9
0
 public static void SerializeLengthDelimited(Stream stream, PlayerLifeStory.DeathInfo instance)
 {
     byte[] bytes = PlayerLifeStory.DeathInfo.SerializeToBytes(instance);
     ProtocolParser.WriteUInt32(stream, (uint)bytes.Length);
     stream.Write(bytes, 0, (int)bytes.Length);
 }
コード例 #10
0
            public static PlayerLifeStory.DeathInfo DeserializeLengthDelimited(Stream stream, PlayerLifeStory.DeathInfo instance, bool isDelta)
            {
                long position = (long)ProtocolParser.ReadUInt32(stream);

                position += stream.Position;
                while (stream.Position < position)
                {
                    int num = stream.ReadByte();
                    if (num == -1)
                    {
                        throw new EndOfStreamException();
                    }
                    if (num <= 16)
                    {
                        if (num == 10)
                        {
                            instance.attackerName = ProtocolParser.ReadString(stream);
                            continue;
                        }
                        else if (num == 16)
                        {
                            instance.attackerSteamID = ProtocolParser.ReadUInt64(stream);
                            continue;
                        }
                    }
                    else if (num == 26)
                    {
                        instance.hitBone = ProtocolParser.ReadString(stream);
                        continue;
                    }
                    else if (num == 34)
                    {
                        instance.inflictorName = ProtocolParser.ReadString(stream);
                        continue;
                    }
                    else if (num == 40)
                    {
                        instance.lastDamageType = (int)ProtocolParser.ReadUInt64(stream);
                        continue;
                    }
                    Key key = ProtocolParser.ReadKey((byte)num, stream);
                    if (key.Field == 0)
                    {
                        throw new ProtocolBufferException("Invalid field id: 0, something went wrong in the stream");
                    }
                    ProtocolParser.SkipKey(stream, key);
                }
                if (stream.Position != position)
                {
                    throw new ProtocolBufferException("Read past max limit");
                }
                return(instance);
            }
コード例 #11
0
 public static PlayerLifeStory.DeathInfo DeserializeLengthDelimited(Stream stream)
 {
     PlayerLifeStory.DeathInfo deathInfo = Pool.Get <PlayerLifeStory.DeathInfo>();
     PlayerLifeStory.DeathInfo.DeserializeLengthDelimited(stream, deathInfo, false);
     return(deathInfo);
 }
コード例 #12
0
 public static PlayerLifeStory.DeathInfo DeserializeLength(Stream stream, int length)
 {
     PlayerLifeStory.DeathInfo deathInfo = Pool.Get <PlayerLifeStory.DeathInfo>();
     PlayerLifeStory.DeathInfo.DeserializeLength(stream, length, deathInfo, false);
     return(deathInfo);
 }
コード例 #13
0
 public PlayerLifeStory.DeathInfo Copy()
 {
     PlayerLifeStory.DeathInfo deathInfo = Pool.Get <PlayerLifeStory.DeathInfo>();
     this.CopyTo(deathInfo);
     return(deathInfo);
 }