void ConfigFile::SetString(Ogre::String key, Ogre::String value, Ogre::String section /* = Ogre::StringUtil::BLANK */) { SettingsMultiMap* set = mSettingsPtr[section]; if (!set) { // new section set = new SettingsMultiMap(); mSettingsPtr[section] = set; } if (set->count(key)) { // known key, delete old first set->erase(key); } // add key set->insert(std::multimap<Ogre::String, Ogre::String>::value_type(key, value)); }
//----------------------------------------------------------------------- bool ConfigFileEx::_clearMultiSetting(const String& _key, const String& _section) { bool wasChanged = false; SettingsBySection::iterator secIt = mSettings.find(_section); if (secIt != mSettings.end()) { SettingsMultiMap* sec = secIt->second; std::pair<SettingsMultiMap::iterator, SettingsMultiMap::iterator> range; range = sec->equal_range(_key); if(range.first != range.second) { sec->erase(range.first, range.second); wasChanged = true; } } return wasChanged; }