// #define DEBUG
#define PHASEFAC (2.0)
-#define PLNETMAX (10)
#define GALSIZE (8)
+#define NINHAB (GALSIZE * GALSIZE / 2)
+#define MAXUNINHAB (10)
+#define PLNETMAX (NINHAB + MAXUNINHAB)
#define QUADSIZE (10)
#define BASEMAX (5)
int x; /* Quadrant location of planet */
int y;
enum {M=0, N=1, O=2} pclass;
+ int inhabited; /* if NZ, an index into a name array */
+#define UNINHABITED -1
int crystals; /* has crystals */
+#define MINED -1 /* used to have crystals, but they were mined out */
enum {unknown, known, shuttle_down} known;
} planet;
remtime; // remaining time
struct {
int stars;
- int planets;
+ planet *planet;
int starbase;
int klingons;
int romulans;
#define OPTION_MVBADDY 0x00000100 /* more enemies can move */
#define OPTION_BLKHOLE 0x00000200 /* black hole may timewarp you */
#define OPTION_BASE 0x00000400 /* bases have good shields */
+#define OPTION_WORLDS 0x00000800 /* logic for inhabited worlds */
#define OPTION_PLAIN 0x01000000 /* user chose plain game */
#define OPTION_ALMY 0x02000000 /* user chose Almy variant */
#define FDSPROB 8 // Move deep space probe
#define NEVENTS (9)
-// Scalar variables that are needed for freezing the game
-// are placed in a structure. #defines are used to access by their
-// original names. Gee, I could have done this with the d structure,
-// but I just didn't think of it back when I started.
-
#define SSTMAGIC "SST2.0\n"
-extern WINDOW *curwnd;
-
struct game {
char magic[sizeof(SSTMAGIC)];
unsigned long options;
void events(void);
void report(void);
void eta(void);
-void help(void);
+void mayday(void);
void abandn(void);
void finish(FINTYPE);
void dstrct(void);
void commandhook(char *, int);
void makechart(void);
void enqueue(char *);
+char *systemname(planet *);
/* mode arguments for srscan() */
#define SCAN_FULL 1
#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 WINDOW *curwnd;
+extern WINDOW *fullscreen_window;
+extern WINDOW *srscan_window;
+extern WINDOW *report_window;
+extern WINDOW *lrscan_window;
+extern WINDOW *message_window;
+extern WINDOW *prompt_window;
extern void clreol(void);
extern void clrscr(void);
DARKGRAY, LIGHTBLUE, LIGHTGREEN, LIGHTCYAN, LIGHTRED, LIGHTMAGENTA, YELLOW, WHITE
};
-#define DAMAGED 128 /* marker for damaged ship in starmap */
-
#endif