From fbd8a98300277bdbc1885c25eea290560fd8c6c1 Mon Sep 17 00:00:00 2001 From: Rider Linden Date: Thu, 25 Jan 2018 17:21:25 -0800 Subject: Selects correct day cycle. Fix an error validating legacy daycycles. --- indra/llinventory/llparcel.cpp | 10 ++++++++++ indra/llinventory/llparcel.h | 20 ++++++++++++-------- indra/llinventory/llsettingsdaycycle.cpp | 3 +-- 3 files changed, 23 insertions(+), 10 deletions(-) (limited to 'indra/llinventory') diff --git a/indra/llinventory/llparcel.cpp b/indra/llinventory/llparcel.cpp index f53ef5e0ff..411c35ed6b 100644 --- a/indra/llinventory/llparcel.cpp +++ b/indra/llinventory/llparcel.cpp @@ -236,6 +236,7 @@ void LLParcel::init(const LLUUID &owner_id, mDayOffset = S64Seconds(LLSettingsDay::DEFAULT_DAYOFFSET); mIsDefaultDayCycle = true; mDayCycle.reset(); + mDayCycleHash = 0; } void LLParcel::overrideOwner(const LLUUID& owner_id, BOOL is_group_owned) @@ -1272,3 +1273,12 @@ U32 LLParcel::countExperienceKeyType( U32 type ) boost::end(mExperienceKeys | boost::adaptors::map_values), std::bind2nd(std::equal_to(), type)); } + +void LLParcel::clearParcelDayCycleInfo() +{ + mDayLength = S64Seconds(LLSettingsDay::DEFAULT_DAYLENGTH); + mDayOffset = S64Seconds(LLSettingsDay::DEFAULT_DAYOFFSET); + mIsDefaultDayCycle = true; + mDayCycle.reset(); + mDayCycleHash = 0; +} diff --git a/indra/llinventory/llparcel.h b/indra/llinventory/llparcel.h index 7b4647cc5f..6bbd5a949d 100644 --- a/indra/llinventory/llparcel.h +++ b/indra/llinventory/llparcel.h @@ -591,14 +591,17 @@ public: BOOL getPreviouslyGroupOwned() const { return mPreviouslyGroupOwned; } BOOL getSellWithObjects() const { return (mParcelFlags & PF_SELL_PARCEL_OBJECTS) ? TRUE : FALSE; } - S64Seconds getDayLength() const { return mDayLength; } - void setDayLength(S64SecondsImplicit seconds) { mDayLength = seconds; } - S64Seconds getDayOffset() const { return mDayOffset; } - void setDayOffset(S64SecondsImplicit seconds) { mDayOffset = seconds; } - bool getUsesDefaultDayCycle() const { return mIsDefaultDayCycle; } - void setUsesDefaultDayCycle(bool isdefault) { mIsDefaultDayCycle = isdefault; } - LLSettingsDay::ptr_t getParcelDayCycle() const { return mDayCycle; } - void setParcelDayCycle(const LLSettingsDay::ptr_t &pday) { mDayCycle = pday; } + S64Seconds getDayLength() const { return mDayLength; } + void setDayLength(S64SecondsImplicit seconds) { mDayLength = seconds; } + S64Seconds getDayOffset() const { return mDayOffset; } + void setDayOffset(S64SecondsImplicit seconds) { mDayOffset = seconds; } + bool getUsesDefaultDayCycle() const { return mIsDefaultDayCycle; } + void setUsesDefaultDayCycle(bool isdefault) { mIsDefaultDayCycle = isdefault; } + LLSettingsDay::ptr_t getParcelDayCycle() const { return mDayCycle; } + void setParcelDayCycle(const LLSettingsDay::ptr_t &pday) { mDayCycle = pday; } + size_t getParcelDayCycleHash() const { return mDayCycleHash; } + void setParcelDayCycleHash(size_t hash) { mDayCycleHash = hash; } + void clearParcelDayCycleInfo(); protected: LLUUID mID; @@ -678,6 +681,7 @@ protected: S64Seconds mDayOffset; bool mIsDefaultDayCycle; LLSettingsDay::ptr_t mDayCycle; + size_t mDayCycleHash; public: // HACK, make private diff --git a/indra/llinventory/llsettingsdaycycle.cpp b/indra/llinventory/llsettingsdaycycle.cpp index c7d5c35c60..1b992ff313 100644 --- a/indra/llinventory/llsettingsdaycycle.cpp +++ b/indra/llinventory/llsettingsdaycycle.cpp @@ -376,12 +376,12 @@ namespace LLSD frame = (*itf).second; std::string ftype = frame[LLSettingsBase::SETTING_TYPE]; + LL_WARNS("LAPRAS") << "Validating frame: " << frame << LL_ENDL; if (ftype == "sky") { LLSettingsSky::validation_list_t valid_sky = LLSettingsSky::validationList(); LLSD res_sky = LLSettingsSky::settingValidation(frame, valid_sky); LL_WARNS("SETTINGS") << "'" << (*itf).first << "' res=" << res_sky << LL_ENDL; - //_WARNS("SETTINGS") << "success=" << res_sky["success"].asBoolean() << "(" << res_sky["success"].asInteger() << ") res=" << res_sky << LL_ENDL; if (res_sky["success"].asInteger() == 0) { @@ -396,7 +396,6 @@ namespace LLSettingsWater::validation_list_t valid_h2o = LLSettingsWater::validationList(); LLSD res_h2o = LLSettingsWater::settingValidation(frame, valid_h2o); LL_WARNS("SETTINGS") << "'" << (*itf).first << "' res=" << res_h2o << LL_ENDL; - //_WARNS("SETTINGS") << "success=" << res_h2o["success"].asBoolean() << LL_ENDL; if (res_h2o["success"].asInteger() == 0) { LL_WARNS("SETTINGS") << "Water setting named '" << (*itf).first << "' validation failed!: " << res_h2o << LL_ENDL; -- cgit v1.2.3