diff --git a/components/sceneutil/shadow.cpp b/components/sceneutil/shadow.cpp index 6e45bdd22..6c71a9c0f 100644 --- a/components/sceneutil/shadow.cpp +++ b/components/sceneutil/shadow.cpp @@ -123,10 +123,15 @@ namespace SceneUtil } void ShadowManager::enableIndoorMode() { - mShadowSettings->setCastsShadowTraversalMask(mIndoorShadowCastingMask); + if (Settings::Manager::getBool("enable indoor shadows", "Shadows")) + mShadowSettings->setCastsShadowTraversalMask(mIndoorShadowCastingMask); + else + mShadowTechnique->disableShadows(); } void ShadowManager::enableOutdoorMode() { + if (mEnableShadows) + mShadowTechnique->enableShadows(); mShadowSettings->setCastsShadowTraversalMask(mOutdoorShadowCastingMask); } } diff --git a/docs/source/reference/modding/settings/shadows.rst b/docs/source/reference/modding/settings/shadows.rst index 34d484925..b88df8942 100644 --- a/docs/source/reference/modding/settings/shadows.rst +++ b/docs/source/reference/modding/settings/shadows.rst @@ -121,7 +121,16 @@ object shadows Allow static objects to cast shadows. Potentially decreases performance. +enable indoor shadows +--------------------- + +:Type: boolean +:Range: True/False +:Default: False +Allow shadows indoors. +Due to limitations with Morrowind's data, only actors can cast shadows indoors without the ceiling casting a shadow everywhere. +Some might feel this is distracting as shadows can be cast through other objects, so indoor shadows can be disabled completely. Expert settings *************** diff --git a/files/settings-default.cfg b/files/settings-default.cfg index 41063929e..21af22566 100644 --- a/files/settings-default.cfg +++ b/files/settings-default.cfg @@ -549,3 +549,5 @@ player shadows = false terrain shadows = false # Allow world objects to cast shadows. Potentially decreases performance. object shadows = false +# Allow shadows indoors. Due to limitations with Morrowind's data, only actors can cast shadows indoors, which some might feel is distracting. +enable indoor shadows = true \ No newline at end of file