void BIFFile::load(Common::SeekableReadStream &bif) { readHeader(bif); if (_id != kBIFID) throw Common::Exception("Not a BIF file (%s)", Common::debugTag(_id).c_str()); if ((_version != kVersion1) && (_version != kVersion11)) throw Common::Exception("Unsupported BIF file version %s", Common::debugTag(_version).c_str()); uint32 varResCount = bif.readUint32LE(); uint32 fixResCount = bif.readUint32LE(); if (fixResCount != 0) throw Common::Exception("TODO: Fixed BIF resources"); _iResources.resize(varResCount); uint32 offVarResTable = bif.readUint32LE(); try { readVarResTable(bif, offVarResTable); } catch (Common::Exception &e) { e.add("Failed reading BIF file"); throw; } }
void BIFFile::load() { Common::File bif; open(bif); readHeader(bif); if (_id != kBIFID) throw Common::Exception("Not a BIF file"); if ((_version != kVersion1) && (_version != kVersion11)) throw Common::Exception("Unsupported BIF file version %08X", _version); uint32 varResCount = bif.readUint32LE(); uint32 fixResCount = bif.readUint32LE(); if (fixResCount != 0) throw Common::Exception("TODO: Fixed BIF resources"); _iResources.resize(varResCount); uint32 offVarResTable = bif.readUint32LE(); try { readVarResTable(bif, offVarResTable); if (bif.err()) throw Common::Exception(Common::kReadError); } catch (Common::Exception &e) { e.add("Failed reading BIF file"); throw e; } }