// Token: 0x060010CC RID: 4300 RVA: 0x0001744C File Offset: 0x0001564C
        public static GameRoomData Deserialize(Stream bytes)
        {
            int          num          = Int32Proxy.Deserialize(bytes);
            GameRoomData gameRoomData = new GameRoomData();

            gameRoomData.ConnectedPlayers = Int32Proxy.Deserialize(bytes);
            gameRoomData.GameFlags        = Int32Proxy.Deserialize(bytes);
            gameRoomData.GameMode         = EnumProxy <GameModeType> .Deserialize(bytes);

            if ((num & 1) != 0)
            {
                gameRoomData.Guid = StringProxy.Deserialize(bytes);
            }
            gameRoomData.IsPasswordProtected = BooleanProxy.Deserialize(bytes);
            gameRoomData.IsPermanentGame     = BooleanProxy.Deserialize(bytes);
            gameRoomData.KillLimit           = Int32Proxy.Deserialize(bytes);
            gameRoomData.LevelMax            = ByteProxy.Deserialize(bytes);
            gameRoomData.LevelMin            = ByteProxy.Deserialize(bytes);
            gameRoomData.MapID = Int32Proxy.Deserialize(bytes);
            if ((num & 2) != 0)
            {
                gameRoomData.Name = StringProxy.Deserialize(bytes);
            }
            gameRoomData.Number      = Int32Proxy.Deserialize(bytes);
            gameRoomData.PlayerLimit = Int32Proxy.Deserialize(bytes);
            if ((num & 4) != 0)
            {
                gameRoomData.Server = ConnectionAddressProxy.Deserialize(bytes);
            }
            gameRoomData.TimeLimit = Int32Proxy.Deserialize(bytes);
            return(gameRoomData);
        }
        // Token: 0x060010C8 RID: 4296 RVA: 0x000171EC File Offset: 0x000153EC
        public static CommActorInfo Deserialize(Stream bytes)
        {
            int           num           = Int32Proxy.Deserialize(bytes);
            CommActorInfo commActorInfo = new CommActorInfo();

            commActorInfo.AccessLevel = EnumProxy <MemberAccessLevel> .Deserialize(bytes);

            commActorInfo.Channel = EnumProxy <ChannelType> .Deserialize(bytes);

            if ((num & 1) != 0)
            {
                commActorInfo.ClanTag = StringProxy.Deserialize(bytes);
            }
            commActorInfo.Cmid = Int32Proxy.Deserialize(bytes);
            if ((num & 2) != 0)
            {
                commActorInfo.CurrentRoom = GameRoomProxy.Deserialize(bytes);
            }
            commActorInfo.ModerationFlag = ByteProxy.Deserialize(bytes);
            if ((num & 4) != 0)
            {
                commActorInfo.ModInformation = StringProxy.Deserialize(bytes);
            }
            if ((num & 8) != 0)
            {
                commActorInfo.PlayerName = StringProxy.Deserialize(bytes);
            }
            return(commActorInfo);
        }
        // Token: 0x060010C2 RID: 4290 RVA: 0x00016D94 File Offset: 0x00014F94
        public static GameActorInfo Deserialize(Stream bytes)
        {
            int           num           = Int32Proxy.Deserialize(bytes);
            GameActorInfo gameActorInfo = new GameActorInfo();

            gameActorInfo.AccessLevel = EnumProxy <MemberAccessLevel> .Deserialize(bytes);

            gameActorInfo.ArmorPointCapacity = ByteProxy.Deserialize(bytes);
            gameActorInfo.ArmorPoints        = ByteProxy.Deserialize(bytes);
            gameActorInfo.Channel            = EnumProxy <ChannelType> .Deserialize(bytes);

            if ((num & 1) != 0)
            {
                gameActorInfo.ClanTag = StringProxy.Deserialize(bytes);
            }
            gameActorInfo.Cmid = Int32Proxy.Deserialize(bytes);
            gameActorInfo.CurrentFiringMode = EnumProxy <FireMode> .Deserialize(bytes);

            gameActorInfo.CurrentWeaponSlot = ByteProxy.Deserialize(bytes);
            gameActorInfo.Deaths            = Int16Proxy.Deserialize(bytes);
            if ((num & 2) != 0)
            {
                gameActorInfo.FunctionalItems = ListProxy <int> .Deserialize(bytes, new ListProxy <int> .Deserializer <int>(Int32Proxy.Deserialize));
            }
            if ((num & 4) != 0)
            {
                gameActorInfo.Gear = ListProxy <int> .Deserialize(bytes, new ListProxy <int> .Deserializer <int>(Int32Proxy.Deserialize));
            }
            gameActorInfo.Health   = Int16Proxy.Deserialize(bytes);
            gameActorInfo.Kills    = Int16Proxy.Deserialize(bytes);
            gameActorInfo.Level    = Int32Proxy.Deserialize(bytes);
            gameActorInfo.Ping     = UInt16Proxy.Deserialize(bytes);
            gameActorInfo.PlayerId = ByteProxy.Deserialize(bytes);
            if ((num & 8) != 0)
            {
                gameActorInfo.PlayerName = StringProxy.Deserialize(bytes);
            }
            gameActorInfo.PlayerState = EnumProxy <PlayerStates> .Deserialize(bytes);

            if ((num & 16) != 0)
            {
                gameActorInfo.QuickItems = ListProxy <int> .Deserialize(bytes, new ListProxy <int> .Deserializer <int>(Int32Proxy.Deserialize));
            }
            gameActorInfo.Rank      = ByteProxy.Deserialize(bytes);
            gameActorInfo.SkinColor = ColorProxy.Deserialize(bytes);
            gameActorInfo.StepSound = EnumProxy <SurfaceType> .Deserialize(bytes);

            gameActorInfo.TeamID = EnumProxy <TeamID> .Deserialize(bytes);

            if ((num & 32) != 0)
            {
                gameActorInfo.Weapons = ListProxy <int> .Deserialize(bytes, new ListProxy <int> .Deserializer <int>(Int32Proxy.Deserialize));
            }
            return(gameActorInfo);
        }
