X-Git-Url: https://jxself.org/git/?p=super-star-trek.git;a=blobdiff_plain;f=src%2Fsst.h;h=a9bf781e546a588bcd558fdde1a99ff2441fb253;hp=c7a146d79f57a9abc6ec70f8f350fd84e6fc274b;hb=4207ce95e80fe7e2d5114079fa4255e0ad506618;hpb=0def1139fe1c02cd25c21fe26c9a9722debf4211 diff --git a/src/sst.h b/src/sst.h index c7a146d..a9bf781 100644 --- a/src/sst.h +++ b/src/sst.h @@ -45,14 +45,15 @@ typedef struct {int x; int y;} coord; #define square(i) ((i)*(i)) #define same(c1, c2) ((c1.x == c2.x) && (c1.y == c2.y)) #define distance(c1, c2) sqrt(square(c1.x - c2.x) + square(c1.y - c2.y)) +#define invalidate(w) w.x = w.y = 0 +#define is_valid(w) (w.x == 0 || w.y == 0) typedef struct { coord w; enum {M=0, N=1, O=2} pclass; int inhabited; /* if NZ, an index into a name array */ #define UNINHABITED -1 - int crystals; /* has crystals */ -#define MINED -1 /* used to have crystals, but they were mined out */ + enum {mined=-1, present=0, absent=1} crystals; /* has crystals */ enum {unknown, known, shuttle_down} known; } planet; @@ -203,6 +204,8 @@ extern double scheduled(int); #define SSTMAGIC "SST2.0\n" +#define ARRAY_SIZE(a) (sizeof (a) / sizeof ((a)[0])) + struct game { char magic[sizeof(SSTMAGIC)]; unsigned long options; @@ -284,7 +287,6 @@ struct game { nenhere, // number of enemies in quadrant irhere, // Romulans in quadrant isatb, // =1 if super commander is attacking base - iattak, // attack recursion elimination (was cracks[4]) tourn, // tournament number proben, // number of moves for probe nprobes; // number of probes available @@ -316,6 +318,7 @@ extern struct game game; /* the following global state doesn't need to be saved */ extern char *device[NDEVICES]; +extern char *systnames[NINHAB + 1]; extern int iscore, iskill; // Common PLAQ extern double perdate; extern double aaitem; @@ -397,7 +400,7 @@ coord randplace(int); coord dropin(feature); void newcnd(void); void sortkl(void); -void imove(void); +void imove(bool); void ram(bool, feature, coord); void crmena(bool, feature, enum loctype, coord w); void deadkl(coord, feature, coord); @@ -436,7 +439,6 @@ void setpassword(void); void commandhook(char *, bool); void makechart(void); void enqueue(char *); -char *systemname(int); coord newkling(int); #if BSD_BUG_FOR_BUG void visual(void);