--- freeciv/server/stdinhand.c.orig Mon Dec 10 20:40:35 2001 +++ freeciv/server/stdinhand.c Mon Dec 10 21:07:07 2001 @@ -853,6 +853,8 @@ /******************************************************************** Returns whether the specified server setting (option) can currently be changed. Does not indicate whether it can be changed by clients or not. +Until 1.13.0, tested whether a map existed, which allows players to still +change settings while others are picking a nation, or even afterwards. *********************************************************************/ static int sset_is_changeable(int idx) { @@ -861,17 +863,13 @@ switch(op->sclass) { case SSET_MAP_SIZE: case SSET_MAP_GEN: - /* Only change map options if we don't yet have a map: */ - return map_is_empty(); case SSET_MAP_ADD: case SSET_PLAYERS: case SSET_GAME_INIT: case SSET_RULES: - /* Only change start params and most rules if we don't yet have a map, - * or if we do have a map but its a scenario one (ie, the game has - * never actually been started). - */ - return (map_is_empty() || game.is_new_game); + /* From 1.13.0 on, these can no longer be changed * + * while players are picking nations: */ + return (server_state==PRE_GAME_STATE); case SSET_RULES_FLEXIBLE: case SSET_META: /* These can always be changed: */ @@ -2653,7 +2651,7 @@ } if (!sset_is_changeable(cmd)) { cmd_reply(CMD_SET, caller, C_BOUNCE, - _("This setting can't be modified after the game has started.")); + _("This setting can't be modified after the game has been started.")); return; }