More BSD features.
[super-star-trek.git] / src / sst.h
index 2b30d8b17164457d370ee5db6ee39c591a517b8b..8651afd849224e987eff13a79403326a6b2a5c45 100644 (file)
--- a/src/sst.h
+++ b/src/sst.h
@@ -58,6 +58,8 @@ typedef struct {
 
 typedef struct {
     int snap,          // snapshot taken
+       crew,           // crew complement
+#define FULLCREW       428     /* BSD Trek was 387, that's wrong */
        remkl,                  // remaining klingons
        remcom,                 // remaining commanders
        nscrem,                 // remaining super commanders
@@ -146,6 +148,8 @@ typedef struct {
 #define DDSP    14  // Added deep space probe
 #define NDEVICES (15)  // Number of devices
 
+#define damaged(dev)   game.damage[dev] != 0.0
+
 #define FOREVER        1e30
 
 /* Define future events */
@@ -178,6 +182,7 @@ extern int is_scheduled(int);
 extern event *schedule(int, double);
 extern void postpone(int, double);
 extern double scheduled(int);
+#define findevent(evtype)      &game.future[evtype]
 
 #define SSTMAGIC       "SST2.0\n"
 
@@ -204,6 +209,8 @@ struct game {
        ididit,         // action taken -- allows enemy to attack
        alive,          // we are alive (not killed)
        justin,         // just entered quadrant
+       shldup,         // shields are up
+       resting,        // rest time
        alldone,        // game is now finished
        neutz,          // Romulan Neutral Zone
        isarmed,        // probe is armed
@@ -219,6 +226,7 @@ struct game {
        condit,         // condition (red/yellow/green/docked)
        torps,          // number of torpedoes
        ship,           // ship type -- 'E' is Enterprise
+       abandoned,      // count of crew abandoned in space
        length,         // length of game
        skill,          // skill level
        klhere,         // klingons here
@@ -254,7 +262,6 @@ struct game {
        indate,         // initial date
        energy,         // energy level
        shield,         // shield level
-       shldup,         // shields are up
        warpfac,        // warp speed
        wfacsq,         // squared warp factor
        lsupres,        // life support reserves
@@ -262,7 +269,6 @@ struct game {
        direc,          // movement direction
        optime,         // time taken by current operation
        docfac,         // repair factor when docking (constant?)
-       resting,        // rest time
        damfac,         // damage factor
        lastchart,      // time star chart was last updated
        cryprob,        // probability that crystal will work
@@ -281,9 +287,8 @@ extern double perdate;
 extern double aaitem;
 extern char citem[10];
 extern int seed;
-extern bool randready;
 extern bool idebug;
-extern FILE *logfp;
+extern FILE *logfp, *replayfp;
 
 /* the Space Thingy's global state should *not* be saved! */
 extern coord thing;
@@ -293,7 +298,7 @@ typedef enum {FWON, FDEPLETE, FLIFESUP, FNRG, FBATTLE,
               FNEG3, FNOVA, FSNOVAED, FABANDN, FDILITHIUM,
                          FMATERIALIZE, FPHASER, FLOST, FMINING, FDPLANET,
                          FPNOVA, FSSC, FSTRACTOR, FDRAY, FTRIBBLE,
-                         FHOLE} FINTYPE ;
+             FHOLE, FCREW} FINTYPE ;
 enum loctype {neither, quadrant, sector};
 
 #define IHR 'R'
@@ -334,7 +339,7 @@ void phasers(void);
 void photon(void);
 void warp(bool);
 void doshield(int);
-void dock(int);
+void dock(bool);
 void dreprt(void);
 void chart(int);
 void rechart(void);
@@ -385,7 +390,7 @@ void huh(void);
 void pause_game(int);
 void nova(int, int);
 void snova(int, int);
-void scom(int *);
+void scom(bool *);
 void hittem(double *);
 void prouts(char *, ...);
 int isit(char *);