-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()));
-}
-
-EntityClass *Eclass_ForName(const char *name, bool has_brushes)
-{
- ASSERT_NOTNULL(name);