[Freeciv-Dev] Re: Wonder obsolesence across games (PR#1434)
[Top] [All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index] [Thread Index]
On Fri, May 10, 2002 at 10:06:48PM +0200, Raimar Falke wrote:
> On Sat, May 04, 2002 at 12:53:28PM -0700, dspeyer@xxxxxxxxxxxxxxxxxxxxx wrote:
> > Full_Name: Daniel Speyer
> > Version: latest CVS
> > Distribution: Built from source
> > Client: Both (or N/A)
> > OS: Debian GNU/Linux
> > Submission from: (NULL) (129.2.159.61)
> >
> >
> > If you start a game, build Sun Tzu's War Academy, end the game, and start a
> > new
> > game using the same client, you will be unable to build barracks. Other
> > wonders/improvements are presumably similar.
> >
> > This is because the game.players[0].improvements array is not innitialized
> > for
> > each game. Probably the best solution is to put
> >
> > for(i=0; i<B_LAST; i++){
> > game.players[0].improvements[i]=I_NONE;
> > }
> >
> > into the game connection routines, probably in try_to_connect
> > (freeciv/client/clinet.c). It's a little ugly there, but it works. I
> > haven't
> > found another place to put it that works cross-gui.
> >
> > I'd make a patch, but my clinet.c is pretty modified, and I'm still not sure
> > where in the function is least aesthetically offensive.
>
> What about this patch:
> 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/10 16:49:23
> @@ -105,6 +105,7 @@
>
> set_client_state(CLIENT_PRE_GAME_STATE);
> agents_disconnect();
> + game_init();
> }
>
> /**************************************************************************
>
> It is certainly correct ;) but may introduce other problems.
this is actually a dreadful fix.
we already have a [smaller] memory leak when diconnecting and
reconnecting to the server (or quitting the server and restarting it).
this "fix" really intensifies the memory leak---depending on the
savegame size---by about an order of magnitude.
We should probably introduce a game_free() function that frees all the
lists and players and such before calling game_init()
-mike
- [Freeciv-Dev] Wonder obsolesence across games (PR#1434), dspeyer, 2002/05/04
- [Freeciv-Dev] Re: Wonder obsolesence across games (PR#1434), Raimar Falke, 2002/05/10
- [Freeciv-Dev] Re: Wonder obsolesence across games (PR#1434),
Mike Kaufman <=
- [Freeciv-Dev] Re: Wonder obsolesence across games (PR#1434), Raimar Falke, 2002/05/15
- [Freeciv-Dev] Re: Wonder obsolesence across games (PR#1434), Mike Kaufman, 2002/05/15
- [Freeciv-Dev] Re: Wonder obsolesence across games (PR#1434), Raimar Falke, 2002/05/15
- [Freeciv-Dev] Re: Wonder obsolesence across games (PR#1434), Mike Kaufman, 2002/05/15
- [Freeciv-Dev] Re: Wonder obsolesence across games (PR#1434), Raimar Falke, 2002/05/16
- [Freeciv-Dev] Re: Wonder obsolesence across games (PR#1434), Ben Webb, 2002/05/16
- [Freeciv-Dev] Re: Wonder obsolesence across games (PR#1434), Raimar Falke, 2002/05/16
|
|