X-Git-Url: https://jxself.org/git/?p=super-star-trek.git;a=blobdiff_plain;f=sst.h;h=f8d65fffed828e21de8c2386b07c04e24f283375;hp=f514d5cb0541d2ad4a2920b7027713123863d7dc;hb=33260392e158234e108910e2cc2ab18cd7416c31;hpb=1e2622cf770b7183b813e0dc0095f085dda4419f diff --git a/sst.h b/sst.h index f514d5c..f8d65ff 100644 --- a/sst.h +++ b/sst.h @@ -46,19 +46,15 @@ typedef struct { int snap, // snapshot taken remkl, // remaining klingons remcom, // remaining commanders + nscrem, // remaining super commanders rembase, // remaining bases starkl, // destroyed stars basekl, // destroyed bases - killk, // Klingons killed - killc, // commanders killed cx[QUADSIZE+1],cy[QUADSIZE+1], // Commander quadrant coordinates baseqx[BASEMAX+1], // Base quadrant X baseqy[BASEMAX+1], // Base quadrant Y isx, isy, // Coordinate of Super Commander - nscrem, // remaining super commanders - nromkl, // Romulans killed nromrem, // Romulans remaining - nsckill, // super commanders killed nplankl; // destroyed planets planet plnets[PLNETMAX]; // Planet information double date, // stardate @@ -80,6 +76,14 @@ typedef struct { } chart[GALSIZE+1][GALSIZE+1]; // the starchart (subscript 0 not used) } snapshot; // Data that is snapshot +#define NKILLK (inkling - game.state.remkl) +#define NKILLC (incom - game.state.remcom) +#define NKILLSC (inscom - game.state.nscrem) +#define NKILLROM (inrom - game.state.nromrem) +#define KLINGREM (game.state.remkl + game.state.remcom + game.state.nscrem) +#define INKLINGTOT (inkling + incom + inscom) +#define KLINGKILLED (INKLINGTOT - KLINGREM) + #define SKILL_NONE 0 #define SKILL_NOVICE 1 #define SKILL_FAIR 2 @@ -96,6 +100,13 @@ typedef struct { #define OPTION_THOLIAN 0x00000008 /* Tholians and their webs */ #define OPTION_THINGY 0x00000010 /* Space Thingy can shoot back */ #define OPTION_PROBE 0x00000020 /* deep-space probes */ +#define OPTION_SHOWME 0x00000040 /* bracket Enterprise in chart */ +#define OPTION_RAMMING 0x00000080 /* enemies may ram Enterprise */ +#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_PLAIN 0x01000000 /* user chose plain game */ +#define OPTION_ALMY 0x02000000 /* user chose Almy variant */ /* Define devices */ #define DSRSENS 0 @@ -157,6 +168,8 @@ EXTERN struct { int inkling, inbase, incom, + inscom, + inrom, instar, intorps, condit, @@ -233,7 +246,7 @@ EXTERN struct { docfac, resting, damfac, - stdamtim, + lastchart, cryprob, probex, probey, @@ -243,88 +256,90 @@ EXTERN struct { } game; #define inkling game.inkling // Initial number of klingons -#define inbase game.inbase // Initial number of bases -#define incom game.incom // Initian number of commanders -#define instar game.instar // Initial stars +#define inbase game.inbase // Initial number of bases +#define incom game.incom // Initian number of commanders +#define inscom game.inscom // Initian number of commanders +#define inrom game.inrom // Initian number of commanders +#define instar game.instar // Initial stars #define intorps game.intorps // Initial/Max torpedoes -#define condit game.condit // Condition (red, yellow, green docked) -#define torps game.torps // number of torpedoes -#define ship game.ship // Ship type -- 'E' is Enterprise -#define quadx game.quadx // where we are -#define quady game.quady // -#define sectx game.sectx // where we are -#define secty game.secty // -#define length game.length // length of game -#define skill game.skill // skill level -#define basex game.basex // position of base in current quad -#define basey game.basey // -#define klhere game.klhere // klingons here +#define condit game.condit // Condition (red/yellow/green/docked) +#define torps game.torps // number of torpedoes +#define ship game.ship // Ship type -- 'E' is Enterprise +#define quadx game.quadx // where we are +#define quady game.quady // +#define sectx game.sectx // where we are +#define secty game.secty // +#define length game.length // length of game +#define skill game.skill // skill level +#define basex game.basex // position of base in current quad +#define basey game.basey // +#define klhere game.klhere // klingons here #define comhere game.comhere // commanders here -#define casual game.casual // causalties -#define nhelp game.nhelp // calls for help -#define nkinks game.nkinks // -#define ididit game.ididit // Action taken -- allows enemy to attack +#define casual game.casual // causalties +#define nhelp game.nhelp // calls for help +#define nkinks game.nkinks // +#define ididit game.ididit // Action taken -- allows enemy to attack #define gamewon game.gamewon // Finished! -#define alive game.alive // We are alive (not killed) -#define justin game.justin // just entered quadrant +#define alive game.alive // We are alive (not killed) +#define justin game.justin // just entered quadrant #define alldone game.alldone // game is now finished #define shldchg game.shldchg // shield is changing (affects efficiency) -#define plnetx game.plnetx // location of planet in quadrant -#define plnety game.plnety // +#define plnetx game.plnetx // location of planet in quadrant +#define plnety game.plnety // #define inorbit game.inorbit // orbiting -#define landed game.landed // party on planet (1), on ship (-1) -#define iplnet game.iplnet // planet # in quadrant -#define imine game.imine // mining -#define inplan game.inplan // initial planets +#define landed game.landed // party on planet (1), on ship (-1) +#define iplnet game.iplnet // planet # in quadrant +#define imine game.imine // mining +#define inplan game.inplan // initial planets #define nenhere game.nenhere // Number of enemies in quadrant -#define ishere game.ishere // Super-commander in quandrant -#define neutz game.neutz // Romulan Neutral Zone -#define irhere game.irhere // Romulans in quadrant -#define icraft game.icraft // Kirk in Galileo +#define ishere game.ishere // Super-commander in quandrant +#define neutz game.neutz // Romulan Neutral Zone +#define irhere game.irhere // Romulans in quadrant +#define icraft game.icraft // Kirk in Galileo #define ientesc game.ientesc // Attempted escape from supercommander #define iscraft game.iscraft // =1 if craft on ship, -1 if removed from game -#define isatb game.isatb // =1 if SuperCommander is attacking base -#define iscate game.iscate // Super Commander is here +#define isatb game.isatb // =1 if SuperCommander is attacking base +#define iscate game.iscate // Super Commander is here #ifdef DEBUG -#define idebug game.idebug // Debug mode +#define idebug game.idebug // Debug mode #endif -#define iattak game.iattak // attack recursion elimination (was cracks[4]) +#define iattak game.iattak // attack recursion elimination (was cracks[4]) #define icrystl game.icrystl // dilithium crystals aboard -#define tourn game.tourn // Tournament number -#define thawed game.thawed // Thawed game -#define batx game.batx // Base coordinates being attacked -#define baty game.baty // -#define ithere game.ithere // Tholean is here -#define ithx game.ithx // coordinates of tholean +#define tourn game.tourn // Tournament number +#define thawed game.thawed // Thawed game +#define batx game.batx // Base coordinates being attacked +#define baty game.baty // +#define ithere game.ithere // Tholean is here +#define ithx game.ithx // coordinates of tholean #define ithy game.ithy #define iseenit game.iseenit // Seen base attack report #define inresor game.inresor // initial resources -#define intime game.intime // initial time -#define inenrg game.inenrg // Initial/Max Energy -#define inshld game.inshld // Initial/Max Shield -#define inlsr game.inlsr // initial life support resources -#define indate game.indate // Initial date -#define energy game.energy // Energy level -#define shield game.shield // Shield level -#define shldup game.shldup // Shields are up +#define intime game.intime // initial time +#define inenrg game.inenrg // Initial/Max Energy +#define inshld game.inshld // Initial/Max Shield +#define inlsr game.inlsr // initial life support resources +#define indate game.indate // Initial date +#define energy game.energy // Energy level +#define shield game.shield // Shield level +#define shldup game.shldup // Shields are up #define warpfac game.warpfac // Warp speed -#define wfacsq game.wfacsq // squared warp factor +#define wfacsq game.wfacsq // squared warp factor #define lsupres game.lsupres // life support reserves -#define dist game.dist // movement distance -#define direc game.direc // movement direction -#define Time game.Time // time taken by current operation -#define docfac game.docfac // repair factor when docking (constant?) +#define dist game.dist // movement distance +#define direc game.direc // movement direction +#define Time game.Time // time taken by current operation +#define docfac game.docfac // repair factor when docking (constant?) #define resting game.resting // rest time -#define damfac game.damfac // damage factor -#define stdamtim game.stdamtim // time that star chart was damaged +#define damfac game.damfac // damage factor +#define lastchart game.lastchart // time star chart was last updated #define cryprob game.cryprob // probability that crystal will work -#define probex game.probex // location of probe +#define probex game.probex // location of probe #define probey game.probey #define probecx game.probecx // current probe quadrant #define probecy game.probecy #define probeinx game.probeinx // Probe x,y increment #define probeiny game.probeiny -#define proben game.proben // number of moves for probe +#define proben game.proben // number of moves for probe #define isarmed game.isarmed // Probe is armed #define nprobes game.nprobes // number of probes available @@ -452,7 +467,7 @@ void crmena(int, int, int, int, int); void deadkl(int, int, int, int, int); void timwrp(void); void movcom(void); -void torpedo(double, double, int, int, double *, int, int, int); +void torpedo(double, double, int, int, double *, int, int); void huh(void); void pause_game(int); void nova(int, int); @@ -478,7 +493,7 @@ void iostart(void); 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 tracktorpedo(int ix, int iy, int l, int i, int n, int iquad); void cgetline(char *, int); void waitfor(void); void setpassword(void);