Author: jtn
Date: Mon Feb 16 09:44:52 2015
New Revision: 28181

URL: http://svn.gna.org/viewcvs/freeciv?rev=28181&view=rev
Log:
Refresh city vision radius whenever a tech is researched, and once a
turn as backup.
This fixes delayed civ2civ3 Electricity vision bonus.

See gna bug #23254.

Modified:
    branches/S2_5/server/citytools.c
    branches/S2_5/server/citytools.h
    branches/S2_5/server/srv_main.c
    branches/S2_5/server/techtools.c

Modified: branches/S2_5/server/citytools.c
URL: 
http://svn.gna.org/viewcvs/freeciv/branches/S2_5/server/citytools.c?rev=28181&r1=28180&r2=28181&view=diff
==============================================================================
--- branches/S2_5/server/citytools.c    (original)
+++ branches/S2_5/server/citytools.c    Mon Feb 16 09:44:52 2015
@@ -2924,6 +2924,17 @@
   ASSERT_VISION(pcity->server.vision);
 }
 
+/****************************************************************************
+  Refresh the vision of all cities owned by a player, for empire-wide
+  effects.
+****************************************************************************/
+void refresh_player_cities_vision(struct player *pplayer)
+{
+  city_list_iterate(pplayer->cities, pcity) {
+    city_refresh_vision(pcity);
+  } city_list_iterate_end;
+}
+
 /**************************************************************************
   Updates the squared city radius. Returns if the radius is changed.
 **************************************************************************/

Modified: branches/S2_5/server/citytools.h
URL: 
http://svn.gna.org/viewcvs/freeciv/branches/S2_5/server/citytools.h?rev=28181&r1=28180&r2=28181&view=diff
==============================================================================
--- branches/S2_5/server/citytools.h    (original)
+++ branches/S2_5/server/citytools.h    Mon Feb 16 09:44:52 2015
@@ -107,6 +107,7 @@
 
 void city_landlocked_sell_coastal_improvements(struct tile *ptile);
 void city_refresh_vision(struct city *pcity);
+void refresh_player_cities_vision(struct player *pplayer);
 
 void sync_cities(void);
 

Modified: branches/S2_5/server/srv_main.c
URL: 
http://svn.gna.org/viewcvs/freeciv/branches/S2_5/server/srv_main.c?rev=28181&r1=28180&r2=28181&view=diff
==============================================================================
--- branches/S2_5/server/srv_main.c     (original)
+++ branches/S2_5/server/srv_main.c     Mon Feb 16 09:44:52 2015
@@ -1064,6 +1064,11 @@
     flush_packets();
   } phase_players_iterate_end;
 
+  /* Some player/global effect may have changed cities' vision range */
+  phase_players_iterate(pplayer) {
+    refresh_player_cities_vision(pplayer);
+  } phase_players_iterate_end;
+
   kill_dying_players();
 
   /* Unfreeze sending of cities. */

Modified: branches/S2_5/server/techtools.c
URL: 
http://svn.gna.org/viewcvs/freeciv/branches/S2_5/server/techtools.c?rev=28181&r1=28180&r2=28181&view=diff
==============================================================================
--- branches/S2_5/server/techtools.c    (original)
+++ branches/S2_5/server/techtools.c    Mon Feb 16 09:44:52 2015
@@ -441,6 +441,7 @@
   cities_iterate(pcity) {
     /* Refresh the city data; this als updates the squared city radius. */
     city_refresh(pcity);
+    city_refresh_vision(pcity);
     send_city_info(city_owner(pcity), pcity);
   } cities_iterate_end;
   


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

Reply via email to