bool GameObjectManager::collisionGroups(const std::string &group1, const std::string &group2, bool reverse) const { return (this->_collisionGroups.count(stringPair(group1, group2)) > 0) ? true : reverse && this->_collisionGroups.count(stringPair(group2, group1)); }
void GameObjectManager::setCollisionGroups( const std::string &group1, const std::string &group2, void (*function)(GameObject&, GameObject&)) { _collisionGroups[stringPair(group1, group2)] = new PhysicsSubscriber3(function); }
void GameObjectManager::callCollision(PhysicObject &obj1, PhysicObject &obj2) { collisionGroupsMap::iterator it = this->_collisionGroups.find(stringPair(obj1.getGroup()->getName(), obj2.getGroup()->getName())); if (it != this->_collisionGroups.end()) (*it->second)(obj1, obj2); }
OptionsWrapper::stringTripleVec OptionsWrapper::getOptions(Enum::GameOption modmapFlag) const { stringTripleVec list; GameOptionsMapCIter optIt = m_opts.find((int)modmapFlag); if (optIt != m_opts.end()) { const GameOptions& gameoptions = optIt->second; for (OptionMapBoolConstIter it = gameoptions.bool_map.begin(); it != gameoptions.bool_map.end(); ++it) { list.push_back(stringTriple((*it).first, stringPair(it->second.name, Util::ToIntString(it->second.value)))); } for (OptionMapStringConstIter it = gameoptions.string_map.begin(); it != gameoptions.string_map.end(); ++it) { list.push_back(stringTriple((*it).first, stringPair(it->second.name, it->second.value))); } for (OptionMapFloatConstIter it = gameoptions.float_map.begin(); it != gameoptions.float_map.end(); ++it) { list.push_back(stringTriple((*it).first, stringPair(it->second.name, Util::ToFloatString(it->second.value)))); } for (OptionMapListConstIter it = gameoptions.list_map.begin(); it != gameoptions.list_map.end(); ++it) { list.push_back(stringTriple((*it).first, stringPair(it->second.name, it->second.value))); } } return list; }