Author: cazfi
Date: Mon Feb 29 12:33:36 2016
New Revision: 32133

URL: http://svn.gna.org/viewcvs/freeciv?rev=32133&view=rev
Log:
Rearranged loops of checking if base/road flag is near for optimization purposes

See patch #7012

Modified:
    branches/S2_6/common/base.c
    branches/S2_6/common/road.c

Modified: branches/S2_6/common/base.c
URL: 
http://svn.gna.org/viewcvs/freeciv/branches/S2_6/common/base.c?rev=32133&r1=32132&r2=32133&view=diff
==============================================================================
--- branches/S2_6/common/base.c (original)
+++ branches/S2_6/common/base.c Mon Feb 29 12:33:36 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: branches/S2_6/common/road.c
URL: 
http://svn.gna.org/viewcvs/freeciv/branches/S2_6/common/road.c?rev=32133&r1=32132&r2=32133&view=diff
==============================================================================
--- branches/S2_6/common/road.c (original)
+++ branches/S2_6/common/road.c Mon Feb 29 12:33:36 2016
@@ -424,15 +424,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;
 }
@@ -443,14 +443,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

Reply via email to