internal PakEntry(PakArchive sourceArchive) { this.sourceArchive = sourceArchive; FileType = new QbKey(0); HeaderOffset = 0; FileOffsetRelative = 0; FileLength = 0; EmbeddedFilenameKey = new QbKey(0); FileFullNameKey = new QbKey(0); FileShortNameKey = new QbKey(0); Unknown = 0; this._flags = 0; this._embeddedFilename = null; }
internal static PakEntry ParseHeader(EndianBinaryReader br, PakArchive sourceArchive) { var result = new PakEntry(sourceArchive); result.HeaderOffset = (UInt32)br.BaseStream.Position; result.FileType = new QbKey(br.ReadUInt32()); result.FileOffsetRelative = br.ReadUInt32(); result.FileLength = br.ReadUInt32(); result.EmbeddedFilenameKey = new QbKey(br.ReadUInt32()); result.FileFullNameKey = new QbKey(br.ReadUInt32()); result.FileShortNameKey = new QbKey(br.ReadUInt32()); result.Unknown = br.ReadUInt32(); result._flags = (PakEntryFlags)br.ReadUInt32(); if (result.Flags.HasFlag(PakEntryFlags.HasEmbeddedFilename)) { var embeddedFilenameBytes = br.ReadBytes(0xA0); result._embeddedFilename = Utility.Latin1Encoding.GetString(embeddedFilenameBytes).TrimEnd('\0'); } return(result); }