MCPcopy Create free account
hub / github.com/OpenTTD/OpenTTD / OnClick

Method OnClick

src/network/network_gui.cpp:1009–1082  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

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;

Callers

nothing calls this directly

Calls 13

ShowNetworkGameWindowFunction · 0.85
ShowQueryStringFunction · 0.85
ShowDropDownListFunction · 0.85
NOT_REACHEDFunction · 0.85
ClampFunction · 0.85
StartNewGameWithoutGUIFunction · 0.85
ShowGenerateLandscapeFunction · 0.85
ShowSaveLoadDialogFunction · 0.85
TestMethod · 0.80
HandleButtonClickMethod · 0.80
GetStringFunction · 0.50

Tested by

no test coverage detected