1
0
mirror of https://gitlab.com/OpenMW/openmw.git synced 2025-02-22 21:40:42 +00:00

Log the message "GMST ... not found" only once for each missing l10n GMST

This commit is contained in:
Petr Mikheev 2023-04-05 22:47:15 +02:00
parent 2b59c71333
commit 2838071751

View File

@ -778,16 +778,21 @@ void OMW::Engine::prepareEngine()
mEnvironment.setWorldScene(mWorld->getWorldScene()); mEnvironment.setWorldScene(mWorld->getWorldScene());
const MWWorld::Store<ESM::GameSetting>* gmst = &mWorld->getStore().get<ESM::GameSetting>(); const MWWorld::Store<ESM::GameSetting>* gmst = &mWorld->getStore().get<ESM::GameSetting>();
mL10nManager->setGmstLoader([gmst](std::string_view gmstName) { mL10nManager->setGmstLoader(
const ESM::GameSetting* res = gmst->search(gmstName); [gmst, misses = std::set<std::string, std::less<>>()](std::string_view gmstName) mutable {
if (res && res->mValue.getType() == ESM::VT_String) const ESM::GameSetting* res = gmst->search(gmstName);
return res->mValue.getString(); if (res && res->mValue.getType() == ESM::VT_String)
else return res->mValue.getString();
{ else
Log(Debug::Error) << "GMST " << gmstName << " not found"; {
return std::string("GMST:") + std::string(gmstName); 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->setStore(mWorld->getStore());
mWindowManager->initUI(); mWindowManager->initUI();