| 594 | } |
| 595 | |
| 596 | std::string GetWidgetString(WidgetID widget, StringID stringid) const override |
| 597 | { |
| 598 | switch (widget) { |
| 599 | case WID_GO_CURRENCY_DROPDOWN: { |
| 600 | const CurrencySpec ¤cy = _currency_specs[this->opt->locale.currency]; |
| 601 | if (currency.code.empty()) return GetString(currency.name); |
| 602 | return GetString(STR_GAME_OPTIONS_CURRENCY_CODE, currency.name, currency.code); |
| 603 | } |
| 604 | |
| 605 | case WID_GO_AUTOSAVE_DROPDOWN: { |
| 606 | int index = 0; |
| 607 | for (auto &minutes : _autosave_dropdown_to_minutes) { |
| 608 | index++; |
| 609 | if (_settings_client.gui.autosave_interval <= minutes) break; |
| 610 | } |
| 611 | return GetString(_autosave_dropdown[index - 1]); |
| 612 | } |
| 613 | |
| 614 | case WID_GO_LANG_DROPDOWN: return _current_language->own_name; |
| 615 | case WID_GO_BASE_GRF_DROPDOWN: return GetListLabel(BaseGraphics::GetUsedSet()); |
| 616 | case WID_GO_BASE_SFX_DROPDOWN: return GetListLabel(BaseSounds::GetUsedSet()); |
| 617 | case WID_GO_BASE_MUSIC_DROPDOWN: return GetListLabel(BaseMusic::GetUsedSet()); |
| 618 | case WID_GO_REFRESH_RATE_DROPDOWN: return GetString(STR_GAME_OPTIONS_REFRESH_RATE_ITEM, _settings_client.gui.refresh_rate); |
| 619 | case WID_GO_RESOLUTION_DROPDOWN: { |
| 620 | auto current_resolution = GetCurrentResolutionIndex(); |
| 621 | |
| 622 | if (current_resolution == _resolutions.size()) { |
| 623 | return GetString(STR_GAME_OPTIONS_RESOLUTION_OTHER); |
| 624 | } |
| 625 | return GetString(STR_GAME_OPTIONS_RESOLUTION_ITEM, _resolutions[current_resolution].width, _resolutions[current_resolution].height); |
| 626 | } |
| 627 | |
| 628 | case WID_GO_SOCIAL_PLUGIN_TITLE: |
| 629 | case WID_GO_SOCIAL_PLUGIN_PLATFORM: |
| 630 | case WID_GO_SOCIAL_PLUGIN_STATE: { |
| 631 | const NWidgetSocialPlugins *plugin = this->GetWidget<NWidgetSocialPlugins>(WID_GO_SOCIAL_PLUGINS); |
| 632 | assert(plugin != nullptr); |
| 633 | |
| 634 | return plugin->GetWidgetString(widget, stringid); |
| 635 | } |
| 636 | |
| 637 | case WID_GO_RESTRICT_DROPDOWN: |
| 638 | return GetString(_game_settings_restrict_dropdown[this->filter.mode]); |
| 639 | |
| 640 | case WID_GO_TYPE_DROPDOWN: |
| 641 | switch (this->filter.type) { |
| 642 | case ST_GAME: return GetString(_game_mode == GM_MENU ? STR_CONFIG_SETTING_TYPE_DROPDOWN_GAME_MENU : STR_CONFIG_SETTING_TYPE_DROPDOWN_GAME_INGAME); |
| 643 | case ST_COMPANY: return GetString(_game_mode == GM_MENU ? STR_CONFIG_SETTING_TYPE_DROPDOWN_COMPANY_MENU : STR_CONFIG_SETTING_TYPE_DROPDOWN_COMPANY_INGAME); |
| 644 | case ST_CLIENT: return GetString(STR_CONFIG_SETTING_TYPE_DROPDOWN_CLIENT); |
| 645 | default: return GetString(STR_CONFIG_SETTING_TYPE_DROPDOWN_ALL); |
| 646 | } |
| 647 | break; |
| 648 | |
| 649 | case WID_GO_SURVEY_PARTICIPATE_TEXT: |
| 650 | return GetToggleString(STR_GAME_OPTIONS_PARTICIPATE_SURVEY, WID_GO_SURVEY_PARTICIPATE_BUTTON); |
| 651 | |
| 652 | case WID_GO_GUI_SCALE_AUTO_TEXT: |
| 653 | return GetToggleString(STR_GAME_OPTIONS_GUI_SCALE_AUTO, WID_GO_GUI_SCALE_AUTO); |
nothing calls this directly
no test coverage detected