Author: jtn Date: Mon Feb 16 09:32:44 2015 New Revision: 28175 URL: http://svn.gna.org/viewcvs/freeciv?rev=28175&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_6/server/citytools.c branches/S2_6/server/citytools.h branches/S2_6/server/srv_main.c branches/S2_6/server/techtools.c Modified: branches/S2_6/server/citytools.c URL: http://svn.gna.org/viewcvs/freeciv/branches/S2_6/server/citytools.c?rev=28175&r1=28174&r2=28175&view=diff ============================================================================== --- branches/S2_6/server/citytools.c (original) +++ branches/S2_6/server/citytools.c Mon Feb 16 09:32:44 2015 @@ -2914,6 +2914,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_6/server/citytools.h URL: http://svn.gna.org/viewcvs/freeciv/branches/S2_6/server/citytools.h?rev=28175&r1=28174&r2=28175&view=diff ============================================================================== --- branches/S2_6/server/citytools.h (original) +++ branches/S2_6/server/citytools.h Mon Feb 16 09:32:44 2015 @@ -95,6 +95,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_6/server/srv_main.c URL: http://svn.gna.org/viewcvs/freeciv/branches/S2_6/server/srv_main.c?rev=28175&r1=28174&r2=28175&view=diff ============================================================================== --- branches/S2_6/server/srv_main.c (original) +++ branches/S2_6/server/srv_main.c Mon Feb 16 09:32:44 2015 @@ -1127,6 +1127,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_6/server/techtools.c URL: http://svn.gna.org/viewcvs/freeciv/branches/S2_6/server/techtools.c?rev=28175&r1=28174&r2=28175&view=diff ============================================================================== --- branches/S2_6/server/techtools.c (original) +++ branches/S2_6/server/techtools.c Mon Feb 16 09:32:44 2015 @@ -436,6 +436,7 @@ city_list_iterate(aplayer->cities, pcity) { /* Refresh the city data; this also updates the squared city radius. */ city_refresh(pcity); + city_refresh_vision(pcity); send_city_info(aplayer, pcity); } city_list_iterate_end; _______________________________________________ Freeciv-commits mailing list Freeciv-commits@gna.org https://mail.gna.org/listinfo/freeciv-commits