X-Git-Url: https://jxself.org/git/?p=super-star-trek.git;a=blobdiff_plain;f=src%2Fsst.h;h=4063c4e86765474e2a0c2109028ce0be92891c7a;hp=211f63c2b1a8740600f69643fc0e18e5a54b6766;hb=f9acc563cce04f40f3d622f34ce5fd6263bfc619;hpb=c0682ebb9ae828d035d59892a65e1849d85963b7 diff --git a/src/sst.h b/src/sst.h index 211f63c..4063c4e 100644 --- a/src/sst.h +++ b/src/sst.h @@ -58,6 +58,27 @@ typedef struct { #define DESTROY(pl) memset(pl, '\0', sizeof(planet)) +typedef enum { + IHR = 'R', + IHK = 'K', + IHC = 'C', + IHS = 'S', + IHSTAR = '*', + IHP = 'P', + IHW = '@', + IHB = 'B', + IHBLANK = ' ', + IHDOT = '.', + IHQUEST = '?', + IHE = 'E', + IHF = 'F', + IHT = 'T', + IHWEB = '#', + IHMATER0 = '-', + IHMATER1 = 'o', + IHMATER2 = '0', +} feature; + typedef struct { int snap, // snapshot taken crew, // crew complement @@ -144,13 +165,14 @@ typedef struct { #define DRADIO 8 #define DSHUTTL 9 #define DCOMPTR 10 -#define DTRANSP 11 -#define DSHCTRL 12 -#define DDRAY 13 // Added deathray -#define DDSP 14 // Added deep space probe -#define NDEVICES (15) // Number of devices +#define DNAVSYS 11 +#define DTRANSP 12 +#define DSHCTRL 13 +#define DDRAY 14 +#define DDSP 15 +#define NDEVICES (16) // Number of devices -#define damaged(dev) game.damage[dev] != 0.0 +#define damaged(dev) (game.damage[dev] != 0.0) #define FOREVER 1e30 @@ -193,7 +215,7 @@ struct game { unsigned long options; snapshot state; snapshot snapsht; - char quad[QUADSIZE+1][QUADSIZE+1]; // contents of our quadrant + feature 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 @@ -226,6 +248,13 @@ struct game { icrystl, // dilithium crystals aboard iseenit, // seen base attack report thawed; // thawed game + enum { + green, + yellow, + red, + docked, + dead, + } condition; // condition (red/yellow/green/docked) int inkling, // initial number of klingons inbase, // initial number of bases incom, // initial number of commanders @@ -233,7 +262,6 @@ struct game { inrom, // initial number of commanders instar, // initial stars intorps, // initial/Max torpedoes - condit, // condition (red/yellow/green/docked) torps, // number of torpedoes ship, // ship type -- 'E' is Enterprise abandoned, // count of crew abandoned in space @@ -296,37 +324,22 @@ extern FILE *logfp, *replayfp; extern coord thing; extern bool iqhere, iqengry; -typedef enum {FWON, FDEPLETE, FLIFESUP, FNRG, FBATTLE, - FNEG3, FNOVA, FSNOVAED, FABANDN, FDILITHIUM, - FMATERIALIZE, FPHASER, FLOST, FMINING, FDPLANET, - FPNOVA, FSSC, FSTRACTOR, FDRAY, FTRIBBLE, - FHOLE, FCREW} FINTYPE ; -enum loctype {neither, quadrant, sector}; +typedef enum { + FWON, FDEPLETE, FLIFESUP, FNRG, FBATTLE, + FNEG3, FNOVA, FSNOVAED, FABANDN, FDILITHIUM, + FMATERIALIZE, FPHASER, FLOST, FMINING, FDPLANET, + FPNOVA, FSSC, FSTRACTOR, FDRAY, FTRIBBLE, + FHOLE, FCREW +} FINTYPE ; -#define IHR 'R' -#define IHK 'K' -#define IHC 'C' -#define IHS 'S' -#define IHSTAR '*' -#define IHP 'P' -#define IHW '@' -#define IHB 'B' -#define IHBLANK ' ' -#define IHDOT '.' -#define IHQUEST '?' -#define IHE 'E' -#define IHF 'F' -#define IHT 'T' -#define IHWEB '#' -#define IHGREEN 'G' -#define IHYELLOW 'Y' -#define IHRED 'R' -#define IHDOCKED 'D' -#define IHDEAD 'Z' -#define IHMATER0 '-' -#define IHMATER1 'o' -#define IHMATER2 '0' +enum loctype {neither, quadrant, sector}; +typedef enum { + SCAN_FULL, + SCAN_REQUEST, + SCAN_STATUS, + SCAN_NO_LEFTSIDE, +} scantype; /* Function prototypes */ void prelim(void); @@ -335,12 +348,12 @@ bool choose(bool); void setup(bool); void score(void); void atover(bool); -int srscan(int); +void srscan(scantype); void lrscan(void); void phasers(void); void photon(void); void warp(bool); -void doshield(int); +void doshield(bool); void dock(bool); void dreprt(void); void chart(bool); @@ -371,30 +384,30 @@ void proutn(char *, ...); void stars(void); void newqad(bool); bool ja(void); -void cramen(int); +void cramen(feature); void crmshp(void); char *cramlc(enum loctype, coord w); double expran(double); double Rand(void); -coord iran(int); -coord dropin(int); +coord randplace(int); +coord dropin(feature); void newcnd(void); void sortkl(void); void imove(void); -void ram(bool, int, coord); -void crmena(bool, int, enum loctype, coord w); -void deadkl(coord, int, coord); +void ram(bool, feature, coord); +void crmena(bool, feature, enum loctype, coord w); +void deadkl(coord, feature, coord); void timwrp(void); void movcom(void); void torpedo(double, double, coord, double *, int, int); void huh(void); -void pause_game(int); +void pause_game(bool); void nova(coord); void snova(bool, coord *); void scom(bool *); void hittem(double *); void prouts(char *, ...); -int isit(char *); +bool isit(char *); void preport(void); void orbit(void); void sensor(void); @@ -422,12 +435,6 @@ void enqueue(char *); char *systemname(int); coord newkling(int); -/* mode arguments for srscan() */ -#define SCAN_FULL 1 -#define SCAN_REQUEST 2 -#define SCAN_STATUS 3 -#define SCAN_NO_LEFTSIDE 4 - extern WINDOW *curwnd; extern WINDOW *fullscreen_window; extern WINDOW *srscan_window; @@ -438,7 +445,7 @@ extern WINDOW *prompt_window; extern void clreol(void); extern void clrscr(void); -extern void textcolor(int color); +extern void textcolor(int); extern void highvideo(void); enum COLORS {