예제 #1
0
        //uint64 Reserved6[6] = { 0 };

        public FIoStoreTocHeader(BinaryReader reader)
        {
            TocMagic = reader.ReadBytes(16);

            if (!TOC_MAGIC.SequenceEqual(TocMagic))
            {
                throw new FileLoadException("Invalid utoc magic");
            }

            Version       = (EIoStoreTocVersion)reader.ReadByte();
            Reserved0     = reader.ReadByte();
            Reserved1     = reader.ReadUInt16();
            TocHeaderSize = reader.ReadUInt32();
            TocEntryCount = reader.ReadUInt32();
            TocCompressedBlockEntryCount = reader.ReadUInt32();
            TocCompressedBlockEntrySize  = reader.ReadUInt32();
            CompressionMethodNameCount   = reader.ReadUInt32();
            CompressionMethodNameLength  = reader.ReadUInt32();
            CompressionBlockSize         = reader.ReadUInt32();
            DirectoryIndexSize           = reader.ReadUInt32();
            PartitionCount    = reader.ReadUInt32();
            ContainerId       = new FIoContainerId(reader);
            EncryptionKeyGuid = new FGuid(reader);
            ContainerFlags    = (EIoContainerFlags)reader.ReadByte();
            Reserved3         = reader.ReadByte();
            Reserved4         = reader.ReadUInt16();
            Reserved5         = reader.ReadUInt32();
            PartitionSize     = reader.ReadUInt64();
        }
예제 #2
0
 public FIoStoreTocHeader(FArchive Ar)
 {
     TocMagic = Ar.ReadBytes(16);
     if (!TOC_MAGIC.SequenceEqual(TocMagic))
     {
         throw new ParserException(Ar, "Invalid utoc magic");
     }
     Version       = Ar.Read <EIoStoreTocVersion>();
     _reserved0    = Ar.Read <byte>();
     _reserved1    = Ar.Read <ushort>();
     TocHeaderSize = Ar.Read <uint>();
     TocEntryCount = Ar.Read <uint>();
     TocCompressedBlockEntryCount = Ar.Read <uint>();
     TocCompressedBlockEntrySize  = Ar.Read <uint>();
     CompressionMethodNameCount   = Ar.Read <uint>();
     CompressionMethodNameLength  = Ar.Read <uint>();
     CompressionBlockSize         = Ar.Read <uint>();
     DirectoryIndexSize           = Ar.Read <uint>();
     PartitionCount    = Ar.Read <uint>();
     ContainerId       = Ar.Read <FIoContainerId>();
     EncryptionKeyGuid = Ar.Read <FGuid>();
     ContainerFlags    = Ar.Read <EIoContainerFlags>();
     _reserved3        = Ar.Read <byte>();
     _reserved4        = Ar.Read <ushort>();
     _reserved5        = Ar.Read <uint>();
     PartitionSize     = Ar.Read <ulong>();
     _reserved6        = Ar.ReadArray <ulong>(6);
 }