X-Git-Url: https://jxself.org/git/?p=super-star-trek.git;a=blobdiff_plain;f=sst.h;h=4ebc05d02c40778817a5c921917b1caaa0f8a679;hp=aef476b76f19db679d01b2063088feaf992e8bd0;hb=760ecf730c119682b414153a629ec2adc224434f;hpb=a8f5216ff30142b93e4ff3e9bc12535ed0792563 diff --git a/sst.h b/sst.h index aef476b..4ebc05d 100644 --- a/sst.h +++ b/sst.h @@ -2,6 +2,7 @@ #include #include #include +#include #ifndef INCLUDED #define EXTERN extern #else @@ -17,6 +18,9 @@ #define PHASEFAC (2.0) #define PLNETMAX (10) #define NEVENTS (8) +#define GALSIZE (8) +#define QUADSIZE (10) +#define BASEMAX (6) typedef struct { int x; /* Quadrant location of planet */ @@ -37,11 +41,11 @@ typedef struct { basekl, // destroyed bases killk, // Klingons killed killc, // commanders killed - galaxy[9][9], // The Galaxy (subscript 0 not used) - cx[11],cy[11], // Commander quadrant coordinates - baseqx[6], // Base quadrant X - baseqy[6], // Base quadrant Y - newstuf[9][9], // Extended galaxy goodies + galaxy[GALSIZE+1][GALSIZE+1], // The Galaxy (subscript 0 not used) + cx[QUADSIZE+1],cy[QUADSIZE+1], // Commander quadrant coordinates + baseqx[BASEMAX], // Base quadrant X + baseqy[BASEMAX], // Base quadrant Y + newstuf[GALSIZE+1][GALSIZE+1], // Extended galaxy goodies isx, isy, // Coordinate of Super Commander nscrem, // remaining super commanders nromkl, // Romulans killed @@ -54,6 +58,18 @@ typedef struct { remtime; // remaining time } snapshot; // Data that is snapshot +/* + * This is how the integers in galaxy are encoded. + * Someday these should turn into structure fields. + */ +#define SUPERNOVA_PLACE 1000 +#define ENEMY_PLACE 100 +#define BASE_PLACE 10 +#define STAR_PLACE 1 + +/* for newstuff */ +#define ROMULAN_PLACE 10 + // 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, @@ -61,22 +77,22 @@ typedef struct { #define SSTMAGIC "SST2.0\n" -EXTERN short curwnd; +EXTERN WINDOW *curwnd; EXTERN struct { char magic[sizeof(SSTMAGIC)]; snapshot state; snapshot snapsht; - char quad[11][11]; // contents of our quadrant - double kpower[21]; // enemy energy levels - double kdist[21]; // enemy distances - double kavgd[21]; // average distances + char quad[QUADSIZE+1][QUADSIZE+1]; // contents of our quadrant + double kpower[(QUADSIZE+1)*(QUADSIZE+1)]; // enemy energy levels + double kdist[(QUADSIZE+1)*(QUADSIZE+1)]; // enemy distances + double kavgd[(QUADSIZE+1)*(QUADSIZE+1)]; // average distances double damage[NDEVICES+1]; // damage encountered double future[NEVENTS+1]; // future events char passwd[10]; // Self Destruct password - int kx[21]; // enemy sector locations - int ky[21]; - int starch[9][9]; // star chart + int kx[(QUADSIZE+1)*(QUADSIZE+1)]; // enemy sector locations + int ky[(QUADSIZE+1)*(QUADSIZE+1)]; + int starch[GALSIZE+1][GALSIZE+1]; // star chart /* members with macro definitions start here */ int inkling, inbase, @@ -418,7 +434,6 @@ void snova(int, int); void scom(int *); void hittem(double *); void prouts(char *, ...); -void proutc(char *); int isit(char *); void preport(void); void orbit(void); @@ -434,8 +449,7 @@ void attakreport(int); void movetho(void); void probe(void); void iostart(int); -void ioend(void); -void setwnd(short); +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); @@ -443,17 +457,31 @@ void cgetline(char *, int); void waitfor(void); void setpassword(void); void commandhook(char *, int); -void c_printf (char *format, ... ); void makechart(void); +void enqueue(char *); -typedef struct { - int wndleft,wndtop,wndright,wndbottom; -} wnd; -extern wnd wnds[6]; -/* these need to track io.c:wnd */ -#define FULLSCREEN_WINDOW 0 -#define LEFTUPPER_WINDOW 1 -#define SRSCAN_WINDOW 2 -#define LRSCAN_WINDOW 3 -#define LOWER_WINDOW 4 -#define BOTTOM_WINDOW 5 +/* 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 */