Author: cazfi
Date: Thu Apr 23 20:49:35 2015
New Revision: 28847

URL: http://svn.gna.org/viewcvs/freeciv?rev=28847&view=rev
Log:
Sanity check trade routes.

See patch #6023

Modified:
    trunk/server/sanitycheck.c

Modified: trunk/server/sanitycheck.c
URL: 
http://svn.gna.org/viewcvs/freeciv/trunk/server/sanitycheck.c?rev=28847&r1=28846&r2=28847&view=diff
==============================================================================
--- trunk/server/sanitycheck.c  (original)
+++ trunk/server/sanitycheck.c  Thu Apr 23 20:49:35 2015
@@ -223,6 +223,7 @@
 {
   struct player *pplayer = city_owner(pcity);
   struct tile *pcenter = city_tile(pcity);
+  int i;
 
   if (NULL == pcenter) {
     /* Editor! */
@@ -263,6 +264,36 @@
       SANITY_CITY(pcity, city_from_great_wonder(pimprove) == pcity);
     }
   } city_built_iterate_end;
+
+  for (i = 0; i < MAX_TRADE_ROUTES; i++) {
+    struct city *partner = game_city_by_number(pcity->trade[i]);
+
+    if (partner != NULL) {
+      int j;
+
+      for (j = 0; j < MAX_TRADE_ROUTES; j++) {
+        if (game_city_by_number(partner->trade[j]) == pcity) {
+          break;
+        }
+      }
+
+      SANITY_CITY(pcity, j < MAX_TRADE_ROUTES);
+
+      if (j < MAX_TRADE_ROUTES) {
+        switch (partner->trade_direction[j]) {
+        case RDIR_TO:
+          SANITY_CITY(pcity, pcity->trade_direction[i] == RDIR_FROM);
+          break;
+        case RDIR_FROM:
+          SANITY_CITY(pcity, pcity->trade_direction[i] == RDIR_TO);
+          break;
+        case RDIR_BIDIRECTIONAL:
+          SANITY_CITY(pcity, pcity->trade_direction[i] == RDIR_BIDIRECTIONAL);
+          break;
+        }
+      }
+    }
+  }
 
   return TRUE;
 }


_______________________________________________
Freeciv-commits mailing list
Freeciv-commits@gna.org
https://mail.gna.org/listinfo/freeciv-commits

Reply via email to