X-Git-Url: https://jxself.org/git/?p=super-star-trek.git;a=blobdiff_plain;f=sst.h;h=9a67c1d063ac1dd44cafcb6a6d15c34ff7edc51c;hp=64dd1bc9845c36c61ed8d844fdd1e1d824748433;hb=e536fe754b3a9be00dcaee8f6ec50ea2d8c7a184;hpb=64f8a6155517ae8b894617ebd93e5eb48cdf4c0e diff --git a/sst.h b/sst.h index 64dd1bc..9a67c1d 100644 --- a/sst.h +++ b/sst.h @@ -14,7 +14,6 @@ // #define DEBUG -#define NDEVICES (15) // Number of devices #define PHASEFAC (2.0) #define PLNETMAX (10) #define NEVENTS (8) @@ -41,11 +40,9 @@ typedef struct { basekl, // destroyed bases killk, // Klingons killed killc, // commanders killed - 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 @@ -56,28 +53,22 @@ typedef struct { double date, // stardate remres, // remaining resources remtime; // remaining time + struct { + int stars; + int planets; + int starbase; + int klingons; + int romulans; + int supernova; + int charted; + } galaxy[GALSIZE+1][GALSIZE+1]; // The Galaxy (subscript 0 not used) + struct { + int stars; + int starbase; + int klingons; + } chart[GALSIZE+1][GALSIZE+1]; // the starchart (subscript 0 not used) } snapshot; // Data that is snapshot -/* - * This is how the integers in the galaxy array are encoded. - * Someday these should turn into structure fields. - */ -#define SUPERNOVA_PLACE 1000 -#define KLINGON_PLACE 100 -#define BASE_PLACE 10 -#define STAR_PLACE 1 -#define KLINGONS(n) ((n)/KLINGON_PLACE) -#define BASES(n) (((n)%KLINGON_PLACE)/BASE_PLACE) -#define STARS(n) ((n)%BASE_PLACE) -#define NOEXIT(s) ((s) > 899) /* supernova or >8 Klingons */ - -/* for newstuff */ -#define ROMULAN_PLACE 10 -#define ROMULANS(n) ((n)/ROMULAN_PLACE) - -/* for starch */ -#define CHART_UNKNOWN -1 - #define SKILL_NONE 0 #define SKILL_NOVICE 1 #define SKILL_FAIR 2 @@ -95,6 +86,24 @@ typedef struct { #define OPTION_THINGY 0x00000010 /* Space Thingy can shoot back */ #define OPTION_PROBE 0x00000020 /* deep-space probes */ +/* Define devices */ +#define DSRSENS 0 +#define DLRSENS 1 +#define DPHASER 2 +#define DPHOTON 3 +#define DLIFSUP 4 +#define DWARPEN 5 +#define DIMPULS 6 +#define DSHIELD 7 +#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 + // 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, @@ -113,12 +122,11 @@ EXTERN struct { 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 damage[NDEVICES]; // damage encountered double future[NEVENTS+1]; // future events char passwd[10]; // Self Destruct password 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, @@ -294,7 +302,7 @@ EXTERN struct { #define nprobes game.nprobes // number of probes available /* the following global state doesn't need to be saved */ -EXTERN char *device[NDEVICES+1]; +EXTERN char *device[NDEVICES]; EXTERN int iscore, iskill; // Common PLAQ EXTERN double perdate; EXTERN double aaitem; @@ -310,23 +318,6 @@ typedef enum {FWON, FDEPLETE, FLIFESUP, FNRG, FBATTLE, FHOLE} FINTYPE ; enum loctype {neither, quadrant, sector}; -/* Define devices */ -#define DSRSENS 1 -#define DLRSENS 2 -#define DPHASER 3 -#define DPHOTON 4 -#define DLIFSUP 5 -#define DWARPEN 6 -#define DIMPULS 7 -#define DSHIELD 8 -#define DRADIO 9 -#define DSHUTTL 10 -#define DCOMPTR 11 -#define DTRANSP 12 -#define DSHCTRL 13 -#define DDRAY 14 // Added deathray -#define DDSP 15 // Added deep space probe - /* Define future events */ #define FSPY 0 // Spy event happens always (no future[] entry) // can cause SC to tractor beam Enterprise @@ -340,8 +331,7 @@ enum loctype {neither, quadrant, sector}; #define FDSPROB 8 // Move deep space probe #ifdef INCLUDED -char *device[NDEVICES+1] = { - "", +char *device[NDEVICES] = { "S. R. Sensors", "L. R. Sensors", "Phasers", @@ -355,8 +345,8 @@ char *device[NDEVICES+1] = { "Computer", "Transporter", "Shield Control", - "Death Ray", - "D. S. Probe"}; + "Death Ray", + "D. S. Probe"}; #endif #ifndef TRUE @@ -404,6 +394,7 @@ void doshield(int); void dock(int); void dreprt(void); void chart(int); +void rechart(void); void impuls(void); void wait(void); void setwrp(void);