Common::HashMap<Common::String, Score *> *DirectorEngine::scanMovies(const Common::String &folder) { Common::FSNode directory(folder); Common::FSList movies; const char *sharedMMMname; if (getPlatform() == Common::kPlatformWindows) sharedMMMname = "SHARDCST.MMM"; else sharedMMMname = "Shared Cast*"; Common::HashMap<Common::String, Score *> *nameMap = new Common::HashMap<Common::String, Score *>(); if (!directory.getChildren(movies, Common::FSNode::kListFilesOnly)) return nameMap; if (!movies.empty()) { for (Common::FSList::const_iterator i = movies.begin(); i != movies.end(); ++i) { debugC(2, kDebugLoading, "File: %s", i->getName().c_str()); if (Common::matchString(i->getName().c_str(), sharedMMMname, true)) { _sharedCastFile = i->getName(); continue; } Archive *arc = createArchive(); warning("name: %s", i->getName().c_str()); arc->openFile(i->getName()); Score *sc = new Score(this, arc); nameMap->setVal(sc->getMacName(), sc); debugC(2, kDebugLoading, "Movie name: \"%s\"", sc->getMacName().c_str()); } } return nameMap; }
Common::HashMap<Common::String, Score *> DirectorEngine::loadMMMNames(Common::String folder) { Common::FSNode directory(folder); Common::FSList movies; Common::HashMap<Common::String, Score *> nameMap; directory.getChildren(movies, Common::FSNode::kListFilesOnly); if (!movies.empty()) { for (Common::FSList::const_iterator i = movies.begin(); i != movies.end(); ++i) { if (i->getName() == _sharedMMM) { loadSharedCastsFrom(i->getPath()); continue; } RIFFArchive *arc = new RIFFArchive(); arc->openFile(i->getPath()); Score *sc = new Score(this); nameMap[sc->getMacName()] = sc; } } return nameMap; }