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; }
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)); } }
public PakCompressedBlock(UE_Reader reader) { CompressedStart = reader.ReadInt64(); CompressedEnd = reader.ReadInt64(); }