Complete.Org: Mailing Lists: Archives: freeciv-dev: November 2000:
[Freeciv-Dev] Re: Patch: Use original city id at client (Fixes some bugs
Home

[Freeciv-Dev] Re: Patch: Use original city id at client (Fixes some bugs

[Top] [All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index] [Thread Index]
To: Marko Lindqvist <caz@xxxxxxxxx>
Cc: Freeciv dev <freeciv-dev@xxxxxxxxxxx>
Subject: [Freeciv-Dev] Re: Patch: Use original city id at client (Fixes some bugs)
From: Thue <thue@xxxxxxx>
Date: Mon, 20 Nov 2000 21:20:56 +0100

On Tue, 17 Oct 2000 12:05:05 Marko Lindqvist wrote:
> 
>  Always use original city id at client side instead of one currently used
> internally at server (changes when citychanges owner). This way all
> clients (and server with some mapping between original id and internal
> id)
> always have same id for cities.
> 
>  This fix following known problems:
> 
>  1. Client reports traderoute to end up in unknown city when city in fact
>     is known.
> 
>  2. When adding clause 'You give me city of foobar', other players client
>     segfaults if (s)he have already lost that city. (Problem still arise,
>     if city is completely destroyed)
> 
>  3. If city changes owner, while its already part of treaty, accepting
>     treaty segfaults client. (Problem still arise, if city is completely
>     destroyed)

The fix to 1. doesn't seem rigth. You could concievably have a city C with
a traderoute to p1. Then the city is transformed to D by being taken by
another player, but p1 still sees it as C. Then p2 makes a traderoute to D.
Then the city is taken again and becomes E. Now you would need to keep the
ids of both C and D, not just the original ID.
A better way would be, when sending a city to a client with a traderoute to
a city at x,y , to check the players private map and find the ID of the
city there, and send that.

-Thue



[Prev in Thread] Current Thread [Next in Thread]