Author: cazfi Date: Mon Feb 29 12:33:29 2016 New Revision: 32132 URL: http://svn.gna.org/viewcvs/freeciv?rev=32132&view=rev Log: Rearranged loops of checking if base/road flag is near for optimization purposes
See patch #7012 Modified: trunk/common/base.c trunk/common/road.c Modified: trunk/common/base.c URL: http://svn.gna.org/viewcvs/freeciv/trunk/common/base.c?rev=32132&r1=32131&r2=32132&view=diff ============================================================================== --- trunk/common/base.c (original) +++ trunk/common/base.c Mon Feb 29 12:33:29 2016 @@ -38,15 +38,15 @@ ****************************************************************************/ bool is_base_flag_card_near(const struct tile *ptile, enum base_flag_id flag) { - cardinal_adjc_iterate(ptile, adjc_tile) { - extra_type_by_cause_iterate(EC_BASE, pextra) { - struct base_type *pbase = extra_base_get(pextra); - - if (base_has_flag(pbase, flag) && tile_has_extra(adjc_tile, pextra)) { - return TRUE; - } - } extra_type_by_cause_iterate_end; - } cardinal_adjc_iterate_end; + extra_type_by_cause_iterate(EC_BASE, pextra) { + if (base_has_flag(extra_base_get(pextra), flag)) { + cardinal_adjc_iterate(ptile, adjc_tile) { + if (tile_has_extra(adjc_tile, pextra)) { + return TRUE; + } + } cardinal_adjc_iterate_end; + } + } extra_type_by_cause_iterate_end; return FALSE; } @@ -57,15 +57,15 @@ ****************************************************************************/ bool is_base_flag_near_tile(const struct tile *ptile, enum base_flag_id flag) { - adjc_iterate(ptile, adjc_tile) { - extra_type_by_cause_iterate(EC_BASE, pextra) { - struct base_type *pbase = extra_base_get(pextra); - - if (base_has_flag(pbase, flag) && tile_has_extra(adjc_tile, pextra)) { - return TRUE; - } - } extra_type_by_cause_iterate_end; - } adjc_iterate_end; + extra_type_by_cause_iterate(EC_BASE, pextra) { + if (base_has_flag(extra_base_get(pextra), flag)) { + adjc_iterate(ptile, adjc_tile) { + if (tile_has_extra(adjc_tile, pextra)) { + return TRUE; + } + } adjc_iterate_end; + } + } extra_type_by_cause_iterate_end; return FALSE; } Modified: trunk/common/road.c URL: http://svn.gna.org/viewcvs/freeciv/trunk/common/road.c?rev=32132&r1=32131&r2=32132&view=diff ============================================================================== --- trunk/common/road.c (original) +++ trunk/common/road.c Mon Feb 29 12:33:29 2016 @@ -426,15 +426,15 @@ ****************************************************************************/ bool is_road_flag_card_near(const struct tile *ptile, enum road_flag_id flag) { - cardinal_adjc_iterate(ptile, adjc_tile) { - extra_type_by_cause_iterate(EC_ROAD, pextra) { - struct road_type *proad = extra_road_get(pextra); - - if (road_has_flag(proad, flag) && tile_has_extra(adjc_tile, pextra)) { - return TRUE; - } - } extra_type_by_cause_iterate_end; - } cardinal_adjc_iterate_end; + extra_type_by_cause_iterate(EC_ROAD, pextra) { + if (road_has_flag(extra_road_get(pextra), flag)) { + cardinal_adjc_iterate(ptile, adjc_tile) { + if (tile_has_extra(adjc_tile, pextra)) { + return TRUE; + } + } cardinal_adjc_iterate_end; + } + } extra_type_by_cause_iterate_end; return FALSE; } @@ -445,14 +445,15 @@ ****************************************************************************/ bool is_road_flag_near_tile(const struct tile *ptile, enum road_flag_id flag) { - adjc_iterate(ptile, adjc_tile) { - extra_type_by_cause_iterate(EC_ROAD, pextra) { - if (road_has_flag(extra_road_get(pextra), flag) - && tile_has_extra(adjc_tile, pextra)) { - return TRUE; - } - } extra_type_by_cause_iterate_end; - } adjc_iterate_end; + extra_type_by_cause_iterate(EC_ROAD, pextra) { + if (road_has_flag(extra_road_get(pextra), flag)) { + adjc_iterate(ptile, adjc_tile) { + if (tile_has_extra(adjc_tile, pextra)) { + return TRUE; + } + } adjc_iterate_end; + } + } extra_type_by_cause_iterate_end; return FALSE; } _______________________________________________ Freeciv-commits mailing list Freeciv-commits@gna.org https://mail.gna.org/listinfo/freeciv-commits