Author: cazfi
Date: Fri Nov 28 06:39:49 2014
New Revision: 27142

URL: http://svn.gna.org/viewcvs/freeciv?rev=27142&view=rev
Log:
remove_player_from_maps() clears also extra owner from the tiles where the
it has been the player being removed.

See bug #22948

Modified:
    trunk/server/maphand.c

Modified: trunk/server/maphand.c
URL: 
http://svn.gna.org/viewcvs/freeciv/trunk/server/maphand.c?rev=27142&r1=27141&r2=27142&view=diff
==============================================================================
--- trunk/server/maphand.c      (original)
+++ trunk/server/maphand.c      Fri Nov 28 06:39:49 2014
@@ -1109,6 +1109,8 @@
   whole_map_iterate(ptile) {
     /* Clear all players' knowledge about the removed player, and free
      * data structures (including those in removed player's player map). */
+    bool reality_changed = FALSE;
+
     players_iterate(aplayer) {
       struct player_tile *aplrtile;
       bool changed = FALSE;
@@ -1151,6 +1153,14 @@
     /* Free all claimed tiles. */
     if (tile_owner(ptile) == pplayer) {
       tile_set_owner(ptile, NULL, NULL);
+      reality_changed = TRUE;
+    }
+    if (base_owner(ptile) == pplayer) {
+      ptile->extras_owner = NULL;
+      reality_changed = TRUE;
+    }
+
+    if (reality_changed) {
       /* Update anyone who can see the tile (e.g. global observers) */
       send_tile_info(NULL, ptile, FALSE);
     }


_______________________________________________
Freeciv-commits mailing list
Freeciv-commits@gna.org
https://mail.gna.org/listinfo/freeciv-commits

Reply via email to