diff --git a/libraries/entities/src/EntityItemProperties.cpp b/libraries/entities/src/EntityItemProperties.cpp index 32ac9823f6..51ed66bb23 100644 --- a/libraries/entities/src/EntityItemProperties.cpp +++ b/libraries/entities/src/EntityItemProperties.cpp @@ -228,11 +228,21 @@ const std::array COMPONENT_MODES = { { } }; QString EntityItemProperties::getHazeModeAsString() const { - return COMPONENT_MODES[_hazeMode].second; + // return "inherit" if _hazeMode is not valid + if (_hazeMode < COMPONENT_MODE_ITEM_COUNT) { + return COMPONENT_MODES[_hazeMode].second; + } else { + return COMPONENT_MODES[COMPONENT_MODE_INHERIT].second; + } } QString EntityItemProperties::getHazeModeString(uint32_t mode) { - return COMPONENT_MODES[mode].second; + // return "inherit" if mode is not valid + if (mode < COMPONENT_MODE_ITEM_COUNT) { + return COMPONENT_MODES[mode].second; + } else { + return COMPONENT_MODES[COMPONENT_MODE_INHERIT].second; + } } void EntityItemProperties::setHazeModeFromString(const QString& hazeMode) { diff --git a/libraries/entities/src/ZoneEntityItem.cpp b/libraries/entities/src/ZoneEntityItem.cpp index 077024c3ab..588c1f9386 100644 --- a/libraries/entities/src/ZoneEntityItem.cpp +++ b/libraries/entities/src/ZoneEntityItem.cpp @@ -321,8 +321,10 @@ void ZoneEntityItem::resetRenderingPropertiesChanged() { } void ZoneEntityItem::setHazeMode(const uint32_t value) { - _hazeMode = value; - _hazePropertiesChanged = true; + if (value < COMPONENT_MODE_ITEM_COUNT) { + _hazeMode = value; + _hazePropertiesChanged = true; + } } uint32_t ZoneEntityItem::getHazeMode() const { diff --git a/libraries/entities/src/ZoneEntityItem.h b/libraries/entities/src/ZoneEntityItem.h index 066bd5518f..ddbb2ed914 100644 --- a/libraries/entities/src/ZoneEntityItem.h +++ b/libraries/entities/src/ZoneEntityItem.h @@ -138,6 +138,8 @@ public: static const bool DEFAULT_GHOSTING_ALLOWED; static const QString DEFAULT_FILTER_URL; + static const uint32_t DEFAULT_HAZE_MODE{ (uint32_t)COMPONENT_MODE_INHERIT }; + protected: KeyLightPropertyGroup _keyLightProperties; @@ -146,7 +148,7 @@ protected: BackgroundMode _backgroundMode = BACKGROUND_MODE_INHERIT; - uint8_t _hazeMode{ (uint8_t)COMPONENT_MODE_INHERIT }; + uint32_t _hazeMode{ DEFAULT_HAZE_MODE }; float _hazeRange{ HazePropertyGroup::DEFAULT_HAZE_RANGE }; xColor _hazeColor{ HazePropertyGroup::DEFAULT_HAZE_COLOR }; diff --git a/libraries/model/src/model/Stage.cpp b/libraries/model/src/model/Stage.cpp index 75a94f0cea..cd2312122c 100644 --- a/libraries/model/src/model/Stage.cpp +++ b/libraries/model/src/model/Stage.cpp @@ -13,6 +13,7 @@ #include #include #include +#include using namespace model; @@ -256,8 +257,9 @@ void SunSkyStage::setSkybox(const SkyboxPointer& skybox) { invalidate(); } -// Haze -void SunSkyStage::setHazeMode(uint32_t mode) { - _hazeMode = mode; - invalidate(); +void SunSkyStage::setHazeMode(uint32_t hazeMode) { + if (hazeMode < COMPONENT_MODE_ITEM_COUNT) { + _hazeMode = hazeMode; + invalidate(); + } }