bool PackedFile::Load( const char * filename, bool onlyFirst ) { Common::FileStream fs; fs.Open(filename); uint size = (uint)fs.Size(); Common::Stream st; st.append_zero(size); fs.Read((byte *)st, size); fs.Close(); _data.clear(); std::string magicStr; st>>magicStr; if( magicStr != "Warcraft III recorded game\x01A" ) { return false; } uint HeaderVersion; uint DecompressedSize; uint NumBlocks; st += 4; // header size st += 4; // compressed file size st >> HeaderVersion; // header version st >> DecompressedSize; // decompressed file size st >> NumBlocks; // number of blocks if( HeaderVersion == 0 ) { st += 2; // unknown st >> (ushort&)_gameVersion; // version number }