Esempio n. 1
0
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;
	}