#define EXTERN\r
#endif\r
\r
+#define min(x, y) ((x)<(y)?(x):(y))\r
+#define max(x, y) ((x)>(y)?(x):(y))\r
+\r
// #define DEBUG\r
\r
#define NDEVICES (15) // Number of devices\r
#define nprobes game.nprobes // number of probes available\r
\r
/* the following global state doesn't need to be saved */\r
-EXTERN int fromcommandline; // Game start from command line options\r
EXTERN char *device[NDEVICES+1];\r
EXTERN int iscore, iskill; // Common PLAQ\r
EXTERN double perdate;\r
FMATERIALIZE, FPHASER, FLOST, FMINING, FDPLANET,\r
FPNOVA, FSSC, FSTRACTOR, FDRAY, FTRIBBLE,\r
FHOLE} FINTYPE ;\r
+enum loctype {neither, quadrant, sector};\r
\r
/* Define devices */\r
#define DSRSENS 1\r
/* Function prototypes */\r
void prelim(void);\r
void attack(int);\r
-int choose(void);\r
-void setup(void);\r
+int choose(int);\r
+void setup(int);\r
void score(void);\r
void atover(int);\r
void srscan(int);\r
int ja(void);\r
void cramen(int);\r
void crmshp(void);\r
-void cramlc(int, int, int);\r
+char *cramlc(enum loctype, int, int);\r
double expran(double);\r
double Rand(void);\r
void iran8(int *, int *);\r
void timwrp(void);\r
void movcom(void);\r
void torpedo(double, double, int, int, double *);\r
-void cramf(double, int, int);\r
void huh(void);\r
void pause(int);\r
void nova(int, int);\r
void scom(int *);\r
void hittem(double *);\r
void prouts(char *, ...);\r
+void proutc(char *);\r
int isit(char *);\r
void preport(void);\r
void orbit(void);\r
void attakreport(void);\r
void movetho(void);\r
void probe(void);\r
+void clearscreen(void);\r
+void iostart(void);\r
+void getline(char *, int);\r