コード例 #1
0
ファイル: UPKHeader.cs プロジェクト: Martinii89/RLUPKT
        public void Deserialize(BinaryReader Reader)
        {
            Tag = Reader.ReadUInt32();
            if (Tag != PACKAGE_FILE_TAG)
            {
                throw new Exception("Not a valid Unreal Engine package.");
            }

            FileVersion     = Reader.ReadUInt16();
            LicenseeVersion = Reader.ReadUInt16();

            TotalHeaderSize = Reader.ReadInt32();
            FolderName.Deserialize(Reader);
            PackageFlags = Reader.ReadUInt32();

            NameCount  = Reader.ReadInt32();
            NameOffset = Reader.ReadInt32();

            ExportCount  = Reader.ReadInt32();
            ExportOffset = Reader.ReadInt32();

            ImportCount  = Reader.ReadInt32();
            ImportOffset = Reader.ReadInt32();

            DependsOffset = Reader.ReadInt32();

            Unknown1 = Reader.ReadInt32();
            Unknown2 = Reader.ReadInt32();
            Unknown3 = Reader.ReadInt32();
            Unknown4 = Reader.ReadInt32();

            Guid.Deserialize(Reader);

            Generations.Deserialize(Reader);

            EngineVersion = Reader.ReadUInt32();
            CookerVersion = Reader.ReadUInt32();

            CompressionFlags = (ECompressionFlags)(Reader.ReadUInt32());

            CompressedChunks = new TArray <FCompressedChunkInfo>(() => new FCompressedChunkInfo(this));
            CompressedChunks.Deserialize(Reader);

            Unknown5 = Reader.ReadInt32();

            UnknownStringArray.Deserialize(Reader);
            UnknownTypeArray.Deserialize(Reader);

            GarbageSize = Reader.ReadInt32();
            CompressedChunkInfoOffset = Reader.ReadInt32();
            LastBlockSize             = Reader.ReadInt32();
        }