diff -urd -X freeciv.current/diff_ignore freeciv.current/client/civclient.c work/client/civclient.c --- freeciv.current/client/civclient.c Tue Aug 28 18:59:31 2001 +++ work/client/civclient.c Fri Aug 31 15:36:15 2001 @@ -474,6 +474,9 @@ **************************************************************************/ void set_client_state(enum client_states newstate) { + int wait_before = (client_state == CLIENT_PRE_GAME_STATE) + && (newstate == CLIENT_PRE_GAME_STATE); + if(client_state!=newstate) { /* If changing from pre-game state to _either_ select race @@ -509,7 +512,7 @@ } if (client_state == CLIENT_PRE_GAME_STATE) { if (auto_connect) { - server_autoconnect(); + server_autoconnect(wait_before); } else { gui_server_connect(); } diff -urd -X freeciv.current/diff_ignore freeciv.current/client/gui-gtk/connectdlg.c work/client/gui-gtk/connectdlg.c --- freeciv.current/client/gui-gtk/connectdlg.c Wed Aug 29 12:59:44 2001 +++ work/client/gui-gtk/connectdlg.c Fri Aug 31 15:40:32 2001 @@ -17,6 +17,7 @@ #include #include #include +#include #include @@ -335,7 +336,7 @@ user intervention. (Doesn't use widgets, but is GTK-specific because it calls gtk_timeout_add().) **************************************************************************/ -void server_autoconnect() +void server_autoconnect(int wait_before) { char buf[512]; @@ -354,7 +355,11 @@ server_host, server_port, player_name, buf); gtk_exit(1); } - if (try_to_autoconnect()) { + + if (wait_before) { + gtk_timeout_add(AUTOCONNECT_INTERVAL, try_to_autoconnect, NULL); + } + else if (try_to_autoconnect()) { gtk_timeout_add(AUTOCONNECT_INTERVAL, try_to_autoconnect, NULL); } } diff -urd -X freeciv.current/diff_ignore freeciv.current/client/include/connectdlg_g.h work/client/include/connectdlg_g.h --- freeciv.current/client/include/connectdlg_g.h Tue Aug 28 18:59:31 2001 +++ work/client/include/connectdlg_g.h Fri Aug 31 15:33:08 2001 @@ -14,6 +14,6 @@ #define FC__CONNECTDLG_G_H void gui_server_connect(void); -void server_autoconnect(void); +void server_autoconnect(int wait_before); #endif /* FC__CONNECTDLG_G_H */