Index: client/clinet.c =================================================================== RCS file: /home/freeciv/CVS/freeciv/client/clinet.c,v retrieving revision 1.69 diff -u -r1.69 clinet.c --- client/clinet.c 2002/04/09 14:10:09 1.69 +++ client/clinet.c 2002/05/16 06:52:48 @@ -105,6 +105,7 @@ set_client_state(CLIENT_PRE_GAME_STATE); agents_disconnect(); + game_init(); } /************************************************************************** Index: common/speclist_c.h =================================================================== RCS file: /home/freeciv/CVS/freeciv/common/speclist_c.h,v retrieving revision 1.4 diff -u -r1.4 speclist_c.h --- common/speclist_c.h 2002/02/12 04:23:17 1.4 +++ common/speclist_c.h 2002/05/16 06:52:49 @@ -41,6 +41,7 @@ void SPECLIST_FOO(_list_init) (SPECLIST_LIST *tthis) { + SPECLIST_FOO(_list_unlink_all) (tthis); genlist_init(&tthis->list); } Index: common/specvec_c.h =================================================================== RCS file: /home/freeciv/CVS/freeciv/common/specvec_c.h,v retrieving revision 1.3 diff -u -r1.3 specvec_c.h --- common/specvec_c.h 2002/03/05 10:07:10 1.3 +++ common/specvec_c.h 2002/05/16 06:52:49 @@ -39,8 +39,11 @@ #define SPECVEC_FOO(suffix) SPECVEC_PASTE(SPECVEC_TAG, suffix) -void SPECVEC_FOO(_vector_init) (SPECVEC_VECTOR *tthis) +void SPECVEC_FOO(_vector_init) (SPECVEC_VECTOR * tthis) { + if (SPECVEC_FOO(_vector_size) (tthis) > 0) { + SPECVEC_FOO(_vector_free) (tthis); + } ath_init(&tthis->vector, sizeof(SPECVEC_TYPE)); }