Author: sveinung Date: Tue Jan 13 12:50:32 2015 New Revision: 27658 URL: http://svn.gna.org/viewcvs/freeciv?rev=27658&view=rev Log: Move the cancel all illegal activities at a tile code to a shared function.
See patch #5705 Modified: trunk/server/unittools.c trunk/server/unittools.h Modified: trunk/server/unittools.c URL: http://svn.gna.org/viewcvs/freeciv/trunk/server/unittools.c?rev=27658&r1=27657&r2=27658&view=diff ============================================================================== --- trunk/server/unittools.c (original) +++ trunk/server/unittools.c Tue Jan 13 12:50:32 2015 @@ -734,6 +734,28 @@ _("%s cannot be converted."), utype_name_translation(from_type)); } +} + +/************************************************************************** + Cancel all illegal activities done by units at the specified tile. +**************************************************************************/ +void unit_activities_cancel_all_illegal(const struct tile *ptile) +{ + unit_list_iterate(ptile->units, punit2) { + if (!can_unit_continue_current_activity(punit2)) { + if (unit_has_orders(punit2)) { + notify_player(unit_owner(punit2), unit_tile(punit2), + E_UNIT_ORDERS, ftc_server, + _("Orders for %s aborted because activity " + "is no longer available."), + unit_link(punit2)); + free_unit_orders(punit2); + } + + set_unit_activity(punit2, ACTIVITY_IDLE); + send_unit_info(NULL, punit2); + } + } unit_list_iterate_end; } /************************************************************************** @@ -934,20 +956,7 @@ * such as building irrigation if we removed the only source * of water from them. */ adjc_iterate(ptile, ptile2) { - unit_list_iterate(ptile2->units, punit2) { - if (!can_unit_continue_current_activity(punit2)) { - if (unit_has_orders(punit2)) { - notify_player(unit_owner(punit2), unit_tile(punit2), - E_UNIT_ORDERS, ftc_server, - _("Orders for %s aborted because activity " - "is no longer available."), - unit_link(punit2)); - free_unit_orders(punit2); - } - set_unit_activity(punit2, ACTIVITY_IDLE); - send_unit_info(NULL, punit2); - } - } unit_list_iterate_end; + unit_activities_cancel_all_illegal(ptile2); } adjc_iterate_end; break; } Modified: trunk/server/unittools.h URL: http://svn.gna.org/viewcvs/freeciv/trunk/server/unittools.h?rev=27658&r1=27657&r2=27658&view=diff ============================================================================== --- trunk/server/unittools.h (original) +++ trunk/server/unittools.h Tue Jan 13 12:50:32 2015 @@ -156,4 +156,6 @@ bool unit_can_be_retired(struct unit *punit); +void unit_activities_cancel_all_illegal(const struct tile *ptile); + #endif /* FC__UNITTOOLS_H */ _______________________________________________ Freeciv-commits mailing list Freeciv-commits@gna.org https://mail.gna.org/listinfo/freeciv-commits