diff options
author | Darkvater <darkvater@openttd.org> | 2006-02-11 14:10:28 +0000 |
---|---|---|
committer | Darkvater <darkvater@openttd.org> | 2006-02-11 14:10:28 +0000 |
commit | 843bd25b4e0a7fbd7187ec5977f282ba8db2c9d6 (patch) | |
tree | be319a85fa5de0c0fb1f72049ab66836fb5d93c5 | |
parent | a90142bb7c51ba3e5fac7cf1f3dd8af014e94cdc (diff) | |
download | openttd-843bd25b4e0a7fbd7187ec5977f282ba8db2c9d6.tar.xz |
(svn r3591) - Fix: validate the setting of max_companies/spectators through the console.
-rw-r--r-- | console_cmds.c | 25 |
1 files changed, 23 insertions, 2 deletions
diff --git a/console_cmds.c b/console_cmds.c index ba6a3bd9c..73f1afbab 100644 --- a/console_cmds.c +++ b/console_cmds.c @@ -553,10 +553,29 @@ DEF_CONSOLE_CMD(ConServerInfo) DEF_CONSOLE_HOOK(ConHookValidateMaxClientsCount) { /* XXX - hardcoded, string limiation -- TrueLight - * XXX - also see network.c:NetworkStartup ~1343 */ + * XXX - also see network.c:NetworkStartup ~1356 */ if (_network_game_info.clients_max > 10) { _network_game_info.clients_max = 10; - IConsoleError("Maximum clients is 10, truncating."); + IConsoleError("Maximum clients out of bounds, truncating to limit."); + } + + return true; +} + +DEF_CONSOLE_HOOK(ConHookValidateMaxCompaniesCount) { + if (_network_game_info.companies_max > MAX_PLAYERS) { + _network_game_info.companies_max = MAX_PLAYERS; + IConsoleError("Maximum companies out of bounds, truncating to limit."); + } + + return true; +} + +DEF_CONSOLE_HOOK(ConHookValidateMaxSpectatorsCount) { + /* XXX @see ConHookValidateMaxClientsCount */ + if (_network_game_info.spectators_max > 10) { + _network_game_info.clients_max = 10; + IConsoleError("Maximum spectators out of bounds, truncating to limit."); } return true; @@ -1444,8 +1463,10 @@ void IConsoleStdLibRegister(void) IConsoleVarHookAdd("max_clients", ICONSOLE_HOOK_POST_ACTION, ConHookValidateMaxClientsCount); IConsoleVarRegister("max_companies", &_network_game_info.companies_max, ICONSOLE_VAR_BYTE, "Control the maximum amount of active companies during runtime. Default value: 8"); IConsoleVarHookAdd("max_companies", ICONSOLE_HOOK_ACCESS, ConHookServerOnly); + IConsoleVarHookAdd("max_companies", ICONSOLE_HOOK_POST_ACTION, ConHookValidateMaxCompaniesCount); IConsoleVarRegister("max_spectators", &_network_game_info.spectators_max, ICONSOLE_VAR_BYTE, "Control the maximum amount of active spectators during runtime. Default value: 9"); IConsoleVarHookAdd("max_spectators", ICONSOLE_HOOK_ACCESS, ConHookServerOnly); + IConsoleVarHookAdd("max_spectators", ICONSOLE_HOOK_POST_ACTION, ConHookValidateMaxSpectatorsCount); IConsoleVarRegister("max_join_time", &_network_max_join_time, ICONSOLE_VAR_UINT16, "Set the maximum amount of time (ticks) a client is allowed to join. Default value: 500"); |