FIRE-14124: Fix some more occurances where the sun position check mark in the main menu gets broken

Ansariel 2014-07-18 10:20:01 +02:00
parent 55ff1c1b31
commit 287a8b0d3b
4 changed files with 27 additions and 7 deletions

View File

@ -347,7 +347,11 @@ void LLEnvManagerNew::setUserPrefs(
const std::string& sky_preset,
const std::string& day_cycle_preset,
bool use_fixed_sky,
bool use_region_settings)
// <FS:Ansariel> Allow interpolation
//bool use_region_settings)
bool use_region_settings,
bool interpolate)
// </FS:Ansariel>
{
// operate on members directly to avoid side effects
mUserPrefs.mWaterPresetName = water_preset;
@ -358,7 +362,10 @@ void LLEnvManagerNew::setUserPrefs(
mUserPrefs.mUseDayCycle = !use_fixed_sky;
saveUserPrefs();
updateManagersFromPrefs(false);
// <FS:Ansariel> Allow interpolation
//updateManagersFromPrefs(false);
updateManagersFromPrefs(interpolate);
// </FS:Ansariel>
}
void LLEnvManagerNew::dumpUserPrefs()
@ -509,9 +516,10 @@ void LLEnvManagerNew::onRegionSettingsResponse(const LLSD& content)
//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)))
&& !(rlv_handler_t::isEnabled() && gRlvHandler.hasBehaviour(RLV_BHVR_SETENV)))
{
setUseRegionSettings(true, mInterpNextChangeMessage);
// 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);
}
}

View File

@ -213,7 +213,11 @@ public:
const std::string& sky_preset,
const std::string& day_cycle_preset,
bool use_fixed_sky,
bool use_region_settings);
// <FS:Ansariel> Allow interpolation
//bool use_region_settings);
bool use_region_settings,
bool interpolate = false);
// </FS:Ansariel>
// debugging methods
void dumpUserPrefs();

View File

@ -10045,7 +10045,7 @@ class LLWorldEnvSettings : public view_listener_t
envmgr.setUserPrefs(envmgr.getWaterPresetName(),
envmgr.getSkyPresetName(),
envmgr.getDayCycleName(),
use_fixed_sky, use_region_settings);
use_fixed_sky, use_region_settings, false);
}
return true;

View File

@ -553,7 +553,15 @@ void FloaterQuickPrefs::selectDayCyclePreset(const std::string& preset_name)
void FloaterQuickPrefs::onChangeUseRegionWindlight()
{
LLEnvManagerNew::instance().setUseRegionSettings(mUseRegionWindlight->get(), (gSavedSettings.getBOOL("FSInterpolateSky") || gSavedSettings.getBOOL("FSInterpolateWater")));
LLEnvManagerNew &envmgr = LLEnvManagerNew::instance();
// reset all environmental settings to track the region defaults, make this reset 'sticky' like the other sun settings.
bool use_fixed_sky = !mUseRegionWindlight->get();
bool use_region_settings = !use_fixed_sky;
envmgr.setUserPrefs(envmgr.getWaterPresetName(),
envmgr.getSkyPresetName(),
envmgr.getDayCycleName(),
use_fixed_sky, use_region_settings,
(gSavedSettings.getBOOL("FSInterpolateSky") || gSavedSettings.getBOOL("FSInterpolateWater")));
}
void FloaterQuickPrefs::onChangeWaterPreset()