summaryrefslogtreecommitdiff
path: root/indra/newview/llwlparammanager.cpp
diff options
context:
space:
mode:
authorVadim ProductEngine <vsavchuk@productengine.com>2011-05-16 17:17:22 +0300
committerVadim ProductEngine <vsavchuk@productengine.com>2011-05-16 17:17:22 +0300
commit912f021bb11ef48f352ea85cca27c2bca6ca06b1 (patch)
tree422165b7f4e2d7e3ad8a4821edc56158a0c80170 /indra/newview/llwlparammanager.cpp
parentcccca566bd2365c88cca819729c5432af9dfa52f (diff)
STORM-1245 WIP Implement loading and applying region environment settings.
Diffstat (limited to 'indra/newview/llwlparammanager.cpp')
-rw-r--r--indra/newview/llwlparammanager.cpp28
1 files changed, 19 insertions, 9 deletions
diff --git a/indra/newview/llwlparammanager.cpp b/indra/newview/llwlparammanager.cpp
index 43f0cdae93..4431b3f5c0 100644
--- a/indra/newview/llwlparammanager.cpp
+++ b/indra/newview/llwlparammanager.cpp
@@ -583,23 +583,33 @@ void LLWLParamManager::update(LLViewerCamera * cam)
void LLWLParamManager::applyUserPrefs()
{
LL_DEBUGS("Windlight") << "Applying sky prefs" << LL_ENDL;
+ clearParamSetsOfScope(LLEnvKey::SCOPE_REGION);
if (LLEnvManagerNew::instance().getUseRegionSettings()) // apply region-wide settings
{
- llwarns << "Using region settings has not been implemented" << llendl;
+ // *TODO: Support fixed sky from region.
+ LL_DEBUGS("Windlight") << "Applying region sky" << LL_ENDL;
+
+ const LLEnvironmentSettings& region_settings = LLEnvManagerNew::instance().getRegionSettings();
+
+ if (0) // *TODO: interpolate?
+ {
+ mAnimator.startInterpolation(region_settings.getWaterParams());
+ }
+
+ addAllSkies(LLEnvKey::SCOPE_REGION, region_settings.getSkyMap());
+ mDay.loadDayCycle(region_settings.getWLDayCycle(), LLEnvKey::SCOPE_REGION);
+ resetAnimator(region_settings.getDayTime(), true);
}
else // apply user-specified settings
{
- bool use_day_cycle = LLEnvManagerNew::instance().getUseDayCycle();
+ // Load day cycle anyway so that we can switch to it from a fixed sky.
+ LL_DEBUGS("Windlight") << "Loading day cycle " << LLEnvManagerNew::instance().getDayCycleName() << LL_ENDL;
+ mDay.loadDayCycleFromFile(LLEnvManagerNew::instance().getDayCycleName() + ".xml");
- if (use_day_cycle)
- {
- LL_DEBUGS("Windlight") << "Loading day cycle " << LLEnvManagerNew::instance().getDayCycleName() << LL_ENDL;
- mDay.loadDayCycleFromFile(LLEnvManagerNew::instance().getDayCycleName() + ".xml");
- }
- else
+ bool use_day_cycle = LLEnvManagerNew::instance().getUseDayCycle();
+ if (!use_day_cycle) // if we should use fixed sky
{
- // *HACK - sets cloud scrolling to what we want... fix this better in the future
std::string sky = LLEnvManagerNew::instance().getSkyPresetName();
LL_DEBUGS("Windlight") << "Loading fixed sky " << sky << LL_ENDL;
getParamSet(LLWLParamKey(sky, LLWLParamKey::SCOPE_LOCAL), mCurParams);