Author: pepeto Date: Fri Oct 24 18:33:11 2014 New Revision: 26848 URL: http://svn.gna.org/viewcvs/freeciv?rev=26848&view=rev Log: Give the visibility of units of a player when contracting an alliance with him (e.g. transported units or units in cities).
Reported by Marko Lindqvist <cazfi> See gna bug #20726 Modified: trunk/server/diplhand.c trunk/server/unittools.c trunk/server/unittools.h Modified: trunk/server/diplhand.c URL: http://svn.gna.org/viewcvs/freeciv/trunk/server/diplhand.c?rev=26848&r1=26847&r2=26848&view=diff ============================================================================== --- trunk/server/diplhand.c (original) +++ trunk/server/diplhand.c Fri Oct 24 18:33:11 2014 @@ -584,6 +584,8 @@ notify_player(pdest, NULL, E_TREATY_ALLIANCE, ftc_server, _("You agree on an alliance with %s."), player_name(pgiver)); + give_allied_visibility(pgiver, pdest); + give_allied_visibility(pdest, pgiver); worker_refresh_required = TRUE; break; Modified: trunk/server/unittools.c URL: http://svn.gna.org/viewcvs/freeciv/trunk/server/unittools.c?rev=26848&r1=26847&r2=26848&view=diff ============================================================================== --- trunk/server/unittools.c (original) +++ trunk/server/unittools.c Fri Oct 24 18:33:11 2014 @@ -1303,6 +1303,20 @@ send_city_info(pplayer, pcity); } } city_list_iterate_end; +} + +/**************************************************************************** + Refresh units visibility of 'aplayer' for 'pplayer' after alliance have + been contracted. +****************************************************************************/ +void give_allied_visibility(struct player *pplayer, + struct player *aplayer) +{ + unit_list_iterate(aplayer->units, punit) { + if (can_player_see_unit(pplayer, punit)) { + send_unit_info(pplayer->connections, punit); + } + } unit_list_iterate_end; } /************************************************************************** Modified: trunk/server/unittools.h URL: http://svn.gna.org/viewcvs/freeciv/trunk/server/unittools.h?rev=26848&r1=26847&r2=26848&view=diff ============================================================================== --- trunk/server/unittools.h (original) +++ trunk/server/unittools.h Fri Oct 24 18:33:11 2014 @@ -100,6 +100,7 @@ void resolve_unit_stacks(struct player *pplayer, struct player *aplayer, bool verbose); void remove_allied_visibility(struct player* pplayer, struct player* aplayer); +void give_allied_visibility(struct player *pplayer, struct player *aplayer); int get_unit_vision_at(struct unit *punit, struct tile *ptile, enum vision_layer vlayer); void unit_refresh_vision(struct unit *punit); _______________________________________________ Freeciv-commits mailing list Freeciv-commits@gna.org https://mail.gna.org/listinfo/freeciv-commits