Complete.Org: Mailing Lists: Archives: freeciv-dev: August 2004:
[Freeciv-Dev] (PR#9798) PATCH assign_continent_number_count size of cont
Home

[Freeciv-Dev] (PR#9798) PATCH assign_continent_number_count size of cont

[Top] [All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index] [Thread Index]
To: undisclosed-recipients: ;
Subject: [Freeciv-Dev] (PR#9798) PATCH assign_continent_number_count size of continents
From: "Marcelo Burda" <mburda@xxxxxxxxx>
Date: Fri, 27 Aug 2004 13:23:43 -0700
Reply-to: rt@xxxxxxxxxxx

<URL: http://rt.freeciv.org/Ticket/Display.html?id=9798 >

> [mburda - Mar. Aoû. 24 19:55:44 2004]:
> 
> depend de 9796
> This is used by 9627 patch to clean easy small isle or oceans
> 
> Marcelo
> 
Update
diff -ruN -Xfreeciv/diff_ignore freeciv/server/maphand.c 
freeciv_/server/maphand.c
--- freeciv/server/maphand.c    2004-08-27 12:14:41.000000000 +0200
+++ freeciv_/server/maphand.c   2004-08-27 20:23:48.747602024 +0200
@@ -41,6 +41,10 @@
 #include "maphand.h"
 
 /**************************************************************************
+ * used to store the size of continent
+ **************************************************************************/
+int mass_size[2 * MAP_NCONT];
+/**************************************************************************
   Number this tile and nearby tiles (recursively) with the specified
   continent number, using a flood-fill algorithm.
 
@@ -58,6 +62,7 @@
   }
 
   map_set_continent(x, y, nr);
+  MASS_SIZE(nr)++;
 
   adjc_iterate(x, y, x1, y1) {
     assign_continent_flood(x1, y1, is_land, nr);
@@ -73,7 +78,12 @@
 **************************************************************************/
 void assign_continent_numbers(void)
 {
+  int i;
+
   /* Initialize */
+  for(i = 0; i < 2 * MAP_NCONT; i++) {
+    MASS_SIZE(i) = 0;
+  }
   map.num_continents = 0;
   map.num_oceans = 0;
 
diff -ruN -Xfreeciv/diff_ignore freeciv/server/maphand.h 
freeciv_/server/maphand.h
--- freeciv/server/maphand.h    2004-08-27 12:14:41.000000000 +0200
+++ freeciv_/server/maphand.h   2004-08-27 20:21:53.920058464 +0200
@@ -52,6 +52,9 @@
 /* The maximum number of continents and oceans. */
 #define MAP_NCONT 300
 
+/* signus safe way for nr continent <0 or >0 */
+extern int mass_size[2 * MAP_NCONT];
+#define MASS_SIZE(nr) (mass_size[FC_WRAP((nr), 2 * MAP_NCONT)]) 
 void assign_continent_numbers(void);
 
 void global_warming(int effect);

[Prev in Thread] Current Thread [Next in Thread]