Complete.Org: Mailing Lists: Archives: freeciv-dev: August 2004:
[Freeciv-Dev] (PR#9716) fill_ranges_improv_lists assert
Home

[Freeciv-Dev] (PR#9716) fill_ranges_improv_lists assert

[Top] [All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index] [Thread Index]
To: chrisk@xxxxxxxxx
Subject: [Freeciv-Dev] (PR#9716) fill_ranges_improv_lists assert
From: "Mateusz Stefek" <mstefek@xxxxxxxxx>
Date: Fri, 20 Aug 2004 01:25:33 -0700
Reply-to: rt@xxxxxxxxxxx

<URL: http://rt.freeciv.org/Ticket/Display.html?id=9716 >

> [jdorje - Wed Aug 18 16:53:17 2004]:

> With this patch you can see that the values sent are actually correct. 
> With an additional log call added it becomes clear that the problem is 
> that the tile info isn't being sent - or rather, that the city info (for 
> the city on the tile) is being sent before the tile info itself.
> 
> jason
> 
This patch changes the order of packets which are sent when a tile is
being revealed.

I'm going to commit it in few hours, because it's serios bug which makes
the game unplayable.
--
mateusz
Index: maphand.c
===================================================================
RCS file: /home/freeciv/CVS/freeciv/server/maphand.c,v
retrieving revision 1.138
diff -u -r1.138 maphand.c
--- maphand.c   13 Aug 2004 15:59:13 -0000      1.138
+++ maphand.c   20 Aug 2004 08:21:49 -0000
@@ -502,6 +502,12 @@
 
   map_set_known(x, y, pplayer);
 
+  /* send info about the tile itself 
+   * It has to be sent first because the client needs correct
+   * continent number before it can handle following packets
+   */
+  send_tile_info_always(pplayer, &pplayer->connections, x, y);
+
   /* discover units */
   unit_list_iterate(map_get_tile(x, y)->units, punit)
     send_unit_info(pplayer, punit);
@@ -512,9 +518,6 @@
   if ((pcity=map_get_city(x, y)))
     send_city_info(pplayer, pcity);
 
-  /* send info about the tile itself */
-  send_tile_info_always(pplayer, &pplayer->connections, x, y);
-
   /* If the tile was not known before we need to refresh the cities that
      can use the tile. */
   if (!old_known) {

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