X-Git-Url: https://jxself.org/git/?p=super-star-trek.git;a=blobdiff_plain;f=src%2Fsst.h;h=321d802b2021131d466d9efa2efa02cf15281c42;hp=838bc8ae829f4a527aa25f4f983ce23318b38b4d;hb=11dc64d8fe2c6e39557fbacdd5d9a1ab8d436b05;hpb=e3730bb826efe601fe51626aab064d395733d4c3 diff --git a/src/sst.h b/src/sst.h index 838bc8a..321d802 100644 --- a/src/sst.h +++ b/src/sst.h @@ -18,8 +18,10 @@ // #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) @@ -39,7 +41,10 @@ typedef struct { 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; @@ -65,7 +70,7 @@ typedef struct { remtime; // remaining time struct { int stars; - int planets; + planet *planet; int starbase; int klingons; int romulans; @@ -108,6 +113,7 @@ typedef struct { #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 */ @@ -144,15 +150,8 @@ typedef struct { #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; @@ -327,7 +326,7 @@ void setwrp(void); void events(void); void report(void); void eta(void); -void help(void); +void mayday(void); void abandn(void); void finish(FINTYPE); void dstrct(void); @@ -396,6 +395,7 @@ void setpassword(void); void commandhook(char *, int); void makechart(void); void enqueue(char *); +char *systemname(planet *); /* mode arguments for srscan() */ #define SCAN_FULL 1 @@ -403,12 +403,13 @@ void enqueue(char *); #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); @@ -421,6 +422,4 @@ enum COLORS { DARKGRAY, LIGHTBLUE, LIGHTGREEN, LIGHTCYAN, LIGHTRED, LIGHTMAGENTA, YELLOW, WHITE }; -#define DAMAGED 128 /* marker for damaged ship in starmap */ - #endif