void LLEnvManagerNew::onRegionSettingsResponse(const LLSD& content) { // If the message was valid, grab the UUID from it and save it for next outbound update message. mLastReceivedID = content[0]["messageID"].asUUID(); // Refresh cached region settings. LL_DEBUGS("Windlight") << "Caching region environment settings: " << content << LL_ENDL; F32 sun_hour = 0; // *TODO LLEnvironmentSettings new_settings(content[1], content[2], content[3], sun_hour); mCachedRegionPrefs = new_settings; // Load region sky presets. LLWLParamManager::instance().refreshRegionPresets(); // If using server settings, update managers. if (getUseRegionSettings()) { updateManagersFromPrefs(mInterpNextChangeMessage); } // Let interested parties know about the region settings update. mRegionSettingsChangeSignal(); // reset mInterpNextChangeMessage = false; }
void LLEnvManagerNew::updateSkyFromPrefs() { bool success = true; // Sync sky with user prefs. if (getUseRegionSettings()) // apply region-wide settings { success = useRegionSky(); } else // apply user-specified settings { if (getUseDayCycle()) { success = useDayCycle(getDayCycleName(), LLEnvKey::SCOPE_LOCAL); } else { success = useSkyPreset(getSkyPresetName()); } } // If something went wrong, fall back to defaults. if (!success) { // *TODO: fix user prefs useDefaultSky(); } }
void LLEnvManagerNew::onRegionSettingsResponse(const LLSD& content) { // If the message was valid, grab the UUID from it and save it for next outbound update message. mLastReceivedID = content[0]["messageID"].asUUID(); // Refresh cached region settings. LL_DEBUGS("Windlight") << "Caching region environment settings: " << content << LL_ENDL; F32 sun_hour = 0; // *TODO LLEnvironmentSettings new_settings(content[1], content[2], content[3], sun_hour); mCachedRegionPrefs = new_settings; // Load region sky presets. LLWLParamManager::instance()->refreshRegionPresets(); // Use the region settings if parcel settings didnt override it already -KC if (KCWindlightInterface::instance().haveParcelOverride(new_settings)) { // If using server settings, update managers. if (getUseRegionSettings()) { updateManagersFromPrefs(mInterpNextChangeMessage); } //bit of a hacky override since I've repurposed many of the settings and methods here -KC else if (gSavedSettings.getBOOL("UseEnvironmentFromRegionAlways")) { setUseRegionSettings(true, mInterpNextChangeMessage); } } // Let interested parties know about the region settings update. mRegionSettingsChangeSignal(); // reset mInterpNextChangeMessage = false; }
void LLEnvManagerNew::onRegionSettingsResponse(const LLSD& content) { // If the message was valid, grab the UUID from it and save it for next outbound update message. mLastReceivedID = content[0]["messageID"].asUUID(); // Refresh cached region settings. LL_DEBUGS("Windlight") << "Caching region environment settings: " << content << LL_ENDL; F32 sun_hour = 0; // *TODO LLEnvironmentSettings new_settings(content[1], content[2], content[3], sun_hour); mCachedRegionPrefs = new_settings; // Load region sky presets. LLWLParamManager::instance().refreshRegionPresets(); bool bOverridden = M7WindlightInterface::getInstance()->hasOverride(); // If using server settings, update managers. // if (getUseRegionSettings()) // [RLVa:KB] - Checked: 2011-08-29 (RLVa-1.4.1a) | Added: RLVa-1.4.1a if (!bOverridden && (getUseRegionSettings()) && (LLWLParamManager::getInstance()->mAnimator.getIsRunning()) ) // [/RLVa:KB] { updateManagersFromPrefs(mInterpNextChangeMessage); } // Let interested parties know about the region settings update. mRegionSettingsChangeSignal(); // reset if (!gHippoGridManager->getConnectedGrid()->isAurora()) // On Aurora, the region says when to refresh mInterpNextChangeMessage = false; }
void LLEnvManagerNew::updateWaterFromPrefs(bool interpolate) { LLWaterParamManager& water_mgr = LLWaterParamManager::instance(); LLSD target_water_params; // Determine new water settings based on user prefs. { // Fall back to default water. LLWaterParamSet default_water; water_mgr.getParamSet("Default", default_water); target_water_params = default_water.getAll(); // <FS:Ansariel> Quickprefs integration FloaterQuickPrefs::updateParam(QP_PARAM_WATER, LLSD("Default")); } if (getUseRegionSettings()) { // *TODO: make sure whether region settings belong to the current region? const LLSD& region_water_params = getRegionSettings().getWaterParams(); if (region_water_params.size() != 0) // region has no water settings { LL_DEBUGS("Windlight") << "Applying region water" << LL_ENDL; target_water_params = region_water_params; // <FS:Ansariel> Quickprefs integration FloaterQuickPrefs::updateParam(QP_PARAM_WATER, LLSD(PRESET_NAME_REGION_DEFAULT)); } else { LL_DEBUGS("Windlight") << "Applying default water" << LL_ENDL; } } else { std::string water = getWaterPresetName(); LL_DEBUGS("Windlight") << "Applying water preset [" << water << "]" << LL_ENDL; LLWaterParamSet params; if (!water_mgr.getParamSet(water, params)) { LL_WARNS() << "No water preset named " << water << ", falling back to defaults" << LL_ENDL; water_mgr.getParamSet("Default", params); // *TODO: Fix user preferences accordingly. } // <FS:Ansariel> Quickprefs integration else { FloaterQuickPrefs::updateParam(QP_PARAM_WATER, LLSD(water)); } // </FS:Ansariel> Quickprefs integration target_water_params = params.getAll(); } // Sync water with user prefs. water_mgr.applyParams(target_water_params, interpolate); }
void LLEnvManagerNew::saveUserPrefs() { gSavedSettings.setString("WaterPresetName", getWaterPresetName()); gSavedSettings.setString("SkyPresetName", getSkyPresetName()); gSavedSettings.setString("DayCycleName", getDayCycleName()); gSavedSettings.setBOOL("UseEnvironmentFromRegion", getUseRegionSettings()); gSavedSettings.setBOOL("UseDayCycle", getUseDayCycle()); mUsePrefsChangeSignal(); }
void LLEnvManagerNew::updateWaterFromPrefs(bool interpolate) { LLWaterParamManager& water_mgr = LLWaterParamManager::instance(); LLSD target_water_params; // Determine new water settings based on user prefs. { // Fall back to default water. LLWaterParamSet default_water; water_mgr.getParamSet("Default", default_water); target_water_params = default_water.getAll(); } if (getUseRegionSettings()) { // *TODO: make sure whether region settings belong to the current region? const LLSD& region_water_params = getRegionSettings().getWaterParams(); if (region_water_params.size() != 0) // region has no water settings { LL_DEBUGS("Windlight") << "Applying region water" << LL_ENDL; target_water_params = region_water_params; } else { LL_DEBUGS("Windlight") << "Applying default water" << LL_ENDL; } } else { std::string water = getWaterPresetName(); LL_DEBUGS("Windlight") << "Applying water preset [" << water << "]" << LL_ENDL; LLWaterParamSet params; if (!water_mgr.getParamSet(water, params)) { llwarns << "No water preset named " << water << ", falling back to defaults" << llendl; water_mgr.getParamSet("Default", params); // *TODO: Fix user preferences accordingly. } target_water_params = params.getAll(); } // Sync water with user prefs. water_mgr.applyParams(target_water_params, interpolate); }
void LLEnvManagerNew::onRegionSettingsResponse(const LLSD& content) { // If the message was valid, grab the UUID from it and save it for next outbound update message. mLastReceivedID = content[0]["messageID"].asUUID(); // Refresh cached region settings. LL_DEBUGS("Windlight") << "Received region environment settings: " << content << LL_ENDL; F32 sun_hour = 0; // *TODO LLEnvironmentSettings new_settings(content[1], content[2], content[3], sun_hour); mCachedRegionPrefs = new_settings; // Load region sky presets. LLWLParamManager::instance().refreshRegionPresets(); // Use the region settings if parcel settings didnt override it already -KC if (KCWindlightInterface::instance().haveParcelOverride(new_settings)) { // If using server settings, update managers. // if (getUseRegionSettings()) // [RLVa:KB] - Checked: 2011-08-29 (RLVa-1.4.1a) | Added: RLVa-1.4.1a if ( (getUseRegionSettings()) && (LLWLParamManager::getInstance()->mAnimator.getIsRunning()) ) // [/RLVa:KB] { updateManagersFromPrefs(mInterpNextChangeMessage); } //bit of a hacky override since I've repurposed many of the settings and methods here -KC //NOTE* It might not be a good idea to do this if under RLV_BHVR_SETENV -KC else if (gSavedSettings.getBOOL("UseEnvironmentFromRegionAlways") && !(rlv_handler_t::isEnabled() && gRlvHandler.hasBehaviour(RLV_BHVR_SETENV))) { // reset all environmental settings to track the region defaults, make this reset 'sticky' like the other sun settings. setUserPrefs(getWaterPresetName(), getSkyPresetName(), getDayCycleName(), false, true, mInterpNextChangeMessage); } } // Let interested parties know about the region settings update. mRegionSettingsChangeSignal(); // <FS:CR> FIRE-8063: Aurora-sim windlight refresh // reset //mInterpNextChangeMessage = false; // </FS:CR> }