Magic number changes, get rid of nulplanet structure.
[super-star-trek.git] / sst.h
diff --git a/sst.h b/sst.h
index c93fbc5deccba64d4934c4c3259879e204a8ca3a..a2c4c92cbcac44e638945b80bc0c76cdc04c6314 100644 (file)
--- a/sst.h
+++ b/sst.h
 \r
 // #define DEBUG\r
 \r
-#define ndevice (15)   // Number of devices\r
-#define phasefac (2.0)\r
+#define NDEVICES (15)  // Number of devices\r
+#define PHASEFAC (2.0)\r
 #define PLNETMAX (10)\r
 #define NEVENTS (8)\r
 \r
 typedef struct {\r
-       int x;  /* Quadrant location of planet */\r
-       int y;\r
-       int pclass; /* class M, N, or O (1, 2, or 3) */\r
-       int crystals; /* has crystals */\r
-       int known;   /* =1 contents known, =2 shuttle on this planet */\r
+    int x;     /* Quadrant location of planet */\r
+    int y;\r
+    enum {M=0, N=1, O=2} pclass;\r
+    int crystals; /* has crystals */\r
+    enum {unknown, known, shuttle_down} known;\r
 } planet;\r
 \r
+#define DESTROY(pl)    memset(pl, '\0', sizeof(planet))\r
+\r
 typedef struct {\r
     int snap,          // snapshot taken\r
        remkl,                  // remaining klingons\r
@@ -43,7 +45,7 @@ typedef struct {
        nromrem,                // Romulans remaining\r
        nsckill,                // super commanders killed\r
        nplankl;                // destroyed planets\r
-       planet plnets[PLNETMAX+1];  // Planet information\r
+       planet plnets[PLNETMAX];  // Planet information\r
        double date,            // stardate\r
            remres,             // remaining resources\r
            remtime;            // remaining time\r
@@ -54,14 +56,17 @@ typedef struct {
 // original names. Gee, I could have done this with the d structure,\r
 // but I just didn't think of it back when I started.\r
 \r
-EXTERN struct foo2 {\r
+#define SSTMAGIC       "SST2.0\n"\r
+\r
+EXTERN struct {\r
+    char magic[sizeof(SSTMAGIC)];\r
     snapshot state;\r
     snapshot snapsht;\r
     char quad[11][11];         // contents of our quadrant\r
     double kpower[21];         // enemy energy levels\r
     double kdist[21];          // enemy distances\r
     double kavgd[21];          // average distances\r
-    double damage[ndevice+1];  // damage encountered\r
+    double damage[NDEVICES+1]; // damage encountered\r
     double future[NEVENTS+1];  // future events\r
     char passwd[10];           // Self Destruct password\r
     int kx[21];                        // enemy sector locations\r
@@ -247,8 +252,7 @@ EXTERN struct foo2 {
 \r
 /* the following global state doesn't need to be saved */\r
 EXTERN int fromcommandline; // Game start from command line options\r
-EXTERN char    *device[ndevice+1];\r
-EXTERN planet nulplanet;       // zeroed planet structure\r
+EXTERN char    *device[NDEVICES+1];\r
 EXTERN int iscore, iskill; // Common PLAQ\r
 EXTERN double perdate;\r
 EXTERN double aaitem;\r
@@ -290,8 +294,7 @@ typedef enum {FWON, FDEPLETE, FLIFESUP, FNRG, FBATTLE,
 #define FDSPROB 8   // Move deep space probe\r
 \r
 #ifdef INCLUDED\r
-planet nulplanet = {0};\r
-char *device[ndevice+1] = {\r
+char *device[NDEVICES+1] = {\r
        "",\r
        "S. R. Sensors",\r
        "L. R. Sensors",\r