| 1007 | } |
| 1008 | |
| 1009 | void OnClick([[maybe_unused]] Point pt, WidgetID widget, [[maybe_unused]] int click_count) override |
| 1010 | { |
| 1011 | switch (widget) { |
| 1012 | case WID_NSS_CANCEL: // Cancel button |
| 1013 | ShowNetworkGameWindow(); |
| 1014 | break; |
| 1015 | |
| 1016 | case WID_NSS_SETPWD: // Set password button |
| 1017 | this->widget_id = WID_NSS_SETPWD; |
| 1018 | ShowQueryString(_settings_client.network.server_password, STR_NETWORK_START_SERVER_SET_PASSWORD, NETWORK_PASSWORD_LENGTH, this, CS_ALPHANUMERAL, {}); |
| 1019 | break; |
| 1020 | |
| 1021 | case WID_NSS_CONNTYPE_BTN: // Connection type |
| 1022 | ShowDropDownList(this, BuildVisibilityDropDownList(), _settings_client.network.server_game_type, WID_NSS_CONNTYPE_BTN); |
| 1023 | break; |
| 1024 | |
| 1025 | case WID_NSS_CLIENTS_BTND: case WID_NSS_CLIENTS_BTNU: // Click on up/down button for number of clients |
| 1026 | case WID_NSS_COMPANIES_BTND: case WID_NSS_COMPANIES_BTNU: // Click on up/down button for number of companies |
| 1027 | /* Don't allow too fast scrolling. */ |
| 1028 | if (!this->flags.Test(WindowFlag::Timeout) || this->timeout_timer <= 1) { |
| 1029 | this->HandleButtonClick(widget); |
| 1030 | this->SetDirty(); |
| 1031 | switch (widget) { |
| 1032 | default: NOT_REACHED(); |
| 1033 | case WID_NSS_CLIENTS_BTND: case WID_NSS_CLIENTS_BTNU: |
| 1034 | _settings_client.network.max_clients = Clamp(_settings_client.network.max_clients + widget - WID_NSS_CLIENTS_TXT, 2, MAX_CLIENTS); |
| 1035 | break; |
| 1036 | case WID_NSS_COMPANIES_BTND: case WID_NSS_COMPANIES_BTNU: |
| 1037 | _settings_client.network.max_companies = Clamp(_settings_client.network.max_companies + widget - WID_NSS_COMPANIES_TXT, 1, MAX_COMPANIES); |
| 1038 | break; |
| 1039 | } |
| 1040 | } |
| 1041 | _left_button_clicked = false; |
| 1042 | break; |
| 1043 | |
| 1044 | case WID_NSS_CLIENTS_TXT: // Click on number of clients |
| 1045 | this->widget_id = WID_NSS_CLIENTS_TXT; |
| 1046 | ShowQueryString(GetString(STR_JUST_INT, _settings_client.network.max_clients), STR_NETWORK_START_SERVER_NUMBER_OF_CLIENTS, 4, this, CS_NUMERAL, {}); |
| 1047 | break; |
| 1048 | |
| 1049 | case WID_NSS_COMPANIES_TXT: // Click on number of companies |
| 1050 | this->widget_id = WID_NSS_COMPANIES_TXT; |
| 1051 | ShowQueryString(GetString(STR_JUST_INT, _settings_client.network.max_companies), STR_NETWORK_START_SERVER_NUMBER_OF_COMPANIES, 3, this, CS_NUMERAL, {}); |
| 1052 | break; |
| 1053 | |
| 1054 | case WID_NSS_GENERATE_GAME: // Start game |
| 1055 | if (!CheckServerName()) return; |
| 1056 | _is_network_server = true; |
| 1057 | if (_ctrl_pressed) { |
| 1058 | StartNewGameWithoutGUI(GENERATE_NEW_SEED); |
| 1059 | } else { |
| 1060 | ShowGenerateLandscape(); |
| 1061 | } |
| 1062 | break; |
| 1063 | |
| 1064 | case WID_NSS_LOAD_GAME: |
| 1065 | if (!CheckServerName()) return; |
| 1066 | _is_network_server = true; |
nothing calls this directly
no test coverage detected