/*
* Empire - A multi-player, client/server Internet based war game.
- * Copyright (C) 1986-2009, Dave Pare, Jeff Bailey, Thomas Ruschak,
+ * Copyright (C) 1986-2010, Dave Pare, Jeff Bailey, Thomas Ruschak,
* Ken Stevens, Steve McClure
*
* This program is free software; you can redistribute it and/or modify
#define new_y(newy) (((newy) + WORLD_Y) % WORLD_Y)
#define rnd(x) (random() % (x))
-int secs; /* number of sectors grown */
-int ctot; /* total number of continents and islands grown */
-int *isecs; /* array of how large each island is */
+static int secs; /* number of sectors grown */
+static int ctot; /* total number of continents and islands grown */
+static int *isecs; /* array of how large each island is */
-int nc, sc, di, sp, pm, ni, is, id; /* the 8 arguments to this program */
-unsigned long rnd_seed; /* optional seed can be passed as an argument */
-int *capx, *capy; /* location of the nc capitals */
-int *mc, mcc; /* array and counter used for stability
+static int nc, sc, di, sp, pm, ni, is, id; /* the 8 args to this program */
+static unsigned long rnd_seed; /* optional seed argument */
+static int *capx, *capy; /* location of the nc capitals */
+static int *mc, mcc; /* array and counter used for stability
check when perturbing */
-int spike; /* are we spiking? */
-int mind; /* the final distance between capitals that
+static int spike; /* are we spiking? */
+static int mind; /* the final distance between capitals that
we achieved */
-int dirx[] = { -2, -1, 1, 2, 1, -1 }; /* gyujnb */
-int diry[] = { 0, -1, -1, 0, 1, 1 };
-
-int **own; /* owner of the sector. -1 means water */
-int **elev; /* elevation of the sectors */
-int **sectx, **secty; /* the sectors for each continent */
-int **sectc; /* which sectors are on the coast? */
-int *vector; /* used for measuring distances */
-int *weight; /* used for placing mountains */
-int *dsea, *dmoun; /* the dist to the ocean and mountain */
-int fl_status; /* is anything wrong? */
+static int dirx[] = { -2, -1, 1, 2, 1, -1 }; /* gyujnb */
+static int diry[] = { 0, -1, -1, 0, 1, 1 };
+
+static int **own; /* owner of the sector. -1 means water */
+static int **elev; /* elevation of the sectors */
+static int **sectx, **secty; /* the sectors for each continent */
+static int **sectc; /* which sectors are on the coast? */
+static int *vector; /* used for measuring distances */
+static int *weight; /* used for placing mountains */
+static int *dsea, *dmoun; /* the dist to the ocean and mountain */
+static int fl_status; /* is anything wrong? */
#define STATUS_NO_ROOM 1 /* there was no room to grow */
#define NUMTRIES 10 /* keep trying to grow this many times */
-const char *numletter =
+static const char *numletter =
"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
static void help(char *);
exit(1);
}
if (nc * sc + nc * my_sqrt(sc) * 2 * (di + 1) > WORLD_X * WORLD_Y) {
- puts("fairland: error -- world not big enough to fit continents.");
- puts("arguments must satisfy:");
+ puts("fairland: warning -- world might be too small to fit continents.");
+ puts("arguments should satisfy:");
puts("nc*sc*sc + nc*sqrt(sc)*2*(di+1) < WORLD_X * WORLD_Y");
- exit(1);
}
}
secs = 0;
if (!place_island(c, &x, &y))
return;
- isiz = 1 + rnd(2 * is - 1);
+ isiz = 1 + rnd(is) + rnd(is);
do {
++secs;
find_coast(c);
sct->sct_type = SCT_MOUNT;
sct->sct_elev = total;
sct->sct_newtype = sct->sct_type;
+ sct->sct_dterr = own[sct->sct_x][y] + 1;
if (ORE)
add_resources(sct);
}
fprintf(script, "newcap %d %d,%d\n", c + 1, capx[c], capy[c]);
}
fprintf(script, "add %d visitor visitor v i\n", c + 1);
- ++c;
fclose(script);
return 0;
}