void Music::getSongNames(Common::StringArray &songs) { songs.clear(); if (IS_SERRATED_SCALPEL) { if (IS_3DO) { Common::FSDirectory gameDirectory(ConfMan.get("path")); Common::FSDirectory *musicDirectory = gameDirectory.getSubDirectory("music"); Common::ArchiveMemberList files; musicDirectory->listMatchingMembers(files, "*_mw22.aifc"); for (Common::ArchiveMemberList::iterator i = files.begin(); i != files.end(); ++i) { Common::String name = (*i)->getName(); name.erase(name.size() - 10); songs.push_back(name); } } else { for (int i = 0; i < ARRAYSIZE(SONG_NAMES); i++) { songs.push_back(SONG_NAMES[i]); } } } else { Common::StringArray fileList; _vm->_res->getResourceNames("music.lib", fileList); for (Common::StringArray::iterator i = fileList.begin(); i != fileList.end(); ++i) { if ((*i).matchString("*.XMI", true)) { (*i).erase((*i).size() - 4); songs.push_back(*i); } } } Common::sort(songs.begin(), songs.end()); }
void EntityClassQuake3_Construct() { StringOutputStream baseDirectory(256); StringOutputStream gameDirectory(256); const char* basegame = GlobalRadiant().getRequiredGameDescriptionKeyValue("basegame"); const char* gamename = GlobalRadiant().getGameName(); baseDirectory << GlobalRadiant().getGameToolsPath() << basegame << '/'; gameDirectory << GlobalRadiant().getGameToolsPath() << gamename << '/'; class LoadEntityDefinitionsVisitor : public EClassModules::Visitor { const char* baseDirectory; const char* gameDirectory; public: LoadEntityDefinitionsVisitor(const char* baseDirectory, const char* gameDirectory) : baseDirectory(baseDirectory), gameDirectory(gameDirectory) { } void visit(const char* name, const EntityClassScanner& table) const { Paths paths; EntityClassQuake3_constructDirectory(baseDirectory, table.getExtension(), paths); if(!string_equal(baseDirectory, gameDirectory)) { EntityClassQuake3_constructDirectory(gameDirectory, table.getExtension(), paths); } for(Paths::iterator i = paths.begin(); i != paths.end(); ++i) { EntityClassesLoadFile(table, (*i).second)((*i).first.c_str()); } } }; EntityClassManager_getEClassModules().foreachModule(LoadEntityDefinitionsVisitor(baseDirectory.c_str(), gameDirectory.c_str())); }