| 59 | |
| 60 | |
| 61 | void Scene_Language::CreateTranslationWindow() { |
| 62 | // Build a list of 'Default' and all known languages. |
| 63 | std::vector<std::string> lang_names; |
| 64 | lang_names.push_back("Default Language"); |
| 65 | lang_dirs.push_back(""); |
| 66 | lang_helps.push_back("Play the game in its original language."); |
| 67 | |
| 68 | // Push menu entries with the display name, but also save the directory location and help text. |
| 69 | for (const Language& lg : Player::translation.GetLanguages()) { |
| 70 | lang_names.push_back(lg.lang_name); |
| 71 | lang_dirs.push_back(lg.lang_dir); |
| 72 | lang_helps.push_back(lg.lang_desc); |
| 73 | } |
| 74 | |
| 75 | // Allow overwriting text of the default language |
| 76 | const Language& def = Player::translation.GetDefaultLanguage(); |
| 77 | if (!def.lang_name.empty()) { |
| 78 | lang_names.front() = def.lang_name; |
| 79 | } |
| 80 | if (!def.lang_desc.empty()) { |
| 81 | lang_helps.front() = def.lang_desc; |
| 82 | } |
| 83 | |
| 84 | translate_window = std::make_unique<Window_Command>(lang_names, -1, lang_names.size() > 9 ? 9 : static_cast<int>(lang_names.size())); |
| 85 | translate_window->UpdateHelpFn = [this](Window_Help& win, int index) { |
| 86 | if (index >= 0 && index < static_cast<int>(lang_helps.size())) { |
| 87 | win.SetText(lang_helps[index]); |
| 88 | } |
| 89 | else { |
| 90 | win.SetText(""); |
| 91 | } |
| 92 | }; |
| 93 | Scene_Title::RepositionWindow(*translate_window, Player::hide_title_flag); |
| 94 | |
| 95 | if (Player::IsRPG2k3E() && lcf::Data::battlecommands.transparency == lcf::rpg::BattleCommands::Transparency_transparent) { |
| 96 | translate_window->SetBackOpacity(160); |
| 97 | } |
| 98 | |
| 99 | translate_window->SetVisible(false); |
| 100 | } |
| 101 | |
| 102 | void Scene_Language::CreateHelpWindow() { |
| 103 | help_window.reset(new Window_Help(0, 0, Player::screen_width, 32)); |
nothing calls this directly
no test coverage detected