1; This file is part of OpenTTD. 2; OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2. 3; OpenTTD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 4; See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with OpenTTD. If not, see <http://www.gnu.org/licenses/>. 5; 6 7; Network settings as stored in the main configuration file ("openttd.cfg"). 8 9[pre-amble] 10static void UpdateClientConfigValues(); 11 12static constexpr std::initializer_list<const char*> _server_game_type{"local", "public", "invite-only"}; 13static constexpr std::initializer_list<const char*> _use_relay_service{"never", "ask", "allow"}; 14 15static const SettingVariant _network_settings_table[] = { 16[post-amble] 17}; 18[templates] 19SDTC_BOOL = SDTC_BOOL( $var, $flags, $def, $str, $strhelp, $strval, $pre_cb, $post_cb, $from, $to, $cat, $extra, $startup), 20SDTC_OMANY = SDTC_OMANY( $var, $type, $flags, $def, $max, $full, $str, $strhelp, $strval, $pre_cb, $post_cb, $from, $to, $cat, $extra, $startup), 21SDTC_VAR = SDTC_VAR( $var, $type, $flags, $def, $min, $max, $interval, $str, $strhelp, $strval, $pre_cb, $post_cb, $from, $to, $cat, $extra, $startup), 22 23[validation] 24SDTC_OMANY = static_assert($max <= MAX_$type, "Maximum value for $var exceeds storage size"); 25SDTC_VAR = static_assert($max <= MAX_$type, "Maximum value for $var exceeds storage size"); 26 27[defaults] 28flags = SF_NONE 29interval = 0 30str = STR_NULL 31strhelp = STR_CONFIG_SETTING_NO_EXPLANATION_AVAILABLE_HELPTEXT 32strval = STR_NULL 33pre_cb = nullptr 34post_cb = nullptr 35load = nullptr 36from = SL_MIN_VERSION 37to = SL_MAX_VERSION 38cat = SC_ADVANCED 39extra = 0 40startup = false 41 42 43[SDTC_VAR] 44var = network.sync_freq 45type = SLE_UINT16 46flags = SF_NOT_IN_SAVE | SF_NOT_IN_CONFIG | SF_NO_NETWORK_SYNC | SF_NETWORK_ONLY 47def = 100 48min = 0 49max = 100 50cat = SC_EXPERT 51 52[SDTC_VAR] 53var = network.frame_freq 54type = SLE_UINT8 55flags = SF_NOT_IN_SAVE | SF_NOT_IN_CONFIG | SF_NO_NETWORK_SYNC | SF_NETWORK_ONLY 56def = 0 57min = 0 58max = 100 59cat = SC_EXPERT 60 61[SDTC_VAR] 62var = network.commands_per_frame 63type = SLE_UINT16 64flags = SF_NOT_IN_SAVE | SF_NO_NETWORK_SYNC | SF_NETWORK_ONLY 65def = 2 66min = 1 67max = 65535 68cat = SC_EXPERT 69 70[SDTC_VAR] 71var = network.max_commands_in_queue 72type = SLE_UINT16 73flags = SF_NOT_IN_SAVE | SF_NO_NETWORK_SYNC | SF_NETWORK_ONLY 74def = 16 75min = 1 76max = 65535 77cat = SC_EXPERT 78 79[SDTC_VAR] 80var = network.bytes_per_frame 81type = SLE_UINT16 82flags = SF_NOT_IN_SAVE | SF_NO_NETWORK_SYNC | SF_NETWORK_ONLY 83def = 8 84min = 1 85max = 65535 86cat = SC_EXPERT 87 88[SDTC_VAR] 89var = network.bytes_per_frame_burst 90type = SLE_UINT16 91flags = SF_NOT_IN_SAVE | SF_NO_NETWORK_SYNC | SF_NETWORK_ONLY 92def = 256 93min = 1 94max = 65535 95cat = SC_EXPERT 96 97[SDTC_VAR] 98var = network.max_init_time 99type = SLE_UINT16 100flags = SF_NOT_IN_SAVE | SF_NO_NETWORK_SYNC | SF_NETWORK_ONLY 101def = 100 102min = 0 103max = 32000 104cat = SC_EXPERT 105 106[SDTC_VAR] 107var = network.max_join_time 108type = SLE_UINT16 109flags = SF_NOT_IN_SAVE | SF_NO_NETWORK_SYNC | SF_NETWORK_ONLY 110def = 500 111min = 0 112max = 32000 113 114[SDTC_VAR] 115var = network.max_download_time 116type = SLE_UINT16 117flags = SF_NOT_IN_SAVE | SF_NO_NETWORK_SYNC | SF_NETWORK_ONLY 118def = 1000 119min = 0 120max = 32000 121 122[SDTC_VAR] 123var = network.max_password_time 124type = SLE_UINT16 125flags = SF_NOT_IN_SAVE | SF_NO_NETWORK_SYNC | SF_NETWORK_ONLY 126def = 2000 127min = 0 128max = 32000 129 130[SDTC_VAR] 131var = network.max_lag_time 132type = SLE_UINT16 133flags = SF_NOT_IN_SAVE | SF_NO_NETWORK_SYNC | SF_NETWORK_ONLY 134def = 500 135min = 0 136max = 32000 137 138[SDTC_BOOL] 139var = network.pause_on_join 140flags = SF_NOT_IN_SAVE | SF_NO_NETWORK_SYNC | SF_NETWORK_ONLY 141def = true 142 143[SDTC_VAR] 144var = network.server_port 145type = SLE_UINT16 146flags = SF_NOT_IN_SAVE | SF_NO_NETWORK_SYNC | SF_NETWORK_ONLY 147def = NETWORK_DEFAULT_PORT 148min = 0 149max = 65535 150cat = SC_EXPERT 151 152[SDTC_VAR] 153var = network.server_admin_port 154type = SLE_UINT16 155flags = SF_NOT_IN_SAVE | SF_NO_NETWORK_SYNC | SF_NETWORK_ONLY 156def = NETWORK_ADMIN_PORT 157min = 0 158max = 65535 159cat = SC_EXPERT 160 161[SDTC_BOOL] 162var = network.server_admin_chat 163flags = SF_NOT_IN_SAVE | SF_NO_NETWORK_SYNC | SF_NETWORK_ONLY 164def = true 165cat = SC_EXPERT 166 167[SDTC_OMANY] 168var = network.server_game_type 169type = SLE_UINT8 170flags = SF_NOT_IN_SAVE | SF_NO_NETWORK_SYNC | SF_NETWORK_ONLY 171def = SERVER_GAME_TYPE_LOCAL 172min = SERVER_GAME_TYPE_LOCAL 173max = SERVER_GAME_TYPE_INVITE_ONLY 174full = _server_game_type 175post_cb = [](auto) { NetworkUpdateServerGameType(); } 176cat = SC_BASIC 177 178[SDTC_BOOL] 179var = network.autoclean_companies 180flags = SF_NOT_IN_SAVE | SF_NO_NETWORK_SYNC | SF_NETWORK_ONLY 181def = false 182 183[SDTC_VAR] 184var = network.autoclean_unprotected 185type = SLE_UINT8 186flags = SF_NOT_IN_SAVE | SF_NO_NETWORK_SYNC | SF_GUI_0_IS_SPECIAL | SF_NETWORK_ONLY 187def = 12 188min = 0 189max = 240 190 191[SDTC_VAR] 192var = network.autoclean_protected 193type = SLE_UINT8 194flags = SF_NOT_IN_SAVE | SF_NO_NETWORK_SYNC | SF_GUI_0_IS_SPECIAL | SF_NETWORK_ONLY 195def = 36 196min = 0 197max = 240 198 199[SDTC_VAR] 200var = network.autoclean_novehicles 201type = SLE_UINT8 202flags = SF_NOT_IN_SAVE | SF_NO_NETWORK_SYNC | SF_GUI_0_IS_SPECIAL | SF_NETWORK_ONLY 203def = 0 204min = 0 205max = 240 206 207[SDTC_VAR] 208var = network.max_companies 209type = SLE_UINT8 210flags = SF_NOT_IN_SAVE | SF_NO_NETWORK_SYNC | SF_NETWORK_ONLY 211def = 15 212min = 1 213max = MAX_COMPANIES 214post_cb = [](auto) { UpdateClientConfigValues(); } 215cat = SC_BASIC 216 217[SDTC_VAR] 218var = network.max_clients 219type = SLE_UINT8 220flags = SF_NOT_IN_SAVE | SF_NO_NETWORK_SYNC | SF_NETWORK_ONLY 221def = 25 222min = 2 223max = MAX_CLIENTS 224post_cb = [](auto) { UpdateClientConfigValues(); } 225cat = SC_BASIC 226 227[SDTC_VAR] 228var = network.restart_game_year 229type = SLE_INT32 230flags = SF_NOT_IN_SAVE | SF_NO_NETWORK_SYNC | SF_GUI_0_IS_SPECIAL | SF_NETWORK_ONLY 231def = 0 232min = MIN_YEAR 233max = MAX_YEAR 234interval = 1 235 236[SDTC_VAR] 237var = network.min_active_clients 238type = SLE_UINT8 239flags = SF_NOT_IN_SAVE | SF_NO_NETWORK_SYNC | SF_NETWORK_ONLY 240def = 0 241min = 0 242max = MAX_CLIENTS 243 244[SDTC_BOOL] 245var = network.reload_cfg 246flags = SF_NOT_IN_SAVE | SF_NO_NETWORK_SYNC | SF_NETWORK_ONLY 247def = false 248cat = SC_EXPERT 249 250[SDTC_BOOL] 251var = network.no_http_content_downloads 252flags = SF_NOT_IN_SAVE | SF_NO_NETWORK_SYNC 253def = false 254cat = SC_EXPERT 255 256[SDTC_OMANY] 257var = network.use_relay_service 258type = SLE_UINT8 259flags = SF_GUI_DROPDOWN | SF_NOT_IN_SAVE | SF_NO_NETWORK_SYNC 260def = URS_ASK 261min = URS_NO 262max = URS_ALLOW 263full = _use_relay_service 264str = STR_CONFIG_SETTING_USE_RELAY_SERVICE 265strhelp = STR_CONFIG_SETTING_USE_RELAY_SERVICE_HELPTEXT 266strval = STR_CONFIG_SETTING_USE_RELAY_SERVICE_NEVER 267cat = SC_BASIC 268