LLWLAnimator stores a std::map<F32, LLWLParamKey>. But llwlanimator.h only
forward-declared LLWLParamKey, begging the question of how this ever compiled
on any previous platform.
LLWLParamKey was declared for real in llwlparammanager.h, so the obvious fix
is to #include "llwlparammanager.h" in llwlanimator.h. Unfortunately this
doesn't work because llwlparammanager.h already #includes "llwlanimator.h".
As the dependency is specifically on LLWLParamKey, which isa LLEnvKey, which
is declared in llenvmanager.h, move LLWLParamKey to llenvmanager.h. Then we
can #include "llenvmanager.h" in llwlanimator.h instead of merely forward-
declaring LLWLParamKey.
This migration compiles LLWLParamKey in a context in which LLTrans isn't
visible. It's not really clear why all LLWLParamKey's methods are inline, but
toString() -- the method that requires LLTrans -- isn't going to be fast in
any case. Break toString() out to llenvmanager.cpp, and #include "lltrans.h"
there.
* Added checkbox that will show if region windlight settings are used and can also enable/disable usage of them
* Added combobox for day cycle presets
* The sky preset combobox will show "Day cycle based", if the current sky preset is defined by the selected day cycle and time of day
* The sky preset combobox will show "Region default", if the current sky preset is based on region windlight
* The water preset combobox will show "Region default", if the current water preset is based on region windlight
* The day cycle combobox will show "Region default", if the current day cycle preset is based on region windlight
* The day cycle combobox will show "None", if no day cycle preset is active (if a sky preset is chosen)
* Changing either sky, water or day cycle preset will disable region windlight and persist as user setting
* The slider will either change day of time (day cycle active) or sun position (sky preset chosen)
* Reset to region defaults button will reset sky and water to region defaults, but not enable region windlight and not persist
(not doing so would disallow us from changing either sky or water)
* Disabling region windlight will load previously chosen sky, water and day cycle preset (this is intentional because of the implementation of the basic Windlight functionality)
Changes:
* Subscribed the floater to the "settings changed" signal of the environment manager.
* Rewrote the floater to not modify settings only when the Save button is pressed.
* Refactoring to eliminate code duplication.
Was: Press "Save" after editing the region day cycle in the Day Cycle Editor.
Now:
- Press "Save" in the Day Cycle Editor.
- Open Region / Estate -> Environment tab.
- Select the region day cycle.
- Press "Apply".
Done:
* Creating new local day cycles.
* Editing existing local day cycles.
* Deleting day cycles.
To do:
* Editing region day cycle, dealing with skies in region scope.
* Handle teleport while editing a day cycle.
* Update UI when a day cycle or sky preset gets deleted.
* Make the time ctrl increase/decrease consistently.