X-Git-Url: https://jxself.org/git/?a=blobdiff_plain;ds=sidebyside;f=src%2Fsst.c;h=b68613d21f8fe26540b763805755d387594ad55a;hb=c81e0f1dc6cd1fe5c56e9d521ee1d262932e3a2b;hp=4288bbbd8651e7e4c2ecfbb81c421108e4700a82;hpb=52265793501a00845a0d6108d1af6e50e3ece379;p=super-star-trek.git diff --git a/src/sst.c b/src/sst.c index 4288bbb..b68613d 100644 --- a/src/sst.c +++ b/src/sst.c @@ -164,7 +164,8 @@ for a lot of magic numbers and refactored the heck out of it. static char line[128], *linep = line; struct game game; -int thingx, thingy, iqhere, iqengry; +coord thing; +int iqhere, iqengry; int iscore, iskill; // Common PLAQ double aaitem; double perdate; @@ -208,66 +209,66 @@ commands[] = { #define TORPEDO 5 {"TORPEDO", TORPEDO, 0}, {"PHOTONS", TORPEDO, 0}, -#define MOVE 6 +#define MOVE 7 {"MOVE", MOVE, 0}, -#define SHIELDS 7 +#define SHIELDS 8 {"SHIELDS", SHIELDS, 0}, -#define DOCK 8 +#define DOCK 9 {"DOCK", DOCK, 0}, -#define DAMAGES 9 +#define DAMAGES 10 {"DAMAGES", DAMAGES, 0}, -#define CHART 10 +#define CHART 11 {"CHART", CHART, 0}, -#define IMPULSE 11 +#define IMPULSE 12 {"IMPULSE", IMPULSE, 0}, -#define REST 12 +#define REST 13 {"REST", REST, 0}, -#define WARP 13 +#define WARP 14 {"WARP", WARP, 0}, -#define SCORE 14 +#define SCORE 15 {"SCORE", SCORE, 0}, -#define SENSORS 15 +#define SENSORS 16 {"SENSORS", SENSORS, OPTION_PLANETS}, -#define ORBIT 16 +#define ORBIT 17 {"ORBIT", ORBIT, OPTION_PLANETS}, -#define TRANSPORT 17 +#define TRANSPORT 18 {"TRANSPORT", TRANSPORT, OPTION_PLANETS}, -#define MINE 18 +#define MINE 19 {"MINE", MINE, OPTION_PLANETS}, -#define CRYSTALS 19 +#define CRYSTALS 20 {"CRYSTALS", CRYSTALS, OPTION_PLANETS}, -#define SHUTTLE 20 +#define SHUTTLE 21 {"SHUTTLE", SHUTTLE, OPTION_PLANETS}, -#define PLANETS 21 +#define PLANETS 22 {"PLANETS", PLANETS, OPTION_PLANETS}, -#define REPORT 22 +#define REPORT 23 {"REPORT", REPORT, 0}, -#define COMPUTER 23 +#define COMPUTER 24 {"COMPUTER", COMPUTER, 0}, -#define COMMANDS 24 +#define COMMANDS 25 {"COMMANDS", COMMANDS, 0}, -#define EMEXIT 25 +#define EMEXIT 26 {"EMEXIT", EMEXIT, 0}, -#define PROBE 26 +#define PROBE 27 {"PROBE", PROBE, OPTION_PROBE}, -#define SAVE 27 +#define SAVE 28 {"SAVE", SAVE, 0}, {"FREEZE", SAVE, 0}, -#define ABANDON 28 +#define ABANDON 30 {"ABANDON", ABANDON, 0}, -#define DESTRUCT 29 +#define DESTRUCT 31 {"DESTRUCT", DESTRUCT, 0}, -#define DEATHRAY 30 +#define DEATHRAY 32 {"DEATHRAY", DEATHRAY, 0}, -#define DEBUGCMD 31 +#define DEBUGCMD 33 {"DEBUG", DEBUGCMD, 0}, -#define MAYDAY 32 +#define MAYDAY 34 {"MAYDAY", MAYDAY, 0}, //{"SOS", MAYDAY, 0}, //{"CALL", MAYDAY, 0}, -#define QUIT 33 +#define QUIT 35 {"QUIT", QUIT, 0}, -#define HELP 34 +#define HELP 36 {"HELP", HELP, 0}, }; @@ -532,7 +533,7 @@ static void makemoves(void) #endif break; case MAYDAY: // Call for help - help(); + mayday(); if (game.ididit) hitme = TRUE; break; case QUIT: @@ -555,14 +556,14 @@ static void makemoves(void) events(); if (game.alldone) break; // Events did us in } - if (game.state.galaxy[game.quadx][game.quady].supernova) { // Galaxy went Nova! + if (game.state.galaxy[game.quadrant.x][game.quadrant.y].supernova) { // Galaxy went Nova! atover(0); continue; } if (hitme && game.justin==0) { attack(2); if (game.alldone) break; - if (game.state.galaxy[game.quadx][game.quady].supernova) { // went NOVA! + if (game.state.galaxy[game.quadrant.x][game.quadrant.y].supernova) { // went NOVA! atover(0); hitme = TRUE; continue; @@ -660,22 +661,22 @@ void cramen(int i) proutn(s); } -char *cramlc(enum loctype key, int x, int y) +char *cramlc(enum loctype key, coord w) { static char buf[32]; buf[0] = '\0'; if (key == quadrant) strcpy(buf, "Quadrant "); else if (key == sector) strcpy(buf, "Sector "); - sprintf(buf+strlen(buf), "%d - %d", x, y); + sprintf(buf+strlen(buf), "%d - %d", w.x, w.y); return buf; } -void crmena(int i, int enemy, int key, int x, int y) +void crmena(int i, int enemy, int key, coord w) { if (i == 1) proutn("***"); cramen(enemy); proutn(" at "); - proutn(cramlc(key, x, y)); + proutn(cramlc(key, w)); } void crmshp(void) @@ -848,7 +849,7 @@ void debugme(void) int i; for (i = 1; i < NEVENTS; i++) { int key; - if (game.future[i] == FOREVER) continue; + if (!is_scheduled(i)) continue; switch (i) { case FSNOVA: proutn("Supernova "); break; case FTBEAM: proutn("T Beam "); break; @@ -858,19 +859,19 @@ void debugme(void) case FSCMOVE: proutn("SC Move "); break; case FSCDBAS: proutn("SC Base Destroy "); break; } - proutn("%.2f", game.future[i]-game.state.date); + proutn("%.2f", scheduled(i)-game.state.date); chew(); proutn(" ?"); key = scan(); if (key == IHREAL) { - game.future[i] = game.state.date + aaitem; + schedule(i, aaitem); } } chew(); } proutn("Induce supernova here? "); if (ja() != 0) { - game.state.galaxy[game.quadx][game.quady].supernova = TRUE; + game.state.galaxy[game.quadrant.x][game.quadrant.y].supernova = TRUE; atover(1); } }