Get rid of FORTRANisms.
[super-star-trek.git] / sst.h
diff --git a/sst.h b/sst.h
index beeee5c6dfc1d1291b68f773c686c3c523e8baa6..5b68074186a972e7fc4c0b43c7141fa4406440f0 100644 (file)
--- a/sst.h
+++ b/sst.h
@@ -20,6 +20,7 @@
 #define NEVENTS (8)
 #define GALSIZE        (8)
 #define QUADSIZE (10)
 #define NEVENTS (8)
 #define GALSIZE        (8)
 #define QUADSIZE (10)
+#define BASEMAX        (6)
 
 typedef struct {
     int x;     /* Quadrant location of planet */
 
 typedef struct {
     int x;     /* Quadrant location of planet */
@@ -42,8 +43,8 @@ typedef struct {
        killc,                  // commanders killed
        galaxy[GALSIZE+1][GALSIZE+1],   // The Galaxy (subscript 0 not used)
        cx[QUADSIZE+1],cy[QUADSIZE+1],  // Commander quadrant coordinates
        killc,                  // commanders killed
        galaxy[GALSIZE+1][GALSIZE+1],   // The Galaxy (subscript 0 not used)
        cx[QUADSIZE+1],cy[QUADSIZE+1],  // Commander quadrant coordinates
-       baseqx[6],              // Base quadrant X
-       baseqy[6],              // Base quadrant Y
+       baseqx[BASEMAX],                // Base quadrant X
+       baseqy[BASEMAX],                // Base quadrant Y
        newstuf[GALSIZE+1][GALSIZE+1],  // Extended galaxy goodies
        isx, isy,               // Coordinate of Super Commander
        nscrem,                 // remaining super commanders
        newstuf[GALSIZE+1][GALSIZE+1],  // Extended galaxy goodies
        isx, isy,               // Coordinate of Super Commander
        nscrem,                 // remaining super commanders
@@ -57,6 +58,33 @@ typedef struct {
            remtime;            // remaining time
 } snapshot;                            // Data that is snapshot
 
            remtime;            // remaining time
 } snapshot;                            // Data that is snapshot
 
+/*
+ * This is how the integers in the galaxy array are encoded.
+ * Someday these should turn into structure fields.
+ */
+#define SUPERNOVA_PLACE        1000
+#define KLINGON_PLACE  100
+#define BASE_PLACE     10
+#define STAR_PLACE     1
+#define KLINGONS(n)    ((n)/KLINGON_PLACE)
+#define BASES(n)       (((n)%KLINGON_PLACE)/BASE_PLACE)
+#define STARS(n)       ((n)%BASE_PLACE)
+#define NOEXIT(s)      ((s) > 899)     /* supernova or >8 Klingons */
+
+/* for newstuff */
+#define ROMULAN_PLACE  10
+#define ROMULANS(n)    ((n)/ROMULAN_PLACE)
+
+/* for starch */
+#define CHART_UNKNOWN  -1
+
+#define SKILL_NONE     0
+#define SKILL_NOVICE   1
+#define SKILL_FAIR     2
+#define SKILL_GOOD     3
+#define SKILL_EXPERT   4
+#define SKILL_EMERITUS 5
+
 // Scalar variables that are needed for freezing the game
 // are placed in a structure. #defines are used to access by their
 // original names. Gee, I could have done this with the d structure,
 // Scalar variables that are needed for freezing the game
 // are placed in a structure. #defines are used to access by their
 // original names. Gee, I could have done this with the d structure,
@@ -401,8 +429,7 @@ void crmshp(void);
 char *cramlc(enum loctype, int, int);
 double expran(double);
 double Rand(void);
 char *cramlc(enum loctype, int, int);
 double expran(double);
 double Rand(void);
-void iran8(int *, int *);
-void iran10(int *, int *);
+void iran(int, int *, int *);
 #define square(i) ((i)*(i))
 void dropin(int, int*, int*);
 void newcnd(void);
 #define square(i) ((i)*(i))
 void dropin(int, int*, int*);
 void newcnd(void);