예제 #4
0
 // Token: 0x060010C4 RID: 4292 RVA: 0x00016FC4 File Offset: 0x000151C4
 public static PlayerMovement Deserialize(Stream bytes)
 {
     return(new PlayerMovement
     {
         HorizontalRotation = ByteProxy.Deserialize(bytes),
         KeyState = ByteProxy.Deserialize(bytes),
         MovementState = ByteProxy.Deserialize(bytes),
         Number = ByteProxy.Deserialize(bytes),
         Position = ShortVector3Proxy.Deserialize(bytes),
         Velocity = ShortVector3Proxy.Deserialize(bytes),
         VerticalRotation = ByteProxy.Deserialize(bytes)
     });
 }
예제 #5
0
        // Token: 0x060010BE RID: 4286 RVA: 0x00016914 File Offset: 0x00014B14
        public static DamageEvent Deserialize(Stream bytes)
        {
            int         num         = Int32Proxy.Deserialize(bytes);
            DamageEvent damageEvent = new DamageEvent();

            damageEvent.BodyPartFlag = ByteProxy.Deserialize(bytes);
            if ((num & 1) != 0)
            {
                damageEvent.Damage = DictionaryProxy <byte, byte> .Deserialize(bytes, new DictionaryProxy <byte, byte> .Deserializer <byte>(ByteProxy.Deserialize), new DictionaryProxy <byte, byte> .Deserializer <byte>(ByteProxy.Deserialize));
            }
            damageEvent.DamageEffectFlag = Int32Proxy.Deserialize(bytes);
            damageEvent.DamgeEffectValue = SingleProxy.Deserialize(bytes);
            return(damageEvent);
        }
