diff --git a/players.c b/players.c index 3e43145684..abd188a0b1 100644 --- a/players.c +++ b/players.c @@ -860,11 +860,18 @@ int32 CmdPlayerCtrl(TileIndex tile, uint32 flags, uint32 p1, uint32 p2) if (_local_player != _network_playas) { assert(_local_player == PLAYER_SPECTATOR && _network_playas == p->index); _local_player = p->index; - DoCommandP(0, (_patches.autorenew << 15 ) | (_patches.autorenew_months << 16) | 4, _patches.autorenew_money, NULL, CMD_SET_AUTOREPLACE); - MarkWholeScreenDirty(); } + /* Now that we have a new player, broadcast its autorenew settings to + * all clients so everything is in sync */ + DoCommand(0, + (_patches.autorenew << 15 ) | (_patches.autorenew_months << 16) | 4, + _patches.autorenew_money, + DC_EXEC, + CMD_SET_AUTOREPLACE + ); + #ifdef ENABLE_NETWORK if (_network_server) { /* XXX - UGLY! p2 (pid) is mis-used to fetch the client-id, done at