MCPcopy Create free account
hub / github.com/ZDoom/gzdoom / UpdateLanguage

Method UpdateLanguage

src/common/engine/stringtable.cpp:466–490  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

464//==========================================================================
465
466void FStringTable::UpdateLanguage(const char *language)
467{
468 if (language) activeLanguage = language;
469 else language = activeLanguage.GetChars();
470 size_t langlen = strlen(language);
471
472 int LanguageID = (langlen < 2 || langlen > 3) ?
473 MAKE_ID('e', 'n', 'u', '\0') :
474 MAKE_ID(language[0], language[1], language[2], '\0');
475
476 currentLanguageSet.Clear();
477
478 auto checkone = [&](uint32_t lang_id)
479 {
480 auto list = allStrings.CheckKey(lang_id);
481 if (list && currentLanguageSet.FindEx([&](const auto &element) { return element.first == lang_id; }) == currentLanguageSet.Size())
482 currentLanguageSet.Push(std::make_pair(lang_id, list));
483 };
484
485 checkone(override_table);
486 checkone(global_table);
487 checkone(LanguageID);
488 checkone(LanguageID & MAKE_ID(0xff, 0xff, 0, 0));
489 checkone(default_table);
490}
491
492//==========================================================================
493//

Callers 1

i_interface.cppFile · 0.45

Calls 6

FindExMethod · 0.80
GetCharsMethod · 0.45
ClearMethod · 0.45
CheckKeyMethod · 0.45
SizeMethod · 0.45
PushMethod · 0.45

Tested by

no test coverage detected