bool PackageManager::loadDirectoryAsPackage(const Common::String &directoryName, const Common::String &mountPosition) { Common::FSNode directory(directoryName); Common::Archive *folderArchive = new Common::FSDirectory(directory, 6); if (!directory.exists() || (folderArchive == NULL)) { BS_LOG_ERRORLN("Unable to mount directory \"%s\" to \"%s\".", directoryName.c_str(), mountPosition.c_str()); return false; } else { BS_LOGLN("Directory '%s' mounted as '%s'.", directoryName.c_str(), mountPosition.c_str()); Common::ArchiveMemberList files; folderArchive->listMembers(files); debug(0, "Capacity %d", files.size()); _archiveList.push_front(new ArchiveEntry(folderArchive, mountPosition)); return true; } }
bool PackageManager::loadPackage(const Common::String &fileName, const Common::String &mountPosition) { debug(3, "loadPackage(%s, %s)", fileName.c_str(), mountPosition.c_str()); Common::Archive *zipFile = Common::makeZipArchive(fileName); if (zipFile == NULL) { BS_LOG_ERRORLN("Unable to mount file \"%s\" to \"%s\"", fileName.c_str(), mountPosition.c_str()); return false; } else { BS_LOGLN("Package '%s' mounted as '%s'.", fileName.c_str(), mountPosition.c_str()); Common::ArchiveMemberList files; zipFile->listMembers(files); debug(3, "Capacity %d", files.size()); for (Common::ArchiveMemberList::iterator it = files.begin(); it != files.end(); ++it) debug(3, "%s", (*it)->getName().c_str()); _archiveList.push_front(new ArchiveEntry(zipFile, mountPosition)); return true; } }
void ZipSoundArchive::openArchive(const char *path, const char *extension, SoundFormat format, int raw_frequency) { closeArchive(); if ((format == RAW || format == RAW80) && !raw_frequency) { error("openArchive() expects frequency for RAW data"); return; } debugCN(1, kDraciArchiverDebugLevel, "Trying to open ZIP archive %s: ", path); _archive = Common::makeZipArchive(path); _path = path; _extension = extension; _format = format; _defaultFreq = raw_frequency; if (_archive) { Common::ArchiveMemberList files; _archive->listMembers(files); _sampleCount = files.size(); debugC(1, kDraciArchiverDebugLevel, "Capacity %d", _sampleCount); } else { debugC(1, kDraciArchiverDebugLevel, "Failed"); } }