[Freeciv-Dev] Re: (PR#2223) cma: server knowledge of island != client kn
[Top] [All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index] [Thread Index]
On Thu, Jan 09, 2003 at 09:15:06AM -0800, Mike Kaufman via RT wrote:
> On Thu, Jan 09, 2003 at 06:48:18AM -0800, Raimar Falke via RT wrote:
> >
> > The question how does the server tells this the client. We have (in
> > increasing amount of information send/leaked):
> > - server informs the clients that the cities of the traderoute are on
> > the same/different island.
> > - server informs the clients that the tile where the two cities
> > exists are on the same island
> > - server sends information about missing tiles to the client so that
> > the client can calculate this (cities on same island) by itself.
>
> a combination of the last two I believe. Using an idea that Davide had, any
> city getting a trade route from another city should get to know the
> location and name of the other city. I suggest that if B creates a route
> with A, then the server reveals (fogged) B's tile (with a dumb city).
>
> In this case, lets say B appeared off in the black somewhere, A's owner
> obviously thinks that A and B are on different continents. The solutions is
> to B's owner's knowledge. somewhere in handle_unit_establish_trade():
>
> int conta_home, conta_dest, contb_home, contb_dest;
>
> playera = city_owner(pcity_dest);
> playerb = city_owner(pcity_homecity);
>
> /* playera gets to see the other city on the trade route */
> unfog_area(playera, pcity_homecity->x, pcity_homecity->y, 0);
> fog_area(playera, pcity_homecity->x, pcity_homecity->y, 0);
>
> conta_home = map_get_continent(pcity_homecity->x, pcity_homecity->y,
> playera);
> conta_dest = map_get_continent(pcity_dest->x, pcity_dest->y,
> playera);
>
> contb_home = map_get_continent(pcity_homecity->x, pcity_homecity->y,
> playerb);
> contb_dest = map_get_continent(pcity_dest->x, pcity_dest->y,
> playerb);
>
> /* if either know that the cities are on the same
> * continent, then both will know */
> if (conta_home == conta_dest) {
> map_set_continent(pcity_dest->x, pcity_dest->y,
> playerb, contb_home);
> update_continents(pcity_dest->x, pcity_dest->y,
> playerb);
> } else if (contb_home == contb_dest) {
> map_set_continent(pcity_homecity->x, pcity_homecity->y,
> playera, conta_dest);
> update_continents(pcity_homecity->x, pcity_homecity->y,
> playera);
> }
> I think that should do it.
Only if you add a continent to city_info or tile_info that also the
client(s) get informed.
Raimar
--
email: rf13@xxxxxxxxxxxxxxxxx
"Sit, disk, sit. Good boy. Now spin up. Very good. Here's a netscape
cookie for you. Fetch me some data. Come on, you can do it. No, not that
data. Bad disk. Bad."
-- Calle Dybedahl, alt.sysadmin.recovery
- [Freeciv-Dev] Re: (PR#2223) cma: server knowledge of island != client knowledge, (continued)
- [Freeciv-Dev] Re: (PR#2223) cma: server knowledge of island != client knowledge, Anthony J. Stuckey via RT, 2003/01/08
- [Freeciv-Dev] Re: (PR#2223) cma: server knowledge of island != client knowledge, Raimar Falke via RT, 2003/01/09
- [Freeciv-Dev] Re: (PR#2223) cma: server knowledge of island != client knowledge, Jason Short via RT, 2003/01/09
- [Freeciv-Dev] Re: (PR#2223) cma: server knowledge of island != client knowledge, Raimar Falke via RT, 2003/01/09
- [Freeciv-Dev] Re: (PR#2223) cma: server knowledge of island != client knowledge, ChrisK@xxxxxxxx via RT, 2003/01/09
- [Freeciv-Dev] Re: (PR#2223) cma: server knowledge of island != client knowledge, Todd Goodman via RT, 2003/01/09
- [Freeciv-Dev] Re: (PR#2223) cma: server knowledge of island != client knowledge, Raimar Falke via RT, 2003/01/09
- [Freeciv-Dev] Re: (PR#2223) cma: server knowledge of island != client knowledge, Todd Goodman via RT, 2003/01/09
- [Freeciv-Dev] Re: (PR#2223) cma: server knowledge of island != client knowledge, Mike Kaufman via RT, 2003/01/09
- [Freeciv-Dev] Re: (PR#2223) cma: server knowledge of island != client knowledge, ChrisK@xxxxxxxx via RT, 2003/01/09
- [Freeciv-Dev] Re: (PR#2223) cma: server knowledge of island != client knowledge,
Raimar Falke via RT <=
|
|