diff --git a/apps/openmw/mwrender/renderingmanager.cpp b/apps/openmw/mwrender/renderingmanager.cpp index 4a781a4720..7fa0b40fc3 100644 --- a/apps/openmw/mwrender/renderingmanager.cpp +++ b/apps/openmw/mwrender/renderingmanager.cpp @@ -414,13 +414,11 @@ namespace MWRender globalDefines[itr->first] = itr->second; // Refactor this at some point - most shaders don't care about these defines - float groundcoverDistance = std::max(0.f, Settings::Manager::getFloat("rendering distance", "Groundcover")); + const float groundcoverDistance = Settings::groundcover().mRenderingDistance; globalDefines["groundcoverFadeStart"] = std::to_string(groundcoverDistance * 0.9f); globalDefines["groundcoverFadeEnd"] = std::to_string(groundcoverDistance); - globalDefines["groundcoverStompMode"] - = std::to_string(std::clamp(Settings::Manager::getInt("stomp mode", "Groundcover"), 0, 2)); - globalDefines["groundcoverStompIntensity"] - = std::to_string(std::clamp(Settings::Manager::getInt("stomp intensity", "Groundcover"), 0, 2)); + globalDefines["groundcoverStompMode"] = std::to_string(Settings::groundcover().mStompMode); + globalDefines["groundcoverStompIntensity"] = std::to_string(Settings::groundcover().mStompIntensity); globalDefines["reverseZ"] = reverseZ ? "1" : "0"; @@ -1327,7 +1325,7 @@ namespace MWRender RenderingManager::WorldspaceChunkMgr newChunkMgr; const float lodFactor = Settings::Manager::getFloat("lod factor", "Terrain"); - bool groundcover = Settings::Manager::getBool("enabled", "Groundcover"); + const bool groundcover = Settings::groundcover().mEnabled; bool distantTerrain = Settings::Manager::getBool("distant terrain", "Terrain"); if (distantTerrain || groundcover) { @@ -1350,10 +1348,8 @@ namespace MWRender } if (groundcover) { - float groundcoverDistance - = std::max(0.f, Settings::Manager::getFloat("rendering distance", "Groundcover")); - float density = Settings::Manager::getFloat("density", "Groundcover"); - density = std::clamp(density, 0.f, 1.f); + const float groundcoverDistance = Settings::groundcover().mRenderingDistance; + const float density = Settings::groundcover().mDensity; newChunkMgr.mGroundcover = std::make_unique( mResourceSystem->getSceneManager(), density, groundcoverDistance, mGroundCoverStore); diff --git a/apps/openmw/mwworld/worldimp.cpp b/apps/openmw/mwworld/worldimp.cpp index 3f246628cc..d0e8ab2301 100644 --- a/apps/openmw/mwworld/worldimp.cpp +++ b/apps/openmw/mwworld/worldimp.cpp @@ -2892,7 +2892,7 @@ namespace MWWorld void World::loadGroundcoverFiles(const Files::Collections& fileCollections, const std::vector& groundcoverFiles, ToUTF8::Utf8Encoder* encoder, Loading::Listener* listener) { - if (!Settings::Manager::getBool("enabled", "Groundcover")) + if (!Settings::groundcover().mEnabled) return; Log(Debug::Info) << "Loading groundcover:";