From ba361302a17a7804d330eebec5186dab46d04556 Mon Sep 17 00:00:00 2001 From: epochwon Date: Thu, 8 May 2025 18:08:46 -0400 Subject: [PATCH] cache physics framerate at start instead of checking every update --- apps/openmw/mwsound/soundmanagerimp.cpp | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/apps/openmw/mwsound/soundmanagerimp.cpp b/apps/openmw/mwsound/soundmanagerimp.cpp index f7dff94d1c..3933af1523 100644 --- a/apps/openmw/mwsound/soundmanagerimp.cpp +++ b/apps/openmw/mwsound/soundmanagerimp.cpp @@ -43,6 +43,8 @@ namespace MWSound constexpr float sSfxFadeOutDuration = 1.0f; constexpr float sSoundCullDistance = 2000.f; + float physicsFramerate = 60.f; + WaterSoundUpdaterSettings makeWaterSoundUpdaterSettings() { WaterSoundUpdaterSettings settings; @@ -140,6 +142,13 @@ namespace MWSound return; } + if (const char* env = getenv("OPENMW_PHYSICS_FPS")) + { + if (const auto physFramerate = Misc::StringUtils::toNumeric(env); + physFramerate.has_value() && *physFramerate > 0) + physicsFramerate = *physFramerate; + } + std::vector names = mOutput->enumerate(); std::stringstream stream; @@ -961,14 +970,6 @@ namespace MWSound mUnderwaterSound = nullptr; } - float physicsFramerate = 60.f; - if (const char* env = getenv("OPENMW_PHYSICS_FPS")) - { - if (const auto physFramerate = Misc::StringUtils::toNumeric(env); - physFramerate.has_value() && *physFramerate > 0) - physicsFramerate = *physFramerate; - } - mOutput->startUpdate(); mOutput->updateListener(mListenerPos, mListenerDir, mListenerUp, mListenerVel, env);