예제 #6
0
 // Token: 0x060010C3 RID: 4291 RVA: 0x00016F34 File Offset: 0x00015134
 public static void Serialize(Stream stream, PlayerMovement instance)
 {
     using (MemoryStream memoryStream = new MemoryStream())
     {
         ByteProxy.Serialize(memoryStream, instance.HorizontalRotation);
         ByteProxy.Serialize(memoryStream, instance.KeyState);
         ByteProxy.Serialize(memoryStream, instance.MovementState);
         ByteProxy.Serialize(memoryStream, instance.Number);
         ShortVector3Proxy.Serialize(memoryStream, instance.Position);
         ShortVector3Proxy.Serialize(memoryStream, instance.Velocity);
         ByteProxy.Serialize(memoryStream, instance.VerticalRotation);
         memoryStream.WriteTo(stream);
     }
 }
        // Token: 0x060010C7 RID: 4295 RVA: 0x000170F4 File Offset: 0x000152F4
        public static void Serialize(Stream stream, CommActorInfo instance)
        {
            int num = 0;

            using (MemoryStream memoryStream = new MemoryStream())
            {
                EnumProxy <MemberAccessLevel> .Serialize(memoryStream, instance.AccessLevel);

                EnumProxy <ChannelType> .Serialize(memoryStream, instance.Channel);

                if (instance.ClanTag != null)
                {
                    StringProxy.Serialize(memoryStream, instance.ClanTag);
                }
                else
                {
                    num |= 1;
                }
                Int32Proxy.Serialize(memoryStream, instance.Cmid);
                if (instance.CurrentRoom != null)
                {
                    GameRoomProxy.Serialize(memoryStream, instance.CurrentRoom);
                }
                else
                {
                    num |= 2;
                }
                ByteProxy.Serialize(memoryStream, instance.ModerationFlag);
                if (instance.ModInformation != null)
                {
                    StringProxy.Serialize(memoryStream, instance.ModInformation);
                }
                else
                {
                    num |= 4;
                }
                if (instance.PlayerName != null)
                {
                    StringProxy.Serialize(memoryStream, instance.PlayerName);
                }
                else
                {
                    num |= 8;
                }
                Int32Proxy.Serialize(stream, ~num);
                memoryStream.WriteTo(stream);
            }
        }
        // Token: 0x060010CB RID: 4299 RVA: 0x00017308 File Offset: 0x00015508
        public static void Serialize(Stream stream, GameRoomData instance)
        {
            int num = 0;

            using (MemoryStream memoryStream = new MemoryStream())
            {
                Int32Proxy.Serialize(memoryStream, instance.ConnectedPlayers);
                Int32Proxy.Serialize(memoryStream, instance.GameFlags);
                EnumProxy <GameModeType> .Serialize(memoryStream, instance.GameMode);

                if (instance.Guid != null)
                {
                    StringProxy.Serialize(memoryStream, instance.Guid);
                }
                else
                {
                    num |= 1;
                }
                BooleanProxy.Serialize(memoryStream, instance.IsPasswordProtected);
                BooleanProxy.Serialize(memoryStream, instance.IsPermanentGame);
                Int32Proxy.Serialize(memoryStream, instance.KillLimit);
                ByteProxy.Serialize(memoryStream, instance.LevelMax);
                ByteProxy.Serialize(memoryStream, instance.LevelMin);
                Int32Proxy.Serialize(memoryStream, instance.MapID);
                if (instance.Name != null)
                {
                    StringProxy.Serialize(memoryStream, instance.Name);
                }
                else
                {
                    num |= 2;
                }
                Int32Proxy.Serialize(memoryStream, instance.Number);
                Int32Proxy.Serialize(memoryStream, instance.PlayerLimit);
                if (instance.Server != null)
                {
                    ConnectionAddressProxy.Serialize(memoryStream, instance.Server);
                }
                else
                {
                    num |= 4;
                }
                Int32Proxy.Serialize(memoryStream, instance.TimeLimit);
                Int32Proxy.Serialize(stream, ~num);
                memoryStream.WriteTo(stream);
            }
        }
