diff --git a/apps/openmw/engine.cpp b/apps/openmw/engine.cpp index 11be29e4ec..adef6d62ea 100644 --- a/apps/openmw/engine.cpp +++ b/apps/openmw/engine.cpp @@ -778,16 +778,21 @@ void OMW::Engine::prepareEngine() mEnvironment.setWorldScene(mWorld->getWorldScene()); const MWWorld::Store* gmst = &mWorld->getStore().get(); - mL10nManager->setGmstLoader([gmst](std::string_view gmstName) { - const ESM::GameSetting* res = gmst->search(gmstName); - if (res && res->mValue.getType() == ESM::VT_String) - return res->mValue.getString(); - else - { - Log(Debug::Error) << "GMST " << gmstName << " not found"; - return std::string("GMST:") + std::string(gmstName); - } - }); + mL10nManager->setGmstLoader( + [gmst, misses = std::set>()](std::string_view gmstName) mutable { + const ESM::GameSetting* res = gmst->search(gmstName); + if (res && res->mValue.getType() == ESM::VT_String) + return res->mValue.getString(); + else + { + if (misses.count(gmstName) == 0) + { + misses.emplace(gmstName); + Log(Debug::Error) << "GMST " << gmstName << " not found"; + } + return std::string("GMST:") + std::string(gmstName); + } + }); mWindowManager->setStore(mWorld->getStore()); mWindowManager->initUI();