Пример #1
0
        public List <string> packedItems = new List <string>(); // Display purposes

        public static CBaseQualities read(BinaryReader binaryReader)
        {
            CBaseQualities newObj        = new CBaseQualities();
            var            startPosition = binaryReader.BaseStream.Position;

            newObj.header       = binaryReader.ReadUInt32();
            newObj._weenie_type = (WeenieType)binaryReader.ReadUInt32();
            if ((newObj.header & (uint)BaseQualitiesPackHeader.Packed_IntStats) != 0)
            {
                newObj._intStatsTable = PackableHashTable <STypeInt, int> .read(binaryReader);

                newObj.packedItems.Add(BaseQualitiesPackHeader.Packed_IntStats.ToString());
            }
            if ((newObj.header & (uint)BaseQualitiesPackHeader.Packed_Int64Stats) != 0)
            {
                newObj._int64StatsTable = PackableHashTable <STypeInt64, long> .read(binaryReader);

                newObj.packedItems.Add(BaseQualitiesPackHeader.Packed_Int64Stats.ToString());
            }
            if ((newObj.header & (uint)BaseQualitiesPackHeader.Packed_BoolStats) != 0)
            {
                newObj._boolStatsTable = PackableHashTable <STypeBool, int> .read(binaryReader);

                newObj.packedItems.Add(BaseQualitiesPackHeader.Packed_BoolStats.ToString());
            }
            if ((newObj.header & (uint)BaseQualitiesPackHeader.Packed_FloatStats) != 0)
            {
                newObj._floatStatsTable = PackableHashTable <STypeFloat, double> .read(binaryReader);

                newObj.packedItems.Add(BaseQualitiesPackHeader.Packed_FloatStats.ToString());
            }
            if ((newObj.header & (uint)BaseQualitiesPackHeader.Packed_StringStats) != 0)
            {
                newObj._strStatsTable = PackableHashTable <STypeString, PStringChar> .read(binaryReader);

                newObj.packedItems.Add(BaseQualitiesPackHeader.Packed_StringStats.ToString());
            }
            if ((newObj.header & (uint)BaseQualitiesPackHeader.Packed_DataIDStats) != 0)
            {
                newObj._didStatsTable = PackableHashTable <STypeDID, uint> .read(binaryReader);

                newObj.packedItems.Add(BaseQualitiesPackHeader.Packed_DataIDStats.ToString());
            }
            if ((newObj.header & (uint)BaseQualitiesPackHeader.Packed_IIDStats) != 0)
            {
                newObj._iidStatsTable = PackableHashTable <STypeIID, uint> .read(binaryReader);

                newObj.packedItems.Add(BaseQualitiesPackHeader.Packed_IIDStats.ToString());
            }
            if ((newObj.header & (uint)BaseQualitiesPackHeader.Packed_PositionHashTable) != 0)
            {
                newObj._posStatsTable = PackableHashTable <STypePosition, Position> .read(binaryReader);

                newObj.packedItems.Add(BaseQualitiesPackHeader.Packed_PositionHashTable.ToString());
            }
            newObj.Length = (int)(binaryReader.BaseStream.Position - startPosition);
            return(newObj);
        }