// Get a named entity class, creating if necessary IEntityClassPtr EClassManager::findOrInsert(const std::string& name, bool has_brushes) { // Return an error if no name is given if (name.empty()) { return IEntityClassPtr(); } // Convert string to lowercase, for case-insensitive lookup std::string lName = boost::algorithm::to_lower_copy(name); // Find and return if exists Doom3EntityClassPtr eclass = findInternal(lName); if (eclass) { return eclass; } // Otherwise insert the new EntityClass //IEntityClassPtr eclass = eclass::Doom3EntityClass::create(lName, has_brushes); // greebo: Changed fallback behaviour when unknown entites are encountered to TRUE // so that brushes of unknown entites don't get lost (issue #240) eclass = Doom3EntityClass::create(lName, true); // Try to insert the class return insertUnique(eclass); }
// Find an entity class IEntityClassPtr EClassManager::findClass(const std::string& className) const { // greebo: Convert the lookup className string to lowercase first std::string classNameLower = boost::algorithm::to_lower_copy(className); EntityClasses::const_iterator i = _entityClasses.find(classNameLower); if (i != _entityClasses.end()) { return i->second; } else { return IEntityClassPtr(); } }
// Get a named entity class, creating if necessary IEntityClassPtr EClassManager::findOrInsert(const std::string& name, bool has_brushes) { // Return an error if no name is given if (name.empty()) { return IEntityClassPtr(); } // Convert string to lowercase, for case-insensitive lookup std::string lName = boost::algorithm::to_lower_copy(name); // Find the EntityClass in the map. EntityClasses::iterator i = _entityClasses.find(lName); if (i != _entityClasses.end()) { return i->second; // found it, return } // Otherwise insert the new EntityClass //IEntityClassPtr e = eclass::Doom3EntityClass::create(lName, has_brushes); // greebo: Changed fallback behaviour when unknown entites are encountered to TRUE // so that brushes of unknown entites don't get lost (issue #240) Doom3EntityClassPtr e = Doom3EntityClass::create(lName, true); // Try to insert the class return insertUnique(e); }
IEntityClassPtr ResponseEffectTypes::getEClassForName(const std::string& name) { // Try to lookup the given name in the map ResponseEffectTypeMap::iterator found = _effectTypes.find(name); // Return an empty pointer if no effect type is matching return (found != _effectTypes.end()) ? found->second : IEntityClassPtr(); }
ScriptEntityClass ScriptEntityNode::getEntityClass() { Entity* entity = Node_getEntity(*this); return ScriptEntityClass(entity != NULL ? entity->getEntityClass() : IEntityClassPtr()); }