void doSetAsString(void *target, const VString &value) { VEnvironmentObject* object = static_cast<VEnvironmentObject*>(target); int fogMode; if (!mapEnumValue(gsFogModeConstants, value, fogMode, false)) { OGRE_EXCEPT(Ogre::Exception::ERR_RT_ASSERTION_FAILED, "Unknown fog mode: " + value, "FogModeCmd::doSet"); } object->mFogMode = static_cast<Ogre::FogMode>(fogMode); object->updateRenderInstance(); }
bool populateFlagsValue(const Constant* constants, const String& label, int& value, bool caseSensitive) { assert(constants); std::vector<String> items = Ogre::StringUtil::split(label, ",|"); int flags = 0; for (std::vector<String>::iterator i = items.begin(); i != items.end(); ++i) { String& item = *i; Ogre::StringUtil::trim(item); int flag; if (!mapEnumValue(constants, item, flag, caseSensitive)) return false; flags |= flag; } value = flags; return true; }