-/* $NetBSD: globals.c,v 1.6 1997/10/13 19:44:17 christos Exp $ */
+/* $NetBSD: globals.c,v 1.16 2010/08/06 09:14:40 dholland Exp $ */
/*
* Copyright (c) 1983, 1993
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- * must display the following acknowledgement:
- * This product includes software developed by the University of
- * California, Berkeley and its contributors.
- * 4. Neither the name of the University nor the names of its contributors
+ * 3. Neither the name of the University nor the names of its contributors
* may be used to endorse or promote products derived from this software
* without specific prior written permission.
*
#if 0
static char sccsid[] = "@(#)globals.c 8.2 (Berkeley) 4/28/95";
#else
-__RCSID("$NetBSD: globals.c,v 1.6 1997/10/13 19:44:17 christos Exp $");
+__RCSID("$NetBSD: globals.c,v 1.16 2010/08/06 09:14:40 dholland Exp $");
#endif
#endif /* not lint */
+#include <sys/types.h>
+#include <setjmp.h>
#include "extern.h"
-struct scenario scene[] = {
+static struct shipspecs specs[];
+
+struct scenario scene[NSCENE] = {
/*
* int winddir;
* int windspeed;
};
int nscene = sizeof scene / sizeof (struct scenario);
-struct shipspecs specs[] = {
+static struct shipspecs specs[] = {
/* bs fs ta guns hull crew1 crew3 gunR carR rig2 rig4 pts */
/* class qual crew2 gunL carL rig1 rig3 */
/*00*/{ 4, 7, 3, 19, 5, 5, 4, 2, 2, 2, 2, 2, 0, 0, 4, 4, 4, 4, 7 },
/* class qual crew2 gunL carL rig1 rig3 */
};
-struct windeffects WET[7][6] = {
+const struct windeffects WET[7][6] = {
{ {9,9,9,9}, {9,9,9,9}, {9,9,9,9}, {9,9,9,9}, {9,9,9,9}, {9,9,9,9} },
{ {3,2,2,0}, {3,2,1,0}, {3,2,1,0}, {3,2,1,0}, {2,1,0,0}, {2,1,0,0} },
{ {1,1,1,0}, {1,1,0,0}, {1,0,0,0}, {1,0,0,0}, {1,0,0,0}, {1,0,0,0} },
{ {2,1,1,0}, {3,2,1,0}, {3,2,1,0}, {3,2,1,0}, {3,3,2,0}, {3,3,2,0} }
};
-struct Tables RigTable[11][6] = {
+const struct Tables RigTable[11][6] = {
{ {0,0,0,0}, {0,0,0,0}, {0,0,0,0}, {0,0,0,0}, {0,0,0,1}, {0,0,1,0} },
{ {0,0,0,0}, {0,0,0,0}, {0,0,0,1}, {0,0,1,0}, {1,0,0,1}, {0,1,1,1} },
{ {0,0,0,0}, {0,0,0,1}, {0,0,1,1}, {0,1,0,1}, {0,1,0,1}, {1,0,1,2} },
{ {1,1,0,4}, {1,0,1,4}, {2,0,0,5}, {0,2,1,5}, {0,1,2,6}, {0,2,0,7} },
{ {1,0,1,5}, {0,2,0,6}, {1,2,0,6}, {1,1,1,6}, {2,0,2,6}, {1,1,2,7} }
};
-struct Tables HullTable[11][6] = {
+const struct Tables HullTable[11][6] = {
{ {0,0,0,0}, {0,0,0,0}, {0,0,0,0}, {0,0,0,0}, {1,0,0,0}, {0,1,0,0} },
{ {0,0,0,0}, {0,0,0,0}, {0,1,0,0}, {1,1,0,0}, {1,0,1,0}, {1,0,1,1} },
{ {0,1,0,0}, {1,0,0,0}, {1,1,0,0}, {1,0,1,0}, {1,0,1,1}, {2,1,0,0} },
{ {2,2,4,0}, {3,3,1,1}, {4,2,1,1}, {5,1,0,2}, {5,1,2,1}, {6,2,2,0} },
};
-char AMMO[9][4] = {
+const char AMMO[9][4] = {
{ -1, 1, 0, 1 },
{ -1, 1, 0, 1 },
{ -1, 1, 0, 1 },
{ -3, 2, 0, 3 },
{ -3, 2, 0, 3 }
};
-
-char HDT[9][10] = {
+
+const char HDT[9][10] = {
{ 1, 0,-1,-2,-3,-3,-4,-4,-4,-4 },
{ 1, 1, 0,-1,-2,-2,-3,-3,-3,-3 },
{ 2, 1, 0,-1,-2,-2,-3,-3,-3,-3 },
{ 5, 4, 3, 2, 1, 1, 0, 0, 0, 0 }
};
-char HDTrake[9][10] = {
+const char HDTrake[9][10] = {
{ 2, 1, 0,-1,-2,-2,-3,-3,-3,-3 },
{ 2, 2, 1, 0,-1,-1,-2,-2,-2,-2 },
{ 3, 2, 1, 0,-1,-1,-2,-2,-2,-2 },
{ 9, 8, 7, 6, 5, 5, 4, 4, 4, 4 }
};
-char QUAL[9][5] = {
+const char QUAL[9][5] = {
{ -1, 0, 0, 1, 1 },
{ -1, 0, 0, 1, 1 },
{ -1, 0, 0, 1, 2 },
{ -2,-1, 0, 2, 3 }
};
-char MT[9][3] = {
+const char MT[9][3] = {
{ 1, 0, 0 },
{ 1, 1, 0 },
{ 2, 1, 0 },
{ 4, 4, 2 }
};
-char rangeofshot[] = {
+const char rangeofshot[] = {
0,
1, /* grape */
3, /* chain */
1 /* double */
};
-char *countryname[] = {
+const char *const countryname[] = {
"American", "British", "Spanish", "French", "Japanese",
"Federation", "Klingon", "Orion"
};
-char *classname[] = {
+const char *const classname[] = {
"Drift wood",
"Ship of the Line",
"Ship of the Line",
"Brig"
};
-char *directionname[] = {
+const char *const shortclassname[] = {
+ "Rowboat",
+ "Ship",
+ "Ship",
+ "Frigate",
+ "Corvette",
+ "Sloop",
+ "Brig"
+};
+
+const char *const directionname[] = {
"dead ahead",
"off the starboard bow",
"off the starboard beam",
"dead ahead"
};
-char *qualname[] = { "dead", "mutinous", "green", "mundane", "crack", "elite" };
+const char *const qualname[] = {
+ "dead",
+ "mutinous",
+ "green",
+ "mundane",
+ "crack",
+ "elite"
+};
+
+const char loadname[] = { '-', 'G', 'C', 'R', 'D', 'E' };
+
+const char dr[] = { 0, 1, 1, 0, -1, -1, -1, 0, 1 };
+const char dc[] = { 0, 0, -1, -1, -1, 0, 1, 1, 1 };
+
+int mode;
+jmp_buf restart;
+
+bool randomize; /* -x, give first available ship */
+bool longfmt; /* -l, print score in long format */
+bool nobells; /* -b, don't ring bell before Signal */
+
+gid_t gid;
+gid_t egid;
-char loadname[] = { '-', 'G', 'C', 'R', 'D', 'E' };
+struct scenario *cc; /* the current scenario */
+struct ship *ls; /* &cc->ship[cc->vessels] */
-char dr[] = { 0, 1, 1, 0, -1, -1, -1, 0, 1 };
-char dc[] = { 0, 0, -1, -1, -1, 0, 1, 1, 1 };
+int winddir;
+int windspeed;
+int turn;
+int game;
+int alive;
+int people;
+int hasdriver;