bool KeyedUnarchiver::UnarchiveFile(File *file) { while(!file->IsEof()) { VariantType key; key.Read(file); VariantType value; value.Read(file); objectMap[key.AsString()] = value; } return true; }
bool KeyedArchive::Load(File *archive) { while(!archive->IsEof()) { VariantType key; key.Read(archive); if (archive->IsEof())break; VariantType value; value.Read(archive); objectMap[key.AsString()] = value; } return true; }
bool KeyedArchive::Load(File *archive) { char header[2]; archive->Read(header, 2); if ((header[0] != 'K') || (header[1] != 'A')) { archive->Seek(0,File::SEEK_FROM_START); while(!archive->IsEof()) { VariantType key; key.Read(archive); if (archive->IsEof())break; VariantType *value = new VariantType(); value->Read(archive); objectMap[key.AsString()] = value; } return true; } uint16 version = 0; archive->Read(&version, 2); if (version != 1) { Logger::Error("[KeyedArchive] error loading keyed archive, because version is incorrect"); return false; } uint32 numberOfItems = 0; archive->Read(&numberOfItems, 4); for (uint32 item = 0; item < numberOfItems; ++item) { VariantType key; key.Read(archive); if (archive->IsEof())break; VariantType *value = new VariantType(); value->Read(archive); objectMap[key.AsString()] = value; } return true; }