Exemplo n.º 1
0
        public PakEntry(UE_Reader reader, PakIndex index)
        {
            Index    = index;
            Filename = reader.ReadString();
            long start_position = reader.BaseStream.Position;

            Position = reader.ReadInt64();
            if (Position < 0)
            {
                reader.BaseStream.Position += 0x2A;
                HeaderSize = reader.BaseStream.Position - start_position;
                return;
            }
            Size                    = reader.ReadInt64();
            UncompressedSize        = reader.ReadInt64();
            CompressionMethodIndex  = reader.ReadByte();
            Hash                    = reader.ReadBytes(20);
            PakCompressedBlockCount = reader.ReadInt32();
            Blocks                  = new PakCompressedBlock[PakCompressedBlockCount];
            for (int i = 0; i < Blocks.Length; i++)
            {
                Blocks[i] = new PakCompressedBlock(reader);
            }
            Encrypted = reader.ReadByte() > 0; // need UE Viewer source reference
            if (PakCompressedBlockCount > 0)
            {
                CompressionBlockSize = reader.ReadInt32();
            }
            HeaderSize = reader.BaseStream.Position - start_position;
        }
Exemplo n.º 2
0
 public PakIndex(UE_Reader reader, PakFile pak)
 {
     Pak           = pak;
     MountPoint    = reader.ReadString();
     PakEntryCount = reader.ReadInt32();
     Entries       = new PakEntry[PakEntryCount];
     for (int i = 0; i < Entries.Length; i++)
     {
         Entries[i] = new PakEntry(reader, this);
     }
 }
Exemplo n.º 3
0
 public PakInfo(UE_Reader reader, PakFile pak)
 {
     Pak = pak;
     EncryptionKeyGuid  = reader.ReadBytes(16);
     EncryptedIndex     = reader.ReadByte() > 0; // need UE Viewer source reference
     Magic              = reader.ReadUInt32();
     Version            = reader.ReadInt32();
     IndexOffset        = reader.ReadInt64();
     IndexSize          = reader.ReadInt64();
     IndexHash          = reader.ReadBytes(20);
     CompressionMethods = new string[4];
     for (int i = 0; i < CompressionMethods.Length; i++)
     {
         CompressionMethods[i] = GetString(reader.ReadBytes(32));
     }
 }