コード例 #1
0
ファイル: Manifest.cs プロジェクト: zr53722/SteamBot
        void Deserialize(DataStream ds)
        {
            Mapping = new List <FileMapping>();

            Magic = ds.ReadUInt32();

            if (Magic != MAGIC)
            {
                throw new InvalidDataException("data is not a valid steam3 manifest: incorrect magic.");
            }

            Version = ds.ReadUInt32();

            DepotID = ds.ReadUInt32();

            ManifestGID  = ds.ReadUInt64();
            CreationTime = Utils.DateTimeFromUnixTime(ds.ReadUInt32());

            AreFileNamesEncrypted = ds.ReadUInt32() != 0;

            TotalUncompressedSize = ds.ReadUInt64();
            TotalCompressedSize   = ds.ReadUInt64();

            ChunkCount = ds.ReadUInt32();

            FileEntryCount  = ds.ReadUInt32();
            FileMappingSize = ds.ReadUInt32();

            EncryptedCRC = ds.ReadUInt32();
            DecryptedCRC = ds.ReadUInt32();

            Flags = ds.ReadUInt32();

            for (uint i = FileMappingSize; i > 0;)
            {
                long start = ds.Position;

                FileMapping mapping = new FileMapping();
                mapping.Deserialize(ds);
                Mapping.Add(mapping);

                i -= (uint)(ds.Position - start);
            }
        }
コード例 #2
0
ファイル: Manifest.cs プロジェクト: zr53722/SteamBot
                internal void Deserialize(DataStream ds)
                {
                    ChunkGID = ds.ReadBytes(20);

                    CRC = ds.ReadBytes(4);

                    Offset = ds.ReadUInt64();

                    DecompressedSize = ds.ReadUInt32();
                    CompressedSize   = ds.ReadUInt32();
                }
コード例 #3
0
ファイル: Manifest.cs プロジェクト: zr53722/SteamBot
            internal void Deserialize(DataStream ds)
            {
                FileName = ds.ReadNullTermString(Encoding.ASCII);

                TotalSize = ds.ReadUInt64();

                Flags = (EDepotFileFlag)ds.ReadUInt32();

                HashFileName = ds.ReadBytes(20);
                HashContent  = ds.ReadBytes(20);

                NumChunks = ds.ReadUInt32();

                Chunks = new Chunk[NumChunks];

                for (int x = 0; x < Chunks.Length; ++x)
                {
                    Chunks[x] = new Chunk();
                    Chunks[x].Deserialize(ds);
                }
            }
コード例 #4
0
        /// <summary>
        /// Deserialize a MicroTime from an input byte array
        /// </summary>
        public static MicroTime Deserialize(byte[] data)
        {
            DataStream ds = new DataStream(data);

            return(new MicroTime(ds.ReadUInt64()));
        }