X-Git-Url: https://jxself.org/git/?p=super-star-trek.git;a=blobdiff_plain;f=src%2Fsst.h;h=211f63c2b1a8740600f69643fc0e18e5a54b6766;hp=1c40d1b946d43a3e932b0814c363decca37f4e49;hb=c0682ebb9ae828d035d59892a65e1849d85963b7;hpb=ad1478c7cc24b761592a1e355015b44b243aeeda diff --git a/src/sst.h b/src/sst.h index 1c40d1b..211f63c 100644 --- a/src/sst.h +++ b/src/sst.h @@ -42,7 +42,9 @@ typedef struct {int x; int y;} coord; -#define same(c1, c2) (c1.x == c2.x && c1.y == c2.y) +#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)) typedef struct { coord w; @@ -210,6 +212,7 @@ struct game { alive, // we are alive (not killed) justin, // just entered quadrant shldup, // shields are up + comhere, // commander here ishere, // super-commander in quadrant ientesc, // attempted escape from supercommander ithere, // Tholian is here @@ -220,6 +223,8 @@ struct game { isarmed, // probe is armed inorbit, // orbiting a planet imine, // mining + icrystl, // dilithium crystals aboard + iseenit, // seen base attack report thawed; // thawed game int inkling, // initial number of klingons inbase, // initial number of bases @@ -235,7 +240,6 @@ struct game { length, // length of game skill, // skill level klhere, // klingons here - comhere, // commanders here casual, // causalties nhelp, // calls for help nkinks, // count of energy-barrier crossings @@ -249,9 +253,7 @@ struct game { isatb, // =1 if super commander is attacking base iscate, // super commander is here iattak, // attack recursion elimination (was cracks[4]) - icrystl, // dilithium crystals aboard tourn, // tournament number - iseenit, // seen base attack report proben, // number of moves for probe nprobes; // number of probes available double inresor, // initial resources @@ -355,7 +357,7 @@ void finish(FINTYPE); void selfdestruct(void); void kaboom(void); void freeze(bool); -int thaw(void); +bool thaw(void); void plaque(void); int scan(void); #define IHEOL (0) @@ -374,18 +376,17 @@ void crmshp(void); char *cramlc(enum loctype, coord w); double expran(double); double Rand(void); -void iran(int, int *, int *); -#define square(i) ((i)*(i)) -void dropin(int, coord*); +coord iran(int); +coord dropin(int); void newcnd(void); void sortkl(void); void imove(void); void ram(bool, int, coord); void crmena(bool, int, enum loctype, coord w); -void deadkl(coord, int, int, int); +void deadkl(coord, int, coord); void timwrp(void); void movcom(void); -void torpedo(double, double, int, int, double *, int, int); +void torpedo(double, double, coord, double *, int, int); void huh(void); void pause_game(int); void nova(coord); @@ -410,8 +411,8 @@ void probe(void); void iostart(void); void setwnd(WINDOW *); void warble(void); -void boom(int, int); -void tracktorpedo(int, int, int, int, int, int); +void boom(coord); +void tracktorpedo(coord, int, int, int, int); void cgetline(char *, int); void waitfor(void); void setpassword(void); @@ -419,7 +420,7 @@ void commandhook(char *, bool); void makechart(void); void enqueue(char *); char *systemname(int); -void newkling(int, coord *); +coord newkling(int); /* mode arguments for srscan() */ #define SCAN_FULL 1