#include <math.h>
#include <stdlib.h>
#include <string.h>
+#include <curses.h>
#ifndef INCLUDED
#define EXTERN extern
#else
#define SSTMAGIC "SST2.0\n"
+EXTERN WINDOW *curwnd;
+
EXTERN struct {
char magic[sizeof(SSTMAGIC)];
snapshot state;
void setup(int);
void score(void);
void atover(int);
-void srscan(int);
+int srscan(int);
void lrscan(void);
void phasers(void);
void photon(void);
void wait(void);
void setwrp(void);
void events(void);
-void report(int);
+void report(void);
void eta(void);
void help(void);
void abandn(void);
void deadkl(int, int, int, int, int);
void timwrp(void);
void movcom(void);
-void torpedo(double, double, int, int, double *, int);
+void torpedo(double, double, int, int, double *, int, int, int);
void huh(void);
void pause_game(int);
void nova(int, int);
void scom(int *);
void hittem(double *);
void prouts(char *, ...);
-void proutc(char *);
int isit(char *);
void preport(void);
void orbit(void);
void sensor(void);
-#ifdef SERGEEV
void drawmaps(short);
-#endif /* SERGEEV */
void beam(void);
void mine(void);
void usecrystals(void);
void attakreport(int);
void movetho(void);
void probe(void);
-void clearscreen(void);
void iostart(int);
-void ioend(void);
-#ifdef SERGEEV
-#define getline cgetline
-void setwnd(short);
-#endif /* SERGEEV */
-void getline(char *, int);
+void setwnd(WINDOW *);
+void warble(void);
+void boom(int ii, int jj);
+void tracktorpedo(int x, int y, int ix, int iy, int wait, int l, int i, int n, int iquad);
+void cgetline(char *, int);
+void waitfor(void);
+void setpassword(void);
void commandhook(char *, int);
+void makechart(void);
+void enqueue(char *);
-#ifdef SERGEEV
-typedef struct {
- int wndleft,wndtop,wndright,wndbottom;
-} wnd;
-extern wnd wnds[6];
-#endif /* SERGEEV */
+/* mode arguments for srscan() */
+#define SCAN_FULL 1
+#define SCAN_REQUEST 2
+#define SCAN_STATUS 3
+#define SCAN_NO_LEFTSIDE 4
+
+WINDOW *fullscreen_window;
+WINDOW *srscan_window;
+WINDOW *report_window;
+WINDOW *lrscan_window;
+WINDOW *message_window;
+WINDOW *prompt_window;
+
+extern void clreol(void);
+extern void clrscr(void);
+extern void textcolor(int color);
+extern void highvideo(void);
+
+enum COLORS {
+ DEFAULT,
+ BLACK, BLUE, GREEN, CYAN, RED, MAGENTA, BROWN, LIGHTGRAY,
+ DARKGRAY, LIGHTBLUE, LIGHTGREEN, LIGHTCYAN, LIGHTRED, LIGHTMAGENTA, YELLOW, WHITE
+};
+
+#define DAMAGED 128 /* marker for damaged ship in starmap */