diff --git a/indra/llmessage/llavatarnamecache.cpp b/indra/llmessage/llavatarnamecache.cpp index 9a54ccce54..0d4f0385ef 100644 --- a/indra/llmessage/llavatarnamecache.cpp +++ b/indra/llmessage/llavatarnamecache.cpp @@ -119,10 +119,6 @@ LLAvatarNameCache::LLAvatarNameCache() mUsePeopleAPI = true; -// [RLVa:KB] - Checked: 2010-12-08 (RLVa-1.4.0a) | Added: RLVa-1.2.2c - mForceDisplayNames = false; -// [/RLVa:KB] - sHttpRequest = LLCore::HttpRequest::ptr_t(new LLCore::HttpRequest()); sHttpHeaders = LLCore::HttpHeaders::ptr_t(new LLCore::HttpHeaders()); sHttpOptions = LLCore::HttpOptions::ptr_t(new LLCore::HttpOptions()); @@ -742,12 +738,12 @@ LLAvatarNameCache::callback_connection_t LLAvatarNameCache::getNameCallback(cons // [RLVa:KB] - Checked: 2010-12-08 (RLVa-1.4.0a) | Added: RLVa-1.2.2c bool LLAvatarNameCache::getForceDisplayNames() { - return mForceDisplayNames; + return mRlvForceDisplayNames; } void LLAvatarNameCache::setForceDisplayNames(bool force) { - mForceDisplayNames = force; + mRlvForceDisplayNames = force; if ( (!LLAvatarName::useDisplayNames()) && (force) ) { LLAvatarName::setUseDisplayNames(true); diff --git a/indra/llmessage/llavatarnamecache.h b/indra/llmessage/llavatarnamecache.h index c04bad870d..c8f1dc3fde 100644 --- a/indra/llmessage/llavatarnamecache.h +++ b/indra/llmessage/llavatarnamecache.h @@ -163,6 +163,11 @@ private: // For testing, there's a UsePeopleAPI setting that can be flipped (must restart viewer). bool mUsePeopleAPI; +// [RLVa:KB] - Checked: 2010-12-08 (RLVa-1.4.0a) | Added: RLVa-1.2.2c + // RLVa override for display names + bool mRlvForceDisplayNames = false; +// [/RLVa:KB] + // Base lookup URL for name service. // On simulator, loaded from indra.xml // On viewer, usually a simulator capability (at People API team's request) @@ -191,10 +196,6 @@ private: // Time when unrefreshed cached names were checked last. F64 mLastExpireCheck; - -// [RLVa:KB] - Checked: 2010-12-08 (RLVa-1.4.0a) | Added: RLVa-1.2.2c - bool mForceDisplayNames; -// [/RLVa:KB] }; // Parse a cache-control header to get the max-age delta-seconds. diff --git a/indra/newview/llfloaterpreference.cpp b/indra/newview/llfloaterpreference.cpp index fe0d1c863a..e84f4e237c 100644 --- a/indra/newview/llfloaterpreference.cpp +++ b/indra/newview/llfloaterpreference.cpp @@ -2349,8 +2349,10 @@ void LLFloaterPreferenceGraphicsAdvanced::refreshEnabledState() LLTextBox* sky_text = getChild("SkyMeshDetailText"); // ctrl_wind_light->setEnabled(TRUE); // [RLVa:KB] - Checked: 2010-03-18 (RLVa-1.2.0a) | Modified: RLVa-0.2.0a - // "Atmospheric Shaders" can't be disabled - but can be enabled - under @setenv=n - ctrl_wind_light->setEnabled(((!gRlvHandler.hasBehaviour(RLV_BHVR_SETENV)) || (!gSavedSettings.getBOOL("WindLightUseAtmosShaders"))) ); +// // "Atmospheric Shaders" can't be disabled - but can be enabled - under @setenv=n +// bool fCtrlWindLightEnable = fCtrlShaderEnable && shaders; +// ctrl_wind_light->setEnabled( +// fCtrlWindLightEnable && ((!gRlvHandler.hasBehaviour(RLV_BHVR_SETENV)) || (!gSavedSettings.getBOOL("WindLightUseAtmosShaders"))) ); // [/RLVa:KB] sky->setEnabled(TRUE); sky_text->setEnabled(TRUE); diff --git a/indra/newview/llviewermessage.cpp b/indra/newview/llviewermessage.cpp index ad2fd2dd27..7afd21e502 100644 --- a/indra/newview/llviewermessage.cpp +++ b/indra/newview/llviewermessage.cpp @@ -2325,15 +2325,10 @@ bool LLOfferInfo::inventory_task_offer_callback(const LLSD& notification, const LLUUID destination; bool accept = true; -// [RLVa:KB] - Checked: 2010-09-23 (RLVa-1.2.1) - bool fRlvNotifyAccepted = false; -// [/RLVa:KB] // If user accepted, accept to proper folder, if user discarded, accept to trash. switch(button) { case IOR_ACCEPT: - destination = mFolderID; - // [RLVa:KB] - Checked: 2010-09-23 (RLVa-1.2.1) // Only treat the offer as 'Give to #RLV' if: // - the user has enabled the feature @@ -2341,28 +2336,28 @@ bool LLOfferInfo::inventory_task_offer_callback(const LLSD& notification, const // - the name starts with the prefix - mDesc format: '[OBJECTNAME]' ( http://slurl.com/... ) if ( (rlv_handler_t::isEnabled()) && (IM_TASK_INVENTORY_OFFERED == mIM) && (LLAssetType::AT_CATEGORY == mType) && (mDesc.find(RLV_PUTINV_PREFIX) == 1) ) { - fRlvNotifyAccepted = true; if (!RlvSettings::getForbidGiveToRLV()) { const LLUUID& idRlvRoot = RlvInventory::instance().getSharedRootID(); if (idRlvRoot.notNull()) mFolderID = idRlvRoot; - fRlvNotifyAccepted = false; // "accepted_in_rlv" is sent from RlvGiveToRLVTaskOffer *after* we have the folder - + // "accepted_in_rlv" is sent from RlvGiveToRLVTaskOffer *after* we have the folder RlvGiveToRLVTaskOffer* pOfferObserver = new RlvGiveToRLVTaskOffer(mTransactionID); gInventory.addObserver(pOfferObserver); } - } - - if (fRlvNotifyAccepted) - { - std::string::size_type idxToken = mDesc.find("' ( http://"); - if (std::string::npos != idxToken) - RlvBehaviourNotifyHandler::sendNotification("accepted_in_inv inv_offer " + mDesc.substr(1, idxToken - 1)); + else + { + std::string::size_type idxToken = mDesc.find("' ( http://"); + if (std::string::npos != idxToken) + { + RlvBehaviourNotifyHandler::sendNotification("accepted_in_inv inv_offer " + mDesc.substr(1, idxToken - 1)); + } + } } // [/RLVa:KB] + destination = mFolderID; //don't spam user if flooded if (check_offer_throttle(mFromName, true)) { diff --git a/indra/newview/llviewerobject.h b/indra/newview/llviewerobject.h index 320090b0d8..e08fdb7a6c 100644 --- a/indra/newview/llviewerobject.h +++ b/indra/newview/llviewerobject.h @@ -397,10 +397,10 @@ public: void sendShapeUpdate(); -// U8 getAttachmentState() { return mAttachmentState; } // [RLVa:KB] - Checked: 2010-02-27 (RLVa-1.2.0a) | Added: RLVa-1.2.0a - U8 getAttachmentState() const { return mAttachmentState; } + U8 getAttachmentState() const { return mAttachmentState; } // [/RLVa:KB] +// U8 getAttachmentState() { return mAttachmentState; } F32 getAppAngle() const { return mAppAngle; } F32 getPixelArea() const { return mPixelArea; } diff --git a/indra/newview/rlvdefines.h b/indra/newview/rlvdefines.h index 17d53294e4..e9f7a8714d 100644 --- a/indra/newview/rlvdefines.h +++ b/indra/newview/rlvdefines.h @@ -35,8 +35,8 @@ const S32 RLV_VERSION_BUILD_COMPAT = 0; // Implementation version const S32 RLVa_VERSION_MAJOR = 2; -const S32 RLVa_VERSION_MINOR = 2; -const S32 RLVa_VERSION_PATCH = 2; +const S32 RLVa_VERSION_MINOR = 3; +const S32 RLVa_VERSION_PATCH = 0; // Uncomment before a final release #define RLV_RELEASE diff --git a/indra/newview/rlvextensions.cpp b/indra/newview/rlvextensions.cpp index 6e8924f90b..cabf1891eb 100644 --- a/indra/newview/rlvextensions.cpp +++ b/indra/newview/rlvextensions.cpp @@ -17,9 +17,9 @@ #include "llviewerprecompiledheaders.h" #include "llagent.h" #include "llagentcamera.h" -// #include "lldaycyclemanager.h" // [EEPMERGE] +//#include "lldaycyclemanager.h" #include "llvoavatarself.h" -//#include "llwlparammanager.h" // [EEPMERGE] +//#include "llwlparammanager.h" #include "rlvextensions.h" #include "rlvhandler.h" @@ -27,351 +27,349 @@ // ============================================================================ -#if 0// [EEPMERGE] -class RlvWindLightControl -{ -public: - enum EType { TYPE_COLOR, TYPE_COLOR_R, TYPE_FLOAT, TYPE_UNKNOWN }; - enum EColorComponent { COMPONENT_R, COMPONENT_G, COMPONENT_B, COMPONENT_I, COMPONENT_NONE }; -public: - RlvWindLightControl(WLColorControl* pCtrl, bool fColorR) : m_eType((!fColorR) ? TYPE_COLOR: TYPE_COLOR_R), m_pColourCtrl(pCtrl), m_pFloatCtrl(NULL) {} - RlvWindLightControl(WLFloatControl* pCtrl) : m_eType(TYPE_FLOAT), m_pColourCtrl(NULL), m_pFloatCtrl(pCtrl) {} - - EType getControlType() const { return m_eType; } - bool isColorType() const { return (TYPE_COLOR == m_eType) || (TYPE_COLOR_R == m_eType); } - bool isFloatType() const { return (TYPE_FLOAT == m_eType); } - // TYPE_COLOR and TYPE_COLOR_R - F32 getColorComponent(EColorComponent eComponent, bool& fError) const; - LLVector4 getColorVector(bool& fError) const; - bool setColorComponent(EColorComponent eComponent, F32 nValue); - // TYPE_FLOAT - F32 getFloat(bool& fError) const; - bool setFloat(F32 nValue); - - static EColorComponent getComponentFromCharacter(char ch); -protected: - EType m_eType; // Type of the WindLight control - WLColorControl* m_pColourCtrl; - WLFloatControl* m_pFloatCtrl; -}; +//class RlvWindLightControl +//{ +//public: +// enum EType { TYPE_COLOR, TYPE_COLOR_R, TYPE_FLOAT, TYPE_UNKNOWN }; +// enum EColorComponent { COMPONENT_R, COMPONENT_G, COMPONENT_B, COMPONENT_I, COMPONENT_NONE }; +//public: +// RlvWindLightControl(WLColorControl* pCtrl, bool fColorR) : m_eType((!fColorR) ? TYPE_COLOR: TYPE_COLOR_R), m_pColourCtrl(pCtrl), m_pFloatCtrl(NULL) {} +// RlvWindLightControl(WLFloatControl* pCtrl) : m_eType(TYPE_FLOAT), m_pColourCtrl(NULL), m_pFloatCtrl(pCtrl) {} +// +// EType getControlType() const { return m_eType; } +// bool isColorType() const { return (TYPE_COLOR == m_eType) || (TYPE_COLOR_R == m_eType); } +// bool isFloatType() const { return (TYPE_FLOAT == m_eType); } +// // TYPE_COLOR and TYPE_COLOR_R +// F32 getColorComponent(EColorComponent eComponent, bool& fError) const; +// LLVector4 getColorVector(bool& fError) const; +// bool setColorComponent(EColorComponent eComponent, F32 nValue); +// // TYPE_FLOAT +// F32 getFloat(bool& fError) const; +// bool setFloat(F32 nValue); +// +// static EColorComponent getComponentFromCharacter(char ch); +//protected: +// EType m_eType; // Type of the WindLight control +// WLColorControl* m_pColourCtrl; +// WLFloatControl* m_pFloatCtrl; +//}; // Checked: 2011-08-29 (RLVa-1.4.1a) | Added: RLVa-1.4.1a -static F32 get_intensity_from_color(const LLVector4& v) -{ - return llmax(v.mV[0], v.mV[1], v.mV[2]); -} +//static F32 get_intensity_from_color(const LLVector4& v) +//{ +// return llmax(v.mV[0], v.mV[1], v.mV[2]); +//} // Checked: 2011-08-29 (RLVa-1.4.1a) | Added: RLVa-1.4.1a -F32 RlvWindLightControl::getColorComponent(EColorComponent eComponent, bool& fError) const -{ - switch (eComponent) - { - case COMPONENT_R: return getColorVector(fError).mV[0]; - case COMPONENT_G: return getColorVector(fError).mV[1]; - case COMPONENT_B: return getColorVector(fError).mV[2]; - case COMPONENT_I: return get_intensity_from_color(getColorVector(fError)); // SL-2.8: Always seems to be 1.0 so get it manually - default : RLV_ASSERT(false); fError = true; return 0.0; - } -} +//F32 RlvWindLightControl::getColorComponent(EColorComponent eComponent, bool& fError) const +//{ +// switch (eComponent) +// { +// case COMPONENT_R: return getColorVector(fError).mV[0]; +// case COMPONENT_G: return getColorVector(fError).mV[1]; +// case COMPONENT_B: return getColorVector(fError).mV[2]; +// case COMPONENT_I: return get_intensity_from_color(getColorVector(fError)); // SL-2.8: Always seems to be 1.0 so get it manually +// default : RLV_ASSERT(false); fError = true; return 0.0; +// } +//} // Checked: 2011-08-29 (RLVa-1.4.1a) | Added: RLVa-1.4.1a -RlvWindLightControl::EColorComponent RlvWindLightControl::getComponentFromCharacter(char ch) -{ - if (('r' == ch) || ('x' == ch)) - return COMPONENT_R; - else if (('g' == ch) || ('y' == ch)) - return COMPONENT_G; - else if (('b' == ch) || ('d' == ch)) - return COMPONENT_B; - else if ('i' == ch) - return COMPONENT_I; - return COMPONENT_NONE; -} +//RlvWindLightControl::EColorComponent RlvWindLightControl::getComponentFromCharacter(char ch) +//{ +// if (('r' == ch) || ('x' == ch)) +// return COMPONENT_R; +// else if (('g' == ch) || ('y' == ch)) +// return COMPONENT_G; +// else if (('b' == ch) || ('d' == ch)) +// return COMPONENT_B; +// else if ('i' == ch) +// return COMPONENT_I; +// return COMPONENT_NONE; +//} // Checked: 2011-08-29 (RLVa-1.4.1a) | Added: RLVa-1.4.1a -LLVector4 RlvWindLightControl::getColorVector(bool& fError) const -{ - if ((fError = !isColorType())) - return LLVector4(0, 0, 0, 0); - F32 nMult = (m_pColourCtrl->isSunOrAmbientColor) ? 3.0f : ((m_pColourCtrl->isBlueHorizonOrDensity) ? 2.0f : 1.0f); - return LLWLParamManager::getInstance()->mCurParams.getVector(m_pColourCtrl->mName, fError) / nMult; -} +//LLVector4 RlvWindLightControl::getColorVector(bool& fError) const +//{ +// if ((fError = !isColorType())) +// return LLVector4(0, 0, 0, 0); +// F32 nMult = (m_pColourCtrl->isSunOrAmbientColor) ? 3.0f : ((m_pColourCtrl->isBlueHorizonOrDensity) ? 2.0f : 1.0f); +// return LLWLParamManager::getInstance()->mCurParams.getVector(m_pColourCtrl->mName, fError) / nMult; +//} // Checked: 2011-08-28 (RLVa-1.4.1a) | Added: RLVa-1.4.1a -bool RlvWindLightControl::setColorComponent(EColorComponent eComponent, F32 nValue) -{ - if (isColorType()) - { - nValue *= (m_pColourCtrl->isSunOrAmbientColor) ? 3.0f : ((m_pColourCtrl->isBlueHorizonOrDensity) ? 2.0f : 1.0f); - if (COMPONENT_I == eComponent) // (See: LLFloaterWindLight::onColorControlIMoved) - { - if (m_pColourCtrl->hasSliderName) - { - F32 curMax = llmax(m_pColourCtrl->r, m_pColourCtrl->g, m_pColourCtrl->b); - if ( (0.0f == nValue) || (0.0f == curMax) ) - { - m_pColourCtrl->r = m_pColourCtrl->g = m_pColourCtrl->b = m_pColourCtrl->i = nValue; - } - else - { - F32 nDelta = (nValue - curMax) / curMax; - m_pColourCtrl->r *= (1.0f + nDelta); - m_pColourCtrl->g *= (1.0f + nDelta); - m_pColourCtrl->b *= (1.0f + nDelta); - m_pColourCtrl->i = nValue; - } - } - } - else // (See: LLFloaterWindLight::onColorControlRMoved) - { - F32* pnValue = (COMPONENT_R == eComponent) ? &m_pColourCtrl->r : (COMPONENT_G == eComponent) ? &m_pColourCtrl->g : (COMPONENT_B == eComponent) ? &m_pColourCtrl->b : NULL; - if (pnValue) - *pnValue = nValue; - if (m_pColourCtrl->hasSliderName) - m_pColourCtrl->i = llmax(m_pColourCtrl->r, m_pColourCtrl->g, m_pColourCtrl->b); - } - m_pColourCtrl->update(LLWLParamManager::getInstance()->mCurParams); - LLWLParamManager::getInstance()->propagateParameters(); - } - return isColorType(); -} +//bool RlvWindLightControl::setColorComponent(EColorComponent eComponent, F32 nValue) +//{ +// if (isColorType()) +// { +// nValue *= (m_pColourCtrl->isSunOrAmbientColor) ? 3.0f : ((m_pColourCtrl->isBlueHorizonOrDensity) ? 2.0f : 1.0f); +// if (COMPONENT_I == eComponent) // (See: LLFloaterWindLight::onColorControlIMoved) +// { +// if (m_pColourCtrl->hasSliderName) +// { +// F32 curMax = llmax(m_pColourCtrl->r, m_pColourCtrl->g, m_pColourCtrl->b); +// if ( (0.0f == nValue) || (0.0f == curMax) ) +// { +// m_pColourCtrl->r = m_pColourCtrl->g = m_pColourCtrl->b = m_pColourCtrl->i = nValue; +// } +// else +// { +// F32 nDelta = (nValue - curMax) / curMax; +// m_pColourCtrl->r *= (1.0f + nDelta); +// m_pColourCtrl->g *= (1.0f + nDelta); +// m_pColourCtrl->b *= (1.0f + nDelta); +// m_pColourCtrl->i = nValue; +// } +// } +// } +// else // (See: LLFloaterWindLight::onColorControlRMoved) +// { +// F32* pnValue = (COMPONENT_R == eComponent) ? &m_pColourCtrl->r : (COMPONENT_G == eComponent) ? &m_pColourCtrl->g : (COMPONENT_B == eComponent) ? &m_pColourCtrl->b : NULL; +// if (pnValue) +// *pnValue = nValue; +// if (m_pColourCtrl->hasSliderName) +// m_pColourCtrl->i = llmax(m_pColourCtrl->r, m_pColourCtrl->g, m_pColourCtrl->b); +// } +// m_pColourCtrl->update(LLWLParamManager::getInstance()->mCurParams); +// LLWLParamManager::getInstance()->propagateParameters(); +// } +// return isColorType(); +//} // Checked: 2011-08-29 (RLVa-1.4.1a) | Added: RLVa-1.4.1a -F32 RlvWindLightControl::getFloat(bool& fError) const -{ - return (!(fError = (TYPE_FLOAT != m_eType))) ? LLWLParamManager::getInstance()->mCurParams.getVector(m_pFloatCtrl->mName, fError).mV[0] * m_pFloatCtrl->mult : 0.0; -} +// F32 RlvWindLightControl::getFloat(bool& fError) const +// { +// return (!(fError = (TYPE_FLOAT != m_eType))) ? LLWLParamManager::getInstance()->mCurParams.getVector(m_pFloatCtrl->mName, fError).mV[0] * m_pFloatCtrl->mult : 0.0; +// } // Checked: 2011-08-28 (RLVa-1.4.1a) | Added: RLVa-1.4.1a -bool RlvWindLightControl::setFloat(F32 nValue) -{ - if (TYPE_FLOAT == m_eType) - { - m_pFloatCtrl->x = nValue / m_pFloatCtrl->mult; - m_pFloatCtrl->update(LLWLParamManager::getInstance()->mCurParams); - LLWLParamManager::getInstance()->propagateParameters(); - } - return (TYPE_FLOAT == m_eType); -} +//bool RlvWindLightControl::setFloat(F32 nValue) +//{ +// if (TYPE_FLOAT == m_eType) +// { +// m_pFloatCtrl->x = nValue / m_pFloatCtrl->mult; +// m_pFloatCtrl->update(LLWLParamManager::getInstance()->mCurParams); +// LLWLParamManager::getInstance()->propagateParameters(); +// } +// return (TYPE_FLOAT == m_eType); +//} // ============================================================================ -class RlvWindLight : public LLSingleton -{ - LLSINGLETON(RlvWindLight); -public: - std::string getValue(const std::string& strSetting, bool& fError); - bool setValue(const std::string& strRlvName, const std::string& strValue); - -protected: - std::map m_ControlLookupMap; -}; +//class RlvWindLight : public LLSingleton +//{ +// LLSINGLETON(RlvWindLight); +//public: +// std::string getValue(const std::string& strSetting, bool& fError); +// bool setValue(const std::string& strRlvName, const std::string& strValue); +// +//protected: +// std::map m_ControlLookupMap; +//}; // Checked: 2011-08-29 (RLVa-1.4.1a) | Added: RLVa-1.4.1a -RlvWindLight::RlvWindLight() -{ - LLWLParamManager* pWLParamMgr = LLWLParamManager::getInstance(); - - // TYPE_FLOAT - m_ControlLookupMap.insert(std::pair("cloudcoverage", RlvWindLightControl(&pWLParamMgr->mCloudCoverage))); - m_ControlLookupMap.insert(std::pair("cloudscale", RlvWindLightControl(&pWLParamMgr->mCloudScale))); - m_ControlLookupMap.insert(std::pair("densitymultiplier", RlvWindLightControl(&pWLParamMgr->mDensityMult))); - m_ControlLookupMap.insert(std::pair("distancemultiplier", RlvWindLightControl(&pWLParamMgr->mDistanceMult))); - m_ControlLookupMap.insert(std::pair("maxaltitude", RlvWindLightControl(&pWLParamMgr->mMaxAlt))); - m_ControlLookupMap.insert(std::pair("scenegamma", RlvWindLightControl(&pWLParamMgr->mWLGamma))); - m_ControlLookupMap.insert(std::pair("hazedensity", RlvWindLightControl(&pWLParamMgr->mHazeDensity))); - m_ControlLookupMap.insert(std::pair("hazehorizon", RlvWindLightControl(&pWLParamMgr->mHazeHorizon))); - // TYPE_COLOR - m_ControlLookupMap.insert(std::pair("ambient", RlvWindLightControl(&pWLParamMgr->mAmbient, false))); - m_ControlLookupMap.insert(std::pair("bluedensity", RlvWindLightControl(&pWLParamMgr->mBlueDensity, false))); - m_ControlLookupMap.insert(std::pair("bluehorizon", RlvWindLightControl(&pWLParamMgr->mBlueHorizon, false))); - m_ControlLookupMap.insert(std::pair("cloud", RlvWindLightControl(&pWLParamMgr->mCloudMain, false))); - m_ControlLookupMap.insert(std::pair("cloudcolor", RlvWindLightControl(&pWLParamMgr->mCloudColor, false))); - m_ControlLookupMap.insert(std::pair("clouddetail", RlvWindLightControl(&pWLParamMgr->mCloudDetail, false))); - m_ControlLookupMap.insert(std::pair("sunmooncolor", RlvWindLightControl(&pWLParamMgr->mSunlight, false))); -} +//RlvWindLight::RlvWindLight() +//{ +// LLWLParamManager* pWLParamMgr = LLWLParamManager::getInstance(); +// +// // TYPE_FLOAT +// m_ControlLookupMap.insert(std::pair("cloudcoverage", RlvWindLightControl(&pWLParamMgr->mCloudCoverage))); +// m_ControlLookupMap.insert(std::pair("cloudscale", RlvWindLightControl(&pWLParamMgr->mCloudScale))); +// m_ControlLookupMap.insert(std::pair("densitymultiplier", RlvWindLightControl(&pWLParamMgr->mDensityMult))); +// m_ControlLookupMap.insert(std::pair("distancemultiplier", RlvWindLightControl(&pWLParamMgr->mDistanceMult))); +// m_ControlLookupMap.insert(std::pair("maxaltitude", RlvWindLightControl(&pWLParamMgr->mMaxAlt))); +// m_ControlLookupMap.insert(std::pair("scenegamma", RlvWindLightControl(&pWLParamMgr->mWLGamma))); +// m_ControlLookupMap.insert(std::pair("hazedensity", RlvWindLightControl(&pWLParamMgr->mHazeDensity))); +// m_ControlLookupMap.insert(std::pair("hazehorizon", RlvWindLightControl(&pWLParamMgr->mHazeHorizon))); +// // TYPE_COLOR +// m_ControlLookupMap.insert(std::pair("ambient", RlvWindLightControl(&pWLParamMgr->mAmbient, false))); +// m_ControlLookupMap.insert(std::pair("bluedensity", RlvWindLightControl(&pWLParamMgr->mBlueDensity, false))); +// m_ControlLookupMap.insert(std::pair("bluehorizon", RlvWindLightControl(&pWLParamMgr->mBlueHorizon, false))); +// m_ControlLookupMap.insert(std::pair("cloud", RlvWindLightControl(&pWLParamMgr->mCloudMain, false))); +// m_ControlLookupMap.insert(std::pair("cloudcolor", RlvWindLightControl(&pWLParamMgr->mCloudColor, false))); +// m_ControlLookupMap.insert(std::pair("clouddetail", RlvWindLightControl(&pWLParamMgr->mCloudDetail, false))); +// m_ControlLookupMap.insert(std::pair("sunmooncolor", RlvWindLightControl(&pWLParamMgr->mSunlight, false))); +//} // Checked: 2011-08-29 (RLVa-1.4.1a) | Added: RLVa-1.4.1a -std::string RlvWindLight::getValue(const std::string& strSetting, bool& fError) -{ - LLWLParamManager* pWLParams = LLWLParamManager::getInstance(); - LLEnvManagerNew* pEnvMgr = LLEnvManagerNew::getInstance(); - - fError = false; // Assume we won't fail - if ("preset" == strSetting) - return (pEnvMgr->getUseFixedSky()) ? pEnvMgr->getSkyPresetName() : std::string(); - else if ("daycycle" == strSetting) - return (pEnvMgr->getUseDayCycle()) ? pEnvMgr->getDayCycleName() : std::string(); - - F32 nValue = 0.0f; - if ("daytime" == strSetting) - { - nValue = (pEnvMgr->getUseFixedSky()) ? pWLParams->mCurParams.getFloat("sun_angle", fError) / F_TWO_PI : -1.0f; - } - else if (("sunglowfocus" == strSetting) || ("sunglowsize" == strSetting)) - { - pWLParams->mGlow = pWLParams->mCurParams.getVector(pWLParams->mGlow.mName, fError); - RLV_ASSERT_DBG(!fError); - - if ("sunglowfocus" == strSetting) - nValue = -pWLParams->mGlow.b / 5.0f; - else - nValue = 2 - pWLParams->mGlow.r / 20.0f; - } - else if ("starbrightness" == strSetting) nValue = pWLParams->mCurParams.getStarBrightness(); - else if ("eastangle" == strSetting) nValue = pWLParams->mCurParams.getEastAngle() / F_TWO_PI; - else if ("sunmoonposition" == strSetting) nValue = pWLParams->mCurParams.getSunAngle() / F_TWO_PI; - else if ("cloudscrollx" == strSetting) nValue = pWLParams->mCurParams.getCloudScrollX() - 10.0f; - else if ("cloudscrolly" == strSetting) nValue = pWLParams->mCurParams.getCloudScrollY() - 10.0f; - else - { - std::map::const_iterator itControl = m_ControlLookupMap.find(strSetting); - if (m_ControlLookupMap.end() != itControl) - { - switch (itControl->second.getControlType()) - { - case RlvWindLightControl::TYPE_FLOAT: - nValue = itControl->second.getFloat(fError); - break; - case RlvWindLightControl::TYPE_COLOR_R: - nValue = itControl->second.getColorComponent(RlvWindLightControl::COMPONENT_R, fError); - break; - default: - fError = true; - break; - } - } - else - { - // Couldn't find the exact name, check for a color control name - RlvWindLightControl::EColorComponent eComponent = RlvWindLightControl::getComponentFromCharacter(strSetting[strSetting.length() - 1]); - if (RlvWindLightControl::COMPONENT_NONE != eComponent) - itControl = m_ControlLookupMap.find(strSetting.substr(0, strSetting.length() - 1)); - if ( (m_ControlLookupMap.end() != itControl) && (itControl->second.isColorType()) ) - nValue = itControl->second.getColorComponent(eComponent, fError); - else - fError = true; - } - } - return llformat("%f", nValue); -} +//std::string RlvWindLight::getValue(const std::string& strSetting, bool& fError) +//{ +// LLWLParamManager* pWLParams = LLWLParamManager::getInstance(); +// LLEnvManagerNew* pEnvMgr = LLEnvManagerNew::getInstance(); +// +// fError = false; // Assume we won't fail +// if ("preset" == strSetting) +// return (pEnvMgr->getUseFixedSky()) ? pEnvMgr->getSkyPresetName() : std::string(); +// else if ("daycycle" == strSetting) +// return (pEnvMgr->getUseDayCycle()) ? pEnvMgr->getDayCycleName() : std::string(); +// +// F32 nValue = 0.0f; +// if ("daytime" == strSetting) +// { +// nValue = (pEnvMgr->getUseFixedSky()) ? pWLParams->mCurParams.getFloat("sun_angle", fError) / F_TWO_PI : -1.0f; +// } +// else if (("sunglowfocus" == strSetting) || ("sunglowsize" == strSetting)) +// { +// pWLParams->mGlow = pWLParams->mCurParams.getVector(pWLParams->mGlow.mName, fError); +// RLV_ASSERT_DBG(!fError); +// +// if ("sunglowfocus" == strSetting) +// nValue = -pWLParams->mGlow.b / 5.0f; +// else +// nValue = 2 - pWLParams->mGlow.r / 20.0f; +// } +// else if ("starbrightness" == strSetting) nValue = pWLParams->mCurParams.getStarBrightness(); +// else if ("eastangle" == strSetting) nValue = pWLParams->mCurParams.getEastAngle() / F_TWO_PI; +// else if ("sunmoonposition" == strSetting) nValue = pWLParams->mCurParams.getSunAngle() / F_TWO_PI; +// else if ("cloudscrollx" == strSetting) nValue = pWLParams->mCurParams.getCloudScrollX() - 10.0f; +// else if ("cloudscrolly" == strSetting) nValue = pWLParams->mCurParams.getCloudScrollY() - 10.0f; +// else +// { +// std::map::const_iterator itControl = m_ControlLookupMap.find(strSetting); +// if (m_ControlLookupMap.end() != itControl) +// { +// switch (itControl->second.getControlType()) +// { +// case RlvWindLightControl::TYPE_FLOAT: +// nValue = itControl->second.getFloat(fError); +// break; +// case RlvWindLightControl::TYPE_COLOR_R: +// nValue = itControl->second.getColorComponent(RlvWindLightControl::COMPONENT_R, fError); +// break; +// default: +// fError = true; +// break; +// } +// } +// else +// { +// // Couldn't find the exact name, check for a color control name +// RlvWindLightControl::EColorComponent eComponent = RlvWindLightControl::getComponentFromCharacter(strSetting[strSetting.length() - 1]); +// if (RlvWindLightControl::COMPONENT_NONE != eComponent) +// itControl = m_ControlLookupMap.find(strSetting.substr(0, strSetting.length() - 1)); +// if ( (m_ControlLookupMap.end() != itControl) && (itControl->second.isColorType()) ) +// nValue = itControl->second.getColorComponent(eComponent, fError); +// else +// fError = true; +// } +// } +// return llformat("%f", nValue); +//} // Checked: 2011-08-29 (RLVa-1.4.1a) | Added: RLVa-1.4.1a -bool RlvWindLight::setValue(const std::string& strRlvName, const std::string& strValue) -{ - F32 nValue = 0.0f; - // Sanity check - make sure strValue specifies a number for all settings except "preset" and "daycycle" - if ( (RlvSettings::getNoSetEnv()) || - ( (!LLStringUtil::convertToF32(strValue, nValue)) && (("preset" != strRlvName) && ("daycycle" != strRlvName)) ) ) - { - return false; - } - - LLWLParamManager* pWLParams = LLWLParamManager::getInstance(); - LLEnvManagerNew* pEnvMgr = LLEnvManagerNew::getInstance(); - - if ("daytime" == strRlvName) - { - if (0.0f <= nValue) - { - pWLParams->mAnimator.deactivate(); - pWLParams->mAnimator.setDayTime(nValue); - pWLParams->mAnimator.update(pWLParams->mCurParams); - } - else - { - pEnvMgr->setUserPrefs(pEnvMgr->getWaterPresetName(), pEnvMgr->getSkyPresetName(), pEnvMgr->getDayCycleName(), false, true); - } - return true; - } - else if ("preset" == strRlvName) - { - std::string strPresetName = pWLParams->findPreset(strValue, LLEnvKey::SCOPE_LOCAL); - if (!strPresetName.empty()) - pEnvMgr->useSkyPreset(strPresetName); - return !strPresetName.empty(); - } - else if ("daycycle" == strRlvName) - { - std::string strPresetName = LLDayCycleManager::instance().findPreset(strValue); - if (!strPresetName.empty()) - pEnvMgr->useDayCycle(strValue, LLEnvKey::SCOPE_LOCAL); - return !strPresetName.empty(); - } - - bool fError = false; - pWLParams->mAnimator.deactivate(); - if (("sunglowfocus" == strRlvName) || ("sunglowsize" == strRlvName)) - { - pWLParams->mGlow = pWLParams->mCurParams.getVector(pWLParams->mGlow.mName, fError); - RLV_ASSERT_DBG(!fError); - - if ("sunglowfocus" == strRlvName) - pWLParams->mGlow.b = -nValue * 5; - else - pWLParams->mGlow.r = (2 - nValue) * 20; - - pWLParams->mGlow.update(pWLParams->mCurParams); - pWLParams->propagateParameters(); - return true; - } - else if ("starbrightness" == strRlvName) - { - pWLParams->mCurParams.setStarBrightness(nValue); - return true; - } - else if (("eastangle" == strRlvName) || ("sunmoonposition" == strRlvName)) - { - if ("eastangle" == strRlvName) - pWLParams->mCurParams.setEastAngle(F_TWO_PI * nValue); - else - pWLParams->mCurParams.setSunAngle(F_TWO_PI * nValue); - - // Set the sun vector - pWLParams->mLightnorm.r = -sin(pWLParams->mCurParams.getEastAngle()) * cos(pWLParams->mCurParams.getSunAngle()); - pWLParams->mLightnorm.g = sin(pWLParams->mCurParams.getSunAngle()); - pWLParams->mLightnorm.b = cos(pWLParams->mCurParams.getEastAngle()) * cos(pWLParams->mCurParams.getSunAngle()); - pWLParams->mLightnorm.i = 1.f; - - pWLParams->propagateParameters(); - return true; - } - else if ("cloudscrollx" == strRlvName) - { - pWLParams->mCurParams.setCloudScrollX(nValue + 10.0f); - return true; - } - else if ("cloudscrolly" == strRlvName) - { - pWLParams->mCurParams.setCloudScrollY(nValue + 10.0f); - return true; - } - - std::map::iterator itControl = m_ControlLookupMap.find(strRlvName); - if (m_ControlLookupMap.end() != itControl) - { - switch (itControl->second.getControlType()) - { - case RlvWindLightControl::TYPE_FLOAT: - return itControl->second.setFloat(nValue); - case RlvWindLightControl::TYPE_COLOR_R: - return itControl->second.setColorComponent(RlvWindLightControl::COMPONENT_R, nValue); - default: - RLV_ASSERT(false); - } - } - else - { - // Couldn't find the exact name, check for a color control name - RlvWindLightControl::EColorComponent eComponent = RlvWindLightControl::getComponentFromCharacter(strRlvName[strRlvName.length() - 1]); - if (RlvWindLightControl::COMPONENT_NONE != eComponent) - itControl = m_ControlLookupMap.find(strRlvName.substr(0, strRlvName.length() - 1)); - if ( (m_ControlLookupMap.end() != itControl) && (itControl->second.isColorType()) ) - return itControl->second.setColorComponent(eComponent, nValue); - } - return false; -} -#endif // [EEPMERGE] +//bool RlvWindLight::setValue(const std::string& strRlvName, const std::string& strValue) +//{ +// F32 nValue = 0.0f; +// // Sanity check - make sure strValue specifies a number for all settings except "preset" and "daycycle" +// if ( (RlvSettings::getNoSetEnv()) || +// ( (!LLStringUtil::convertToF32(strValue, nValue)) && (("preset" != strRlvName) && ("daycycle" != strRlvName)) ) ) +// { +// return false; +// } +// +// LLWLParamManager* pWLParams = LLWLParamManager::getInstance(); +// LLEnvManagerNew* pEnvMgr = LLEnvManagerNew::getInstance(); +// +// if ("daytime" == strRlvName) +// { +// if (0.0f <= nValue) +// { +// pWLParams->mAnimator.deactivate(); +// pWLParams->mAnimator.setDayTime(nValue); +// pWLParams->mAnimator.update(pWLParams->mCurParams); +// } +// else +// { +// pEnvMgr->setUserPrefs(pEnvMgr->getWaterPresetName(), pEnvMgr->getSkyPresetName(), pEnvMgr->getDayCycleName(), false, true); +// } +// return true; +// } +// else if ("preset" == strRlvName) +// { +// std::string strPresetName = pWLParams->findPreset(strValue, LLEnvKey::SCOPE_LOCAL); +// if (!strPresetName.empty()) +// pEnvMgr->useSkyPreset(strPresetName); +// return !strPresetName.empty(); +// } +// else if ("daycycle" == strRlvName) +// { +// std::string strPresetName = LLDayCycleManager::instance().findPreset(strValue); +// if (!strPresetName.empty()) +// pEnvMgr->useDayCycle(strValue, LLEnvKey::SCOPE_LOCAL); +// return !strPresetName.empty(); +// } +// +// bool fError = false; +// pWLParams->mAnimator.deactivate(); +// if (("sunglowfocus" == strRlvName) || ("sunglowsize" == strRlvName)) +// { +// pWLParams->mGlow = pWLParams->mCurParams.getVector(pWLParams->mGlow.mName, fError); +// RLV_ASSERT_DBG(!fError); +// +// if ("sunglowfocus" == strRlvName) +// pWLParams->mGlow.b = -nValue * 5; +// else +// pWLParams->mGlow.r = (2 - nValue) * 20; +// +// pWLParams->mGlow.update(pWLParams->mCurParams); +// pWLParams->propagateParameters(); +// return true; +// } +// else if ("starbrightness" == strRlvName) +// { +// pWLParams->mCurParams.setStarBrightness(nValue); +// return true; +// } +// else if (("eastangle" == strRlvName) || ("sunmoonposition" == strRlvName)) +// { +// if ("eastangle" == strRlvName) +// pWLParams->mCurParams.setEastAngle(F_TWO_PI * nValue); +// else +// pWLParams->mCurParams.setSunAngle(F_TWO_PI * nValue); +// +// // Set the sun vector +// pWLParams->mLightnorm.r = -sin(pWLParams->mCurParams.getEastAngle()) * cos(pWLParams->mCurParams.getSunAngle()); +// pWLParams->mLightnorm.g = sin(pWLParams->mCurParams.getSunAngle()); +// pWLParams->mLightnorm.b = cos(pWLParams->mCurParams.getEastAngle()) * cos(pWLParams->mCurParams.getSunAngle()); +// pWLParams->mLightnorm.i = 1.f; +// +// pWLParams->propagateParameters(); +// return true; +// } +// else if ("cloudscrollx" == strRlvName) +// { +// pWLParams->mCurParams.setCloudScrollX(nValue + 10.0f); +// return true; +// } +// else if ("cloudscrolly" == strRlvName) +// { +// pWLParams->mCurParams.setCloudScrollY(nValue + 10.0f); +// return true; +// } +// +// std::map::iterator itControl = m_ControlLookupMap.find(strRlvName); +// if (m_ControlLookupMap.end() != itControl) +// { +// switch (itControl->second.getControlType()) +// { +// case RlvWindLightControl::TYPE_FLOAT: +// return itControl->second.setFloat(nValue); +// case RlvWindLightControl::TYPE_COLOR_R: +// return itControl->second.setColorComponent(RlvWindLightControl::COMPONENT_R, nValue); +// default: +// RLV_ASSERT(false); +// } +// } +// else +// { +// // Couldn't find the exact name, check for a color control name +// RlvWindLightControl::EColorComponent eComponent = RlvWindLightControl::getComponentFromCharacter(strRlvName[strRlvName.length() - 1]); +// if (RlvWindLightControl::COMPONENT_NONE != eComponent) +// itControl = m_ControlLookupMap.find(strRlvName.substr(0, strRlvName.length() - 1)); +// if ( (m_ControlLookupMap.end() != itControl) && (itControl->second.isColorType()) ) +// return itControl->second.setColorComponent(eComponent, nValue); +// } +// return false; +//} // ============================================================================ @@ -441,27 +439,24 @@ bool RlvExtGetSet::processCommand(const RlvCommand& rlvCmd, ERlvCmdRet& eRet) return true; } } - else if ("env" == strBehaviour) - { - bool fError = false; - if ( ("get" == strGetSet) && (RLV_TYPE_REPLY == rlvCmd.getParamType()) ) - { - // [EEPMERGE] - //RlvUtil::sendChatReply(rlvCmd.getParam(), RlvWindLight::instance().getValue(strSetting, fError)); - eRet = (!fError) ? RLV_RET_SUCCESS : RLV_RET_FAILED_UNKNOWN; - return true; - } - else if ( ("set" == strGetSet) && (RLV_TYPE_FORCE == rlvCmd.getParamType()) ) - { - // [EEPMERGE] - //if (!gRlvHandler.hasBehaviourExcept(RLV_BHVR_SETENV, rlvCmd.getObjectID())) - // eRet = (RlvWindLight::instance().setValue(strSetting, rlvCmd.getOption())) ? RLV_RET_SUCCESS : RLV_RET_FAILED_UNKNOWN; - //else - // eRet = RLV_RET_FAILED_LOCK; - // [/EEPMERGE] - return true; - } - } +// else if ("env" == strBehaviour) +// { +// bool fError = false; +// if ( ("get" == strGetSet) && (RLV_TYPE_REPLY == rlvCmd.getParamType()) ) +// { +// RlvUtil::sendChatReply(rlvCmd.getParam(), RlvWindLight::instance().getValue(strSetting, fError)); +// eRet = (!fError) ? RLV_RET_SUCCESS : RLV_RET_FAILED_UNKNOWN; +// return true; +// } +// else if ( ("set" == strGetSet) && (RLV_TYPE_FORCE == rlvCmd.getParamType()) ) +// { +// if (!gRlvHandler.hasBehaviourExcept(RLV_BHVR_SETENV, rlvCmd.getObjectID())) +// eRet = (RlvWindLight::instance().setValue(strSetting, rlvCmd.getOption())) ? RLV_RET_SUCCESS : RLV_RET_FAILED_UNKNOWN; +// else +// eRet = RLV_RET_FAILED_LOCK; +// return true; +// } +// } } else if ("setrot" == rlvCmd.getBehaviour()) { diff --git a/indra/newview/rlvhandler.cpp b/indra/newview/rlvhandler.cpp index b5cebbf0cc..b3117f4d41 100644 --- a/indra/newview/rlvhandler.cpp +++ b/indra/newview/rlvhandler.cpp @@ -37,7 +37,6 @@ #include "llavataractions.h" // @stopim IM query #include "llavatarnamecache.h" // @shownames #include "llavatarlist.h" // @shownames -// [EEPMERGE] //#include "llenvmanager.h" // @setenv #include "llfloatersidepanelcontainer.h"// @shownames #include "llnotifications.h" // @list IM query @@ -2253,34 +2252,34 @@ void RlvBehaviourToggleHandler::onCommandToggle(ERlvBehaviour } // Handles: @setenv=n|y toggles -template<> template<> -void RlvBehaviourToggleHandler::onCommandToggle(ERlvBehaviour eBhvr, bool fHasBhvr) -{ - const std::string strEnvFloaters[] = { "env_post_process", "env_settings", "env_delete_preset", "env_edit_sky", "env_edit_water", "env_edit_day_cycle" }; - for (int idxFloater = 0, cntFloater = sizeof(strEnvFloaters) / sizeof(std::string); idxFloater < cntFloater; idxFloater++) - { - if (fHasBhvr) - { - // Hide the floater if it's currently visible - LLFloaterReg::const_instance_list_t envFloaters = LLFloaterReg::getFloaterList(strEnvFloaters[idxFloater]); - for (LLFloater* pFloater : envFloaters) - pFloater->closeFloater(); - RlvUIEnabler::instance().addGenericFloaterFilter(strEnvFloaters[idxFloater]); - } - else - { - RlvUIEnabler::instance().removeGenericFloaterFilter(strEnvFloaters[idxFloater]); - } - } - - // Don't allow toggling "Basic Shaders" and/or "Atmopsheric Shaders" through the debug settings under @setenv=n - gSavedSettings.getControl("WindLightUseAtmosShaders")->setHiddenFromSettingsEditor(fHasBhvr); - - // Restore the user's WindLight preferences when releasing - // [EEPMERGE] Use LLEnvironment::loadPreferences()??? - //if (!fHasBhvr) - // LLEnvManagerNew::instance().usePrefs(); -} +//template<> template<> +//void RlvBehaviourToggleHandler::onCommandToggle(ERlvBehaviour eBhvr, bool fHasBhvr) +//{ +// const std::string strEnvFloaters[] = { "env_post_process", "env_settings", "env_delete_preset", "env_edit_sky", "env_edit_water", "env_edit_day_cycle" }; +// for (int idxFloater = 0, cntFloater = sizeof(strEnvFloaters) / sizeof(std::string); idxFloater < cntFloater; idxFloater++) +// { +// if (fHasBhvr) +// { +// // Hide the floater if it's currently visible +// LLFloaterReg::const_instance_list_t envFloaters = LLFloaterReg::getFloaterList(strEnvFloaters[idxFloater]); +// for (LLFloater* pFloater : envFloaters) +// pFloater->closeFloater(); +// RlvUIEnabler::instance().addGenericFloaterFilter(strEnvFloaters[idxFloater]); +// } +// else +// { +// RlvUIEnabler::instance().removeGenericFloaterFilter(strEnvFloaters[idxFloater]); +// } +// } +// +// // Don't allow toggling "Basic Shaders" and/or "Atmopsheric Shaders" through the debug settings under @setenv=n +// gSavedSettings.getControl("VertexShaderEnable")->setHiddenFromSettingsEditor(fHasBhvr); +// gSavedSettings.getControl("WindLightUseAtmosShaders")->setHiddenFromSettingsEditor(fHasBhvr); +// +// // Restore the user's WindLight preferences when releasing +// if (!fHasBhvr) +// LLEnvManagerNew::instance().usePrefs(); +//} // Handles: @showhovertext:=n|y template<> template<> @@ -2403,13 +2402,12 @@ void RlvBehaviourToggleHandler::onCommandToggle(ERlvBehaviou // Force the use of the "display name" cache so we can filter both display and legacy names (or return back to the user's preference) if (fHasBhvr) { - LLAvatarNameCache::getInstance()->setForceDisplayNames(true); + LLAvatarNameCache::instance().setForceDisplayNames(true); } else { - LLAvatarNameCache* inst = LLAvatarNameCache::getInstance(); - inst->setForceDisplayNames(false); - inst->setUseDisplayNames(gSavedSettings.getBOOL("UseDisplayNames")); + LLAvatarNameCache::instance().setForceDisplayNames(false); + LLAvatarNameCache::instance().setUseDisplayNames(gSavedSettings.getBOOL("UseDisplayNames")); } // Refresh all name tags and HUD text diff --git a/indra/newview/rlvhelper.cpp b/indra/newview/rlvhelper.cpp index eedc65c50c..58aa87c680 100644 --- a/indra/newview/rlvhelper.cpp +++ b/indra/newview/rlvhelper.cpp @@ -133,7 +133,7 @@ RlvBehaviourDictionary::RlvBehaviourDictionary() addEntry(new RlvBehaviourGenericProcessor("sendimto", RLV_BHVR_SENDIMTO, RlvBehaviourInfo::BHVR_STRICT)); addEntry(new RlvBehaviourGenericProcessor("sendgesture", RLV_BHVR_SENDGESTURE, RlvBehaviourInfo::BHVR_EXPERIMENTAL)); addEntry(new RlvBehaviourGenericToggleProcessor("setdebug")); - addEntry(new RlvBehaviourGenericToggleProcessor("setenv")); +// addEntry(new RlvBehaviourGenericToggleProcessor("setenv")); addEntry(new RlvBehaviourGenericProcessor("setgroup", RLV_BHVR_SETGROUP)); addEntry(new RlvBehaviourInfo("sharedunwear", RLV_BHVR_SHAREDUNWEAR, RLV_TYPE_ADDREM, RlvBehaviourInfo::BHVR_EXTENDED)); addEntry(new RlvBehaviourInfo("sharedwear", RLV_BHVR_SHAREDWEAR, RLV_TYPE_ADDREM, RlvBehaviourInfo::BHVR_EXTENDED));