diff options
Diffstat (limited to 'indra/llinventory')
| -rw-r--r-- | indra/llinventory/llsettingsbase.cpp | 6 | ||||
| -rw-r--r-- | indra/llinventory/llsettingsbase.h | 2 | ||||
| -rw-r--r-- | indra/llinventory/llsettingssky.cpp | 11 | 
3 files changed, 11 insertions, 8 deletions
diff --git a/indra/llinventory/llsettingsbase.cpp b/indra/llinventory/llsettingsbase.cpp index d483b33288..d7a94d61a5 100644 --- a/indra/llinventory/llsettingsbase.cpp +++ b/indra/llinventory/llsettingsbase.cpp @@ -361,14 +361,12 @@ LLSD LLSettingsBase::interpolateSDValue(const std::string& key_name, const LLSD                  new_array = q.getValue();              }              else -            {   // TODO: We could expand this to inspect the type and do a deep lerp based on type. -                // for now assume a heterogeneous array of reals. +            {                  size_t len = std::max(value.size(), other_value.size());                  for (size_t i = 0; i < len; ++i)                  { - -                    new_array[i] = lerp((F32)value[i].asReal(), (F32)other_value[i].asReal(), (F32)mix); +                    new_array[i] = interpolateSDValue(key_name, value[i], other_value[i], defaults, mix, skip, slerps);                  }              } diff --git a/indra/llinventory/llsettingsbase.h b/indra/llinventory/llsettingsbase.h index 7de71588ef..bea6fdec97 100644 --- a/indra/llinventory/llsettingsbase.h +++ b/indra/llinventory/llsettingsbase.h @@ -398,7 +398,7 @@ protected:  private:      bool        mLLSDDirty; -    bool        mDirty; +    bool        mDirty; // gates updateSettings      bool        mReplaced; // super dirty!      static LLSD combineSDMaps(const LLSD &first, const LLSD &other); diff --git a/indra/llinventory/llsettingssky.cpp b/indra/llinventory/llsettingssky.cpp index ff28c30563..4957cf3c02 100644 --- a/indra/llinventory/llsettingssky.cpp +++ b/indra/llinventory/llsettingssky.cpp @@ -657,15 +657,16 @@ void LLSettingsSky::blend(LLSettingsBase::ptr_t &end, F64 blendf)          mHasLegacyHaze |= lerp_legacy_float(mHazeDensity, mLegacyHazeDensity, other->mHazeDensity, other->mLegacyHazeDensity, 0.7f, (F32)blendf);          mHasLegacyHaze |= lerp_legacy_float(mDistanceMultiplier, mLegacyDistanceMultiplier, other->mDistanceMultiplier, other->mLegacyDistanceMultiplier, 0.8f, (F32)blendf);          mHasLegacyHaze |= lerp_legacy_float(mDensityMultiplier, mLegacyDensityMultiplier, other->mDensityMultiplier, other->mLegacyDensityMultiplier, 0.0001f, (F32)blendf); +        mHasLegacyHaze |= lerp_legacy_color(mAmbientColor, mLegacyAmbientColor, other->mAmbientColor, other->mLegacyAmbientColor, LLColor3(0.25f, 0.25f, 0.25f), (F32)blendf);          mHasLegacyHaze |= lerp_legacy_color(mBlueHorizon, mLegacyBlueHorizon, other->mBlueHorizon, other->mLegacyBlueHorizon, LLColor3(0.4954f, 0.4954f, 0.6399f), (F32)blendf);          mHasLegacyHaze |= lerp_legacy_color(mBlueDensity, mLegacyBlueDensity, other->mBlueDensity, other->mLegacyBlueDensity, LLColor3(0.2447f, 0.4487f, 0.7599f), (F32)blendf);          parammapping_t defaults = other->getParameterMap();          stringset_t skip = getSkipInterpolateKeys();          stringset_t slerps = getSlerpKeys(); -        mAbsorptionConfigs = interpolateSDMap(mAbsorptionConfigs, other->mAbsorptionConfigs, defaults, blendf, skip, slerps); -        mMieConfigs = interpolateSDMap(mMieConfigs, other->mMieConfigs, defaults, blendf, skip, slerps); -        mRayleighConfigs = interpolateSDMap(mRayleighConfigs, other->mRayleighConfigs, defaults, blendf, skip, slerps); +        mAbsorptionConfigs = interpolateSDValue("absorption_config", mAbsorptionConfigs, other->mAbsorptionConfigs, defaults, blendf, skip, slerps); +        mMieConfigs = interpolateSDValue("mie_config", mMieConfigs, other->mMieConfigs, defaults, blendf, skip, slerps); +        mRayleighConfigs = interpolateSDValue("rayleigh_config", mRayleighConfigs, other->mRayleighConfigs, defaults, blendf, skip, slerps);          setDirtyFlag(true);          setReplaced(); @@ -1932,6 +1933,7 @@ LLUUID LLSettingsSky::getCloudNoiseTextureId() const  void LLSettingsSky::setCloudNoiseTextureId(const LLUUID &id)  {      mCloudTextureId = id; +    setDirtyFlag(true);      setLLSDDirty();  } @@ -1976,6 +1978,7 @@ LLVector2 LLSettingsSky::getCloudScrollRate() const  void LLSettingsSky::setCloudScrollRate(const LLVector2 &val)  {      mScrollRate = val; +    setDirtyFlag(true);      setLLSDDirty();  } @@ -2134,6 +2137,7 @@ LLUUID LLSettingsSky::getMoonTextureId() const  void LLSettingsSky::setMoonTextureId(LLUUID id)  {      mMoonTextureId = id; +    setDirtyFlag(true);      setLLSDDirty();  } @@ -2218,6 +2222,7 @@ LLUUID LLSettingsSky::getSunTextureId() const  void LLSettingsSky::setSunTextureId(LLUUID id)  {      mSunTextureId = id; +    setDirtyFlag(true);      setLLSDDirty();  }  | 
