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;
isarmed, // probe is armed
inorbit, // orbiting a planet
imine, // mining
+ icrystl, // dilithium crystals aboard
thawed; // thawed game
int inkling, // initial number of klingons
inbase, // initial number of bases
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
void selfdestruct(void);
void kaboom(void);
void freeze(bool);
-int thaw(void);
+bool thaw(void);
void plaque(void);
int scan(void);
#define IHEOL (0)
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);
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);
void makechart(void);
void enqueue(char *);
char *systemname(int);
-void newkling(int, coord *);
+coord newkling(int);
/* mode arguments for srscan() */
#define SCAN_FULL 1