Beispiel #1
0
        private void clearEmbeddedFilename()
        {
            this._embeddedFilename = null;

            if (this._fileFullNameKey.Checksum == 0)
            {
                this._fileFullNameKey = EmbeddedFilenameKey;
            }

            this._embeddedFilenameKey = new QbKey(0);
            this._flags &= ~PakEntryFlags.HasEmbeddedFilename;
        }
Beispiel #2
0
        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;
        }
        private void ReadHeader()
        {
            using (EndianBinaryReader br = new EndianBinaryReader(
                       EndianBitConverter.Big,
                       new NonClosingStreamWrapper(pakStream)))
            {
                PakEntry entry;
                QbKey    lastKey = new QbKey(".last");

                do
                {
                    entry = PakEntry.ParseHeader(br, this);
                    this.entries.Add(entry);
                }while (!entry.FileType.Equals(lastKey));

                this.entries.RemoveAt(this.entries.Count - 1);
                this.terminator = entry;
            }
        }