X-Git-Url: https://jxself.org/git/?p=super-star-trek.git;a=blobdiff_plain;f=src%2Fsst.h;h=2dbb50c14f190dd894f6fede1a00c9155eb11eef;hp=2e6f90994d9ed41a272c73e9c2d4b4b13c447da6;hb=9aef5f5aae5fde0ed2b462945750c7aee59b3c1e;hpb=0c29dd2a524aab48238926e4a893ea406a851971 diff --git a/src/sst.h b/src/sst.h index 2e6f909..2dbb50c 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; @@ -80,8 +81,8 @@ typedef enum { } feature; typedef struct { - bool snap; // snapshot taken - int crew, // crew complement + bool snap; // snapshot taken + int crew, // crew complement #define FULLCREW 428 /* BSD Trek was 387, that's wrong */ remkl, // remaining klingons remcom, // remaining commanders @@ -92,9 +93,9 @@ typedef struct { nromrem, // Romulans remaining nplankl, // destroyed uninhabited planets nworldkl; // destroyed inhabited planets - planet plnets[PLNETMAX]; // Planet information + planet planets[PLNETMAX]; // Planet information double date, // stardate - remres, // remaining resources + remres, // remaining resources remtime; // remaining time coord baseq[BASEMAX+1]; // Base quadrant coordinates coord kcmdr[QUADSIZE+1]; // Commander quadrant coordinates @@ -286,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 @@ -341,13 +341,6 @@ typedef enum { enum loctype {neither, quadrant, sector}; -typedef enum { - SCAN_FULL, - SCAN_REQUEST, - SCAN_STATUS, - SCAN_NO_LEFTSIDE, -} scantype; - /* Function prototypes */ void prelim(void); void attack(bool); @@ -355,7 +348,7 @@ bool choose(bool); void setup(bool); void score(void); void atover(bool); -void srscan(scantype); +void srscan(void); void lrscan(void); void phasers(void); void photon(void); @@ -363,7 +356,7 @@ void warp(bool); void doshield(bool); void dock(bool); void dreprt(void); -void chart(bool); +void chart(void); void rechart(void); void impuls(void); void wait(void); @@ -380,14 +373,19 @@ void freeze(bool); bool thaw(void); void plaque(void); int scan(void); +void status(int req); +void request(void); #define IHEOL (0) #define IHALPHA (1) #define IHREAL (2) void chew(void); void chew2(void); void skip(int); -void prout(char *, ...); -void proutn(char *, ...); +void prout(const char *, ...) __attribute__((format(printf, 1, 2))); +void proutn(const char *, ...) __attribute__((format(printf, 1, 2))); +void prouts(const char *, ...) __attribute__((format(printf, 1, 2))); +void prstat(const char *txt, const char *fmt, ...) + __attribute__((format(printf, 2, 3))); void stars(void); void newqad(bool); bool ja(void); @@ -400,20 +398,20 @@ 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); void timwrp(void); -void movcom(void); +void moveklings(void); void torpedo(double, double, coord, double *, int, int); void huh(void); +void pause_reset(void); void pause_game(bool); void nova(coord); void snova(bool, coord *); -void scom(bool *); +void scom(void); void hittem(double *); -void prouts(char *, ...); bool isit(char *); void preport(void); void orbit(void); @@ -438,7 +436,6 @@ void waitfor(void); void setpassword(void); void commandhook(char *, bool); void makechart(void); -void enqueue(char *); coord newkling(int); #if BSD_BUG_FOR_BUG void visual(void);