X-Git-Url: https://jxself.org/git/?p=super-star-trek.git;a=blobdiff_plain;f=sst.h;h=5b68074186a972e7fc4c0b43c7141fa4406440f0;hp=beeee5c6dfc1d1291b68f773c686c3c523e8baa6;hb=8b0a1880ee115e281afe83e1cd0c90e3306dfed8;hpb=d7ddf0df59133fd0ff3f49d0ed83079e3a695aeb diff --git a/sst.h b/sst.h index beeee5c..5b68074 100644 --- a/sst.h +++ b/sst.h @@ -20,6 +20,7 @@ #define NEVENTS (8) #define GALSIZE (8) #define QUADSIZE (10) +#define BASEMAX (6) typedef struct { int x; /* Quadrant location of planet */ @@ -42,8 +43,8 @@ typedef struct { killc, // commanders killed galaxy[GALSIZE+1][GALSIZE+1], // The Galaxy (subscript 0 not used) cx[QUADSIZE+1],cy[QUADSIZE+1], // Commander quadrant coordinates - baseqx[6], // Base quadrant X - baseqy[6], // Base quadrant Y + 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 @@ -57,6 +58,33 @@ typedef struct { remtime; // remaining time } 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 +#define SKILL_GOOD 3 +#define SKILL_EXPERT 4 +#define SKILL_EMERITUS 5 + // 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, @@ -401,8 +429,7 @@ void crmshp(void); char *cramlc(enum loctype, int, int); double expran(double); double Rand(void); -void iran8(int *, int *); -void iran10(int *, int *); +void iran(int, int *, int *); #define square(i) ((i)*(i)) void dropin(int, int*, int*); void newcnd(void);