X-Git-Url: https://jxself.org/git/?p=super-star-trek.git;a=blobdiff_plain;f=src%2Fsst.h;h=daf97ac7a7a8a32b1d5253288ec1ef6d599bcca1;hp=a9c6ad294395fbd8e669d5911bd03b7e94323c22;hb=a76d5b483a4f07459b71f9cce46c93c3f7ed8f96;hpb=c2847bb7511b0cf8472ba3a0a170a4fedd3b2861 diff --git a/src/sst.h b/src/sst.h index a9c6ad2..daf97ac 100644 --- a/src/sst.h +++ b/src/sst.h @@ -20,13 +20,15 @@ #define min(x, y) ((x)<(y)?(x):(y)) #define max(x, y) ((x)>(y)?(x):(y)) -#define PHASEFAC (2.0) -#define GALSIZE (8) -#define NINHAB (GALSIZE * GALSIZE / 2) -#define MAXUNINHAB (10) -#define PLNETMAX (NINHAB + MAXUNINHAB) -#define QUADSIZE (10) -#define BASEMAX (5) +#define PHASEFAC 2.0 +#define GALSIZE 8 +#define NINHAB (GALSIZE * GALSIZE / 2) +#define MAXUNINHAB 10 +#define PLNETMAX (NINHAB + MAXUNINHAB) +#define QUADSIZE 10 +#define BASEMAX (GALSIZE * GALSIZE / 12) +#define MAXKLGAME 127 +#define MAXKLQUAD 9 /* * These macros hide the difference between 0-origin and 1-origin addressing. @@ -46,7 +48,7 @@ typedef struct {int x; int y;} coord; #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) +#define is_valid(w) (w.x != 0 && w.y != 0) typedef struct { coord w; @@ -81,8 +83,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 @@ -93,9 +95,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 @@ -118,9 +120,6 @@ typedef struct { } chart[GALSIZE+1][GALSIZE+1]; // the starchart (subscript 0 not used) } snapshot; // Data that is snapshot -#define MAXKLGAME 127 -#define MAXKLQUAD 9 - #define NKILLK (game.inkling - game.state.remkl) #define NKILLC (game.incom - game.state.remcom) #define NKILLSC (game.inscom - game.state.nscrem) @@ -342,102 +341,103 @@ typedef enum { enum loctype {neither, quadrant, sector}; /* Function prototypes */ -void prelim(void); -void attack(bool); -bool choose(bool); -void setup(bool); -void score(void); -void atover(bool); -void srscan(void); -void lrscan(void); -void phasers(void); -void photon(void); -void warp(bool); -void doshield(bool); -void dock(bool); -void dreprt(void); -void chart(void); -void rechart(void); -void impuls(void); -void wait(void); -void setwrp(void); -void events(void); -void report(void); -void eta(void); -void mayday(void); -void abandn(void); -void finish(FINTYPE); -void selfdestruct(void); -void kaboom(void); -void freeze(bool); -bool thaw(void); -void plaque(void); -int scan(void); -void status(int req); -void request(void); +extern void prelim(void); +extern void attack(bool); +extern bool choose(bool); +extern void setup(bool); +extern void score(void); +extern void atover(bool); +extern void srscan(void); +extern void lrscan(void); +extern void phasers(void); +extern void photon(void); +extern void warp(bool); +extern void doshield(bool); +extern void dock(bool); +extern void dreprt(void); +extern void chart(void); +extern void rechart(void); +extern void impuls(void); +extern void wait(void); +extern void setwrp(void); +extern void events(void); +extern void report(void); +extern void eta(void); +extern void mayday(void); +extern void abandn(void); +extern void finish(FINTYPE); +extern void selfdestruct(void); +extern void kaboom(void); +extern void freeze(bool); +extern bool thaw(void); +extern void plaque(void); +extern int scan(void); +extern void status(int req); +extern void request(void); #define IHEOL (0) #define IHALPHA (1) #define IHREAL (2) -void chew(void); -void chew2(void); -void skip(int); -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, ...) +extern void chew(void); +extern void chew2(void); +extern void skip(int); +extern void prout(const char *, ...) __attribute__((format(printf, 1, 2))); +extern void proutn(const char *, ...) __attribute__((format(printf, 1, 2))); +extern void prouts(const char *, ...) __attribute__((format(printf, 1, 2))); +extern void prstat(const char *txt, const char *fmt, ...) __attribute__((format(printf, 2, 3))); -void stars(void); -void newqad(bool); -bool ja(void); -void cramen(feature); -void crmshp(void); -char *cramlc(enum loctype, coord w); -double expran(double); -double Rand(void); -coord randplace(int); -coord dropin(feature); -void newcnd(void); -void sortkl(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 torpedo(double, double, coord, double *, int, int); -void huh(void); -void pause_game(bool); -void nova(coord); -void snova(bool, coord *); -void scom(bool *); -void hittem(double *); -bool isit(char *); -void preport(void); -void orbit(void); -void sensor(void); -void drawmaps(int); -void beam(void); -void mine(void); -void usecrystals(void); -void shuttle(void); -void deathray(void); -void debugme(void); -void attakreport(bool); -void movetho(void); -void probe(void); -void iostart(void); -void setwnd(WINDOW *); -void warble(void); -void boom(coord); -void tracktorpedo(coord, int, int, int, int); -void cgetline(char *, int); -void waitfor(void); -void setpassword(void); -void commandhook(char *, bool); -void makechart(void); -coord newkling(int); +extern void stars(void); +extern void newqad(bool); +extern bool ja(void); +extern void cramen(feature); +extern void crmshp(void); +extern char *cramlc(enum loctype, coord w); +extern double expran(double); +extern double Rand(void); +extern coord randplace(int); +extern coord dropin(feature); +extern void newcnd(void); +extern void sortkl(void); +extern void imove(bool); +extern void ram(bool, feature, coord); +extern void crmena(bool, feature, enum loctype, coord w); +extern void deadkl(coord, feature, coord); +extern void timwrp(void); +extern void moveklings(void); +extern void torpedo(double, double, coord, double *, int, int); +extern void huh(void); +extern void pause_reset(void); +extern void pause_game(bool); +extern void nova(coord); +extern void snova(bool, coord *); +extern void scom(void); +extern void hittem(double *); +extern bool isit(char *); +extern void preport(void); +extern void orbit(void); +extern void sensor(void); +extern void drawmaps(int); +extern void beam(void); +extern void mine(void); +extern void usecrystals(void); +extern void shuttle(void); +extern void deathray(void); +extern void debugme(void); +extern void attakreport(bool); +extern void movetho(void); +extern void probe(void); +extern void iostart(void); +extern void setwnd(WINDOW *); +extern void warble(void); +extern void boom(coord); +extern void tracktorpedo(coord, int, int, int, int); +extern void cgetline(char *, int); +extern void waitfor(void); +extern void setpassword(void); +extern void commandhook(char *, bool); +extern void makechart(void); +extern coord newkling(int); #if BSD_BUG_FOR_BUG -void visual(void); +extern void visual(void); #endif extern WINDOW *curwnd;