diff options
| author | Rider Linden <rider@lindenlab.com> | 2019-02-14 16:19:39 -0800 | 
|---|---|---|
| committer | Rider Linden <rider@lindenlab.com> | 2019-02-14 16:19:39 -0800 | 
| commit | 2108d5ee38a955f140f40aa71705aa04e4487362 (patch) | |
| tree | 462a064ab0b2cd93a6080a7defd48dfb74d847ec /indra | |
| parent | e9777048751c73819e85257a6e7b0d0608fd6c39 (diff) | |
SL-10464: A couple last fixes dealing with region crossings.  Environment Experiences are still stripped when changing regions.  Even if destination region participates in the experience.
Diffstat (limited to 'indra')
| -rw-r--r-- | indra/newview/llenvironment.cpp | 22 | ||||
| -rw-r--r-- | indra/newview/skins/default/xui/en/panel_settings_sky_sunmoon.xml | 23 | 
2 files changed, 43 insertions, 2 deletions
diff --git a/indra/newview/llenvironment.cpp b/indra/newview/llenvironment.cpp index 425ce6363d..4bf7a630a5 100644 --- a/indra/newview/llenvironment.cpp +++ b/indra/newview/llenvironment.cpp @@ -358,7 +358,14 @@ namespace          virtual ~LLSettingsInjected() {};          typename SETTINGT::ptr_t getSource() const                    { return this->mSource; } -        void setSource(const typename SETTINGT::ptr_t &source)        { this->mSource = source; this->setDirtyFlag(true); this->mLastSourceHash = 0; } +        void setSource(const typename SETTINGT::ptr_t &source)         +        { +            if (source.get() == this) // do not set a source to itself. +                return; +            this->mSource = source;  +            this->setDirtyFlag(true);  +            this->mLastSourceHash = 0;  +        }          virtual bool isDirty() const override { return SETTINGT::isDirty() || (this->mSource->isDirty()); }          virtual bool isVeryDirty() const override { return SETTINGT::isVeryDirty() || (this->mSource->isVeryDirty()); } @@ -974,8 +981,11 @@ bool LLEnvironment::isInventoryEnabled() const  void LLEnvironment::onRegionChange()  { -    // TODO: Use test experiences rather than full clear. +//     if (gAgent.getRegionCapability("ExperienceQuery").empty()) +//     { +//     // for now environmental experiences do not survive region crossings      clearExperienceEnvironment(LLUUID::null, TRANSITION_DEFAULT); +//     }      LLViewerRegion* cur_region = gAgent.getRegion();      if (!cur_region) @@ -2971,6 +2981,10 @@ namespace      void DayInjection::animateSkyChange(LLSettingsSky::ptr_t psky, LLSettingsBase::Seconds transition)      { +        if (mInjectedSky.get() == psky.get()) +        {   // An attempt to animate to itself... don't do it. +            return; +        }          if (transition == LLEnvironment::TRANSITION_INSTANT)          {              mBlenderSky.reset(); @@ -3000,6 +3014,10 @@ namespace      void DayInjection::animateWaterChange(LLSettingsWater::ptr_t pwater, LLSettingsBase::Seconds transition)      { +        if (mInjectedWater.get() == pwater.get()) +        {   // An attempt to animate to itself. Bad idea. +            return; +        }          if (transition == LLEnvironment::TRANSITION_INSTANT)          {               mBlenderWater.reset(); diff --git a/indra/newview/skins/default/xui/en/panel_settings_sky_sunmoon.xml b/indra/newview/skins/default/xui/en/panel_settings_sky_sunmoon.xml index 2aab41c5a0..bbba5ba729 100644 --- a/indra/newview/skins/default/xui/en/panel_settings_sky_sunmoon.xml +++ b/indra/newview/skins/default/xui/en/panel_settings_sky_sunmoon.xml @@ -176,6 +176,18 @@                      top_delta="15"                      width="250"                      can_edit_text="true"/> +                     +            <check_box +                    control_name="sunbeacon" +                    width="60" +                    height="16" +                    label="Show Beacon" +                    layout="topleft" +                    name="sunbeacon"  +                    right="-50" +                    bottom="-10" +                    follows="bottom|right"/> +                              </layout_panel>          <layout_panel                  border="false" @@ -287,6 +299,17 @@                              top_delta="15"                              width="130"                              can_edit_text="true"/> +                <check_box +                        control_name="moonbeacon" +                        width="60" +                        height="16" +                        label="Show Beacon" +                        layout="topleft" +                        name="moonbeacon"  +                        right="-50" +                        bottom="-10" +                        follows="bottom|right"/> +                                              </layout_panel>              </layout_stack>          </layout_panel>  | 
