Пример #1
0
// 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);
}
Пример #2
0
// 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();
    }
}
Пример #3
0
// 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);
}
Пример #4
0
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();
}
Пример #5
0
ScriptEntityClass ScriptEntityNode::getEntityClass() {
	Entity* entity = Node_getEntity(*this);
	return ScriptEntityClass(entity != NULL ? entity->getEntityClass() : IEntityClassPtr());
}