예제 #9
0
        // Token: 0x060010AE RID: 4270 RVA: 0x000158F4 File Offset: 0x00013AF4
        public static CommActorInfoDelta Deserialize(Stream bytes)
        {
            int  num = Int32Proxy.Deserialize(bytes);
            byte id  = ByteProxy.Deserialize(bytes);
            CommActorInfoDelta commActorInfoDelta = new CommActorInfoDelta();

            commActorInfoDelta.Id = id;
            if (num != 0)
            {
                if ((num & 1) != 0)
                {
                    commActorInfoDelta.Changes[CommActorInfoDelta.Keys.AccessLevel] = EnumProxy <MemberAccessLevel> .Deserialize(bytes);
                }
                if ((num & 2) != 0)
                {
                    commActorInfoDelta.Changes[CommActorInfoDelta.Keys.Channel] = EnumProxy <ChannelType> .Deserialize(bytes);
                }
                if ((num & 4) != 0)
                {
                    commActorInfoDelta.Changes[CommActorInfoDelta.Keys.ClanTag] = StringProxy.Deserialize(bytes);
                }
                if ((num & 8) != 0)
                {
                    commActorInfoDelta.Changes[CommActorInfoDelta.Keys.Cmid] = Int32Proxy.Deserialize(bytes);
                }
                if ((num & 16) != 0)
                {
                    commActorInfoDelta.Changes[CommActorInfoDelta.Keys.CurrentRoom] = GameRoomProxy.Deserialize(bytes);
                }
                if ((num & 32) != 0)
                {
                    commActorInfoDelta.Changes[CommActorInfoDelta.Keys.ModerationFlag] = ByteProxy.Deserialize(bytes);
                }
                if ((num & 64) != 0)
                {
                    commActorInfoDelta.Changes[CommActorInfoDelta.Keys.ModInformation] = StringProxy.Deserialize(bytes);
                }
                if ((num & 128) != 0)
                {
                    commActorInfoDelta.Changes[CommActorInfoDelta.Keys.PlayerName] = StringProxy.Deserialize(bytes);
                }
            }
            return(commActorInfoDelta);
        }
예제 #10
0
 // Token: 0x060010AD RID: 4269 RVA: 0x00015794 File Offset: 0x00013994
 public static void Serialize(Stream stream, CommActorInfoDelta instance)
 {
     if (instance != null)
     {
         Int32Proxy.Serialize(stream, instance.DeltaMask);
         ByteProxy.Serialize(stream, instance.Id);
         if ((instance.DeltaMask & 1) != 0)
         {
             EnumProxy <MemberAccessLevel> .Serialize(stream, (MemberAccessLevel)((int)instance.Changes[CommActorInfoDelta.Keys.AccessLevel]));
         }
         if ((instance.DeltaMask & 2) != 0)
         {
             EnumProxy <ChannelType> .Serialize(stream, (ChannelType)((int)instance.Changes[CommActorInfoDelta.Keys.Channel]));
         }
         if ((instance.DeltaMask & 4) != 0)
         {
             StringProxy.Serialize(stream, (string)instance.Changes[CommActorInfoDelta.Keys.ClanTag]);
         }
         if ((instance.DeltaMask & 8) != 0)
         {
             Int32Proxy.Serialize(stream, (int)instance.Changes[CommActorInfoDelta.Keys.Cmid]);
         }
         if ((instance.DeltaMask & 16) != 0)
         {
             GameRoomProxy.Serialize(stream, (GameRoom)instance.Changes[CommActorInfoDelta.Keys.CurrentRoom]);
         }
         if ((instance.DeltaMask & 32) != 0)
         {
             ByteProxy.Serialize(stream, (byte)instance.Changes[CommActorInfoDelta.Keys.ModerationFlag]);
         }
         if ((instance.DeltaMask & 64) != 0)
         {
             StringProxy.Serialize(stream, (string)instance.Changes[CommActorInfoDelta.Keys.ModInformation]);
         }
         if ((instance.DeltaMask & 128) != 0)
         {
             StringProxy.Serialize(stream, (string)instance.Changes[CommActorInfoDelta.Keys.PlayerName]);
         }
     }
     else
     {
         Int32Proxy.Serialize(stream, 0);
     }
 }
예제 #11
0
        // Token: 0x060010BD RID: 4285 RVA: 0x00016870 File Offset: 0x00014A70
        public static void Serialize(Stream stream, DamageEvent instance)
        {
            int num = 0;

            using (MemoryStream memoryStream = new MemoryStream())
            {
                ByteProxy.Serialize(memoryStream, instance.BodyPartFlag);
                if (instance.Damage != null)
                {
                    DictionaryProxy <byte, byte> .Serialize(memoryStream, instance.Damage, new DictionaryProxy <byte, byte> .Serializer <byte>(ByteProxy.Serialize), new DictionaryProxy <byte, byte> .Serializer <byte>(ByteProxy.Serialize));
                }
                else
                {
                    num |= 1;
                }
                Int32Proxy.Serialize(memoryStream, instance.DamageEffectFlag);
                SingleProxy.Serialize(memoryStream, instance.DamgeEffectValue);
                Int32Proxy.Serialize(stream, ~num);
                memoryStream.WriteTo(stream);
            }
        }
예제 #12
0
 // Token: 0x060010B5 RID: 4277 RVA: 0x00015D0C File Offset: 0x00013F0C
 public static void Serialize(Stream stream, GameActorInfoDelta instance)
 {
     if (instance != null)
     {
         Int32Proxy.Serialize(stream, instance.DeltaMask);
         ByteProxy.Serialize(stream, instance.Id);
         if ((instance.DeltaMask & 1) != 0)
         {
             EnumProxy <MemberAccessLevel> .Serialize(stream, (MemberAccessLevel)((int)instance.Changes[GameActorInfoDelta.Keys.AccessLevel]));
         }
         if ((instance.DeltaMask & 2) != 0)
         {
             ByteProxy.Serialize(stream, (byte)instance.Changes[GameActorInfoDelta.Keys.ArmorPointCapacity]);
         }
         if ((instance.DeltaMask & 4) != 0)
         {
             ByteProxy.Serialize(stream, (byte)instance.Changes[GameActorInfoDelta.Keys.ArmorPoints]);
         }
         if ((instance.DeltaMask & 8) != 0)
         {
             EnumProxy <ChannelType> .Serialize(stream, (ChannelType)((int)instance.Changes[GameActorInfoDelta.Keys.Channel]));
         }
         if ((instance.DeltaMask & 16) != 0)
         {
             StringProxy.Serialize(stream, (string)instance.Changes[GameActorInfoDelta.Keys.ClanTag]);
         }
         if ((instance.DeltaMask & 32) != 0)
         {
             Int32Proxy.Serialize(stream, (int)instance.Changes[GameActorInfoDelta.Keys.Cmid]);
         }
         if ((instance.DeltaMask & 64) != 0)
         {
             EnumProxy <FireMode> .Serialize(stream, (FireMode)((int)instance.Changes[GameActorInfoDelta.Keys.CurrentFiringMode]));
         }
         if ((instance.DeltaMask & 128) != 0)
         {
             ByteProxy.Serialize(stream, (byte)instance.Changes[GameActorInfoDelta.Keys.CurrentWeaponSlot]);
         }
         if ((instance.DeltaMask & 256) != 0)
         {
             Int16Proxy.Serialize(stream, (short)instance.Changes[GameActorInfoDelta.Keys.Deaths]);
         }
         if ((instance.DeltaMask & 512) != 0)
         {
             ListProxy <int> .Serialize(stream, (List <int>) instance.Changes[GameActorInfoDelta.Keys.FunctionalItems], new ListProxy <int> .Serializer <int>(Int32Proxy.Serialize));
         }
         if ((instance.DeltaMask & 1024) != 0)
         {
             ListProxy <int> .Serialize(stream, (List <int>) instance.Changes[GameActorInfoDelta.Keys.Gear], new ListProxy <int> .Serializer <int>(Int32Proxy.Serialize));
         }
         if ((instance.DeltaMask & 2048) != 0)
         {
             Int16Proxy.Serialize(stream, (short)instance.Changes[GameActorInfoDelta.Keys.Health]);
         }
         if ((instance.DeltaMask & 4096) != 0)
         {
             Int16Proxy.Serialize(stream, (short)instance.Changes[GameActorInfoDelta.Keys.Kills]);
         }
         if ((instance.DeltaMask & 8192) != 0)
         {
             Int32Proxy.Serialize(stream, (int)instance.Changes[GameActorInfoDelta.Keys.Level]);
         }
         if ((instance.DeltaMask & 16384) != 0)
         {
             UInt16Proxy.Serialize(stream, (ushort)instance.Changes[GameActorInfoDelta.Keys.Ping]);
         }
         if ((instance.DeltaMask & 32768) != 0)
         {
             ByteProxy.Serialize(stream, (byte)instance.Changes[GameActorInfoDelta.Keys.PlayerId]);
         }
         if ((instance.DeltaMask & 65536) != 0)
         {
             StringProxy.Serialize(stream, (string)instance.Changes[GameActorInfoDelta.Keys.PlayerName]);
         }
         if ((instance.DeltaMask & 131072) != 0)
         {
             EnumProxy <PlayerStates> .Serialize(stream, (PlayerStates)((byte)instance.Changes[GameActorInfoDelta.Keys.PlayerState]));
         }
         if ((instance.DeltaMask & 262144) != 0)
         {
             ListProxy <int> .Serialize(stream, (List <int>) instance.Changes[GameActorInfoDelta.Keys.QuickItems], new ListProxy <int> .Serializer <int>(Int32Proxy.Serialize));
         }
         if ((instance.DeltaMask & 524288) != 0)
         {
             ByteProxy.Serialize(stream, (byte)instance.Changes[GameActorInfoDelta.Keys.Rank]);
         }
         if ((instance.DeltaMask & 1048576) != 0)
         {
             ColorProxy.Serialize(stream, (Color)instance.Changes[GameActorInfoDelta.Keys.SkinColor]);
         }
         if ((instance.DeltaMask & 2097152) != 0)
         {
             EnumProxy <SurfaceType> .Serialize(stream, (SurfaceType)((int)instance.Changes[GameActorInfoDelta.Keys.StepSound]));
         }
         if ((instance.DeltaMask & 4194304) != 0)
         {
             EnumProxy <TeamID> .Serialize(stream, (TeamID)((int)instance.Changes[GameActorInfoDelta.Keys.TeamID]));
         }
         if ((instance.DeltaMask & 8388608) != 0)
         {
             ListProxy <int> .Serialize(stream, (List <int>) instance.Changes[GameActorInfoDelta.Keys.Weapons], new ListProxy <int> .Serializer <int>(Int32Proxy.Serialize));
         }
     }
     else
     {
         Int32Proxy.Serialize(stream, 0);
     }
 }
예제 #13
0
        // Token: 0x060010B6 RID: 4278 RVA: 0x0001612C File Offset: 0x0001432C
        public static GameActorInfoDelta Deserialize(Stream bytes)
        {
            int  num = Int32Proxy.Deserialize(bytes);
            byte id  = ByteProxy.Deserialize(bytes);
            GameActorInfoDelta gameActorInfoDelta = new GameActorInfoDelta();

            gameActorInfoDelta.Id = id;
            if (num != 0)
            {
                if ((num & 1) != 0)
                {
                    gameActorInfoDelta.Changes[GameActorInfoDelta.Keys.AccessLevel] = EnumProxy <MemberAccessLevel> .Deserialize(bytes);
                }
                if ((num & 2) != 0)
                {
                    gameActorInfoDelta.Changes[GameActorInfoDelta.Keys.ArmorPointCapacity] = ByteProxy.Deserialize(bytes);
                }
                if ((num & 4) != 0)
                {
                    gameActorInfoDelta.Changes[GameActorInfoDelta.Keys.ArmorPoints] = ByteProxy.Deserialize(bytes);
                }
                if ((num & 8) != 0)
                {
                    gameActorInfoDelta.Changes[GameActorInfoDelta.Keys.Channel] = EnumProxy <ChannelType> .Deserialize(bytes);
                }
                if ((num & 16) != 0)
                {
                    gameActorInfoDelta.Changes[GameActorInfoDelta.Keys.ClanTag] = StringProxy.Deserialize(bytes);
                }
                if ((num & 32) != 0)
                {
                    gameActorInfoDelta.Changes[GameActorInfoDelta.Keys.Cmid] = Int32Proxy.Deserialize(bytes);
                }
                if ((num & 64) != 0)
                {
                    gameActorInfoDelta.Changes[GameActorInfoDelta.Keys.CurrentFiringMode] = EnumProxy <FireMode> .Deserialize(bytes);
                }
                if ((num & 128) != 0)
                {
                    gameActorInfoDelta.Changes[GameActorInfoDelta.Keys.CurrentWeaponSlot] = ByteProxy.Deserialize(bytes);
                }
                if ((num & 256) != 0)
                {
                    gameActorInfoDelta.Changes[GameActorInfoDelta.Keys.Deaths] = Int16Proxy.Deserialize(bytes);
                }
                if ((num & 512) != 0)
                {
                    gameActorInfoDelta.Changes[GameActorInfoDelta.Keys.FunctionalItems] = ListProxy <int> .Deserialize(bytes, new ListProxy <int> .Deserializer <int>(Int32Proxy.Deserialize));
                }
                if ((num & 1024) != 0)
                {
                    gameActorInfoDelta.Changes[GameActorInfoDelta.Keys.Gear] = ListProxy <int> .Deserialize(bytes, new ListProxy <int> .Deserializer <int>(Int32Proxy.Deserialize));
                }
                if ((num & 2048) != 0)
                {
                    gameActorInfoDelta.Changes[GameActorInfoDelta.Keys.Health] = Int16Proxy.Deserialize(bytes);
                }
                if ((num & 4096) != 0)
                {
                    gameActorInfoDelta.Changes[GameActorInfoDelta.Keys.Kills] = Int16Proxy.Deserialize(bytes);
                }
                if ((num & 8192) != 0)
                {
                    gameActorInfoDelta.Changes[GameActorInfoDelta.Keys.Level] = Int32Proxy.Deserialize(bytes);
                }
                if ((num & 16384) != 0)
                {
                    gameActorInfoDelta.Changes[GameActorInfoDelta.Keys.Ping] = UInt16Proxy.Deserialize(bytes);
                }
                if ((num & 32768) != 0)
                {
                    gameActorInfoDelta.Changes[GameActorInfoDelta.Keys.PlayerId] = ByteProxy.Deserialize(bytes);
                }
                if ((num & 65536) != 0)
                {
                    gameActorInfoDelta.Changes[GameActorInfoDelta.Keys.PlayerName] = StringProxy.Deserialize(bytes);
                }
                if ((num & 131072) != 0)
                {
                    gameActorInfoDelta.Changes[GameActorInfoDelta.Keys.PlayerState] = EnumProxy <PlayerStates> .Deserialize(bytes);
                }
                if ((num & 262144) != 0)
                {
                    gameActorInfoDelta.Changes[GameActorInfoDelta.Keys.QuickItems] = ListProxy <int> .Deserialize(bytes, new ListProxy <int> .Deserializer <int>(Int32Proxy.Deserialize));
                }
                if ((num & 524288) != 0)
                {
                    gameActorInfoDelta.Changes[GameActorInfoDelta.Keys.Rank] = ByteProxy.Deserialize(bytes);
                }
                if ((num & 1048576) != 0)
                {
                    gameActorInfoDelta.Changes[GameActorInfoDelta.Keys.SkinColor] = ColorProxy.Deserialize(bytes);
                }
                if ((num & 2097152) != 0)
                {
                    gameActorInfoDelta.Changes[GameActorInfoDelta.Keys.StepSound] = EnumProxy <SurfaceType> .Deserialize(bytes);
                }
                if ((num & 4194304) != 0)
                {
                    gameActorInfoDelta.Changes[GameActorInfoDelta.Keys.TeamID] = EnumProxy <TeamID> .Deserialize(bytes);
                }
                if ((num & 8388608) != 0)
                {
                    gameActorInfoDelta.Changes[GameActorInfoDelta.Keys.Weapons] = ListProxy <int> .Deserialize(bytes, new ListProxy <int> .Deserializer <int>(Int32Proxy.Deserialize));
                }
            }
            return(gameActorInfoDelta);
        }
        // Token: 0x060010C1 RID: 4289 RVA: 0x00016B78 File Offset: 0x00014D78
        public static void Serialize(Stream stream, GameActorInfo instance)
        {
            int num = 0;

            using (MemoryStream memoryStream = new MemoryStream())
            {
                EnumProxy <MemberAccessLevel> .Serialize(memoryStream, instance.AccessLevel);

                ByteProxy.Serialize(memoryStream, instance.ArmorPointCapacity);
                ByteProxy.Serialize(memoryStream, instance.ArmorPoints);
                EnumProxy <ChannelType> .Serialize(memoryStream, instance.Channel);

                if (instance.ClanTag != null)
                {
                    StringProxy.Serialize(memoryStream, instance.ClanTag);
                }
                else
                {
                    num |= 1;
                }
                Int32Proxy.Serialize(memoryStream, instance.Cmid);
                EnumProxy <FireMode> .Serialize(memoryStream, instance.CurrentFiringMode);

                ByteProxy.Serialize(memoryStream, instance.CurrentWeaponSlot);
                Int16Proxy.Serialize(memoryStream, instance.Deaths);
                if (instance.FunctionalItems != null)
                {
                    ListProxy <int> .Serialize(memoryStream, instance.FunctionalItems, new ListProxy <int> .Serializer <int>(Int32Proxy.Serialize));
                }
                else
                {
                    num |= 2;
                }
                if (instance.Gear != null)
                {
                    ListProxy <int> .Serialize(memoryStream, instance.Gear, new ListProxy <int> .Serializer <int>(Int32Proxy.Serialize));
                }
                else
                {
                    num |= 4;
                }
                Int16Proxy.Serialize(memoryStream, instance.Health);
                Int16Proxy.Serialize(memoryStream, instance.Kills);
                Int32Proxy.Serialize(memoryStream, instance.Level);
                UInt16Proxy.Serialize(memoryStream, instance.Ping);
                ByteProxy.Serialize(memoryStream, instance.PlayerId);
                if (instance.PlayerName != null)
                {
                    StringProxy.Serialize(memoryStream, instance.PlayerName);
                }
                else
                {
                    num |= 8;
                }
                EnumProxy <PlayerStates> .Serialize(memoryStream, instance.PlayerState);

                if (instance.QuickItems != null)
                {
                    ListProxy <int> .Serialize(memoryStream, instance.QuickItems, new ListProxy <int> .Serializer <int>(Int32Proxy.Serialize));
                }
                else
                {
                    num |= 16;
                }
                ByteProxy.Serialize(memoryStream, instance.Rank);
                ColorProxy.Serialize(memoryStream, instance.SkinColor);
                EnumProxy <SurfaceType> .Serialize(memoryStream, instance.StepSound);

                EnumProxy <TeamID> .Serialize(memoryStream, instance.TeamID);

                if (instance.Weapons != null)
                {
                    ListProxy <int> .Serialize(memoryStream, instance.Weapons, new ListProxy <int> .Serializer <int>(Int32Proxy.Serialize));
                }
                else
                {
                    num |= 32;
                }
                Int32Proxy.Serialize(stream, ~num);
                memoryStream.WriteTo(stream);
            }
        }