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::saveUserPrefs() { gSavedSettings.setString("WaterPresetName", getWaterPresetName()); gSavedSettings.setString("SkyPresetName", getSkyPresetName()); gSavedSettings.setString("DayCycleName", getDayCycleName()); gSavedSettings.setBOOL("UseEnvironmentFromRegion", getUseRegionSettings()); gSavedSettings.setBOOL("UseDayCycle", getUseDayCycle()); mUsePrefsChangeSignal(); }
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> }