X-Git-Url: https://jxself.org/git/?p=super-star-trek.git;a=blobdiff_plain;f=src%2Fsst.c;h=a0d732d31fe5674c79b6e52063016ae028822b1e;hp=ccf7470b64ea04fc4f39152e0fa75ff6e272f5a5;hb=9ae916e9144e84ef1de4a86ea73a45a2bc4cc1be;hpb=b45b4cfdbae07f0103fae675c2f8d17cdbab2352 diff --git a/src/sst.c b/src/sst.c index ccf7470..a0d732d 100644 --- a/src/sst.c +++ b/src/sst.c @@ -282,7 +282,7 @@ commands[] = { #endif }; -#define NUMCOMMANDS sizeof(commands)/sizeof(commands[0]) +#define NUMCOMMANDS ARRAY_SIZE(commands) #define ACCEPT(i) (!commands[i].option || (commands[i].option & game.options)) static void listCommands(void) @@ -318,14 +318,16 @@ static void helpme(void) key = scan(); } setwnd(message_window); - if (key == IHEOL) return; + if (key == IHEOL) + return; for (i = 0; i < NUMCOMMANDS; i++) { if (ACCEPT(i) && strcasecmp(commands[i].name, citem)==0) { i = commands[i].value; break; } } - if (i != NUMCOMMANDS) break; + if (i != NUMCOMMANDS) + break; skip(1); listCommands(); key = IHEOL; @@ -387,13 +389,6 @@ static void helpme(void) fclose(fp); } -void enqueue(char *s) -/* enqueue input for the command parser */ -{ - chew(); - strcpy(line, s); -} - static void makemoves(void) /* command-interpretation loop */ { @@ -413,7 +408,8 @@ static void makemoves(void) clrscr(); proutn("COMMAND> "); if (scan() == IHEOL) { - makechart(); + if (game.options & OPTION_CURSES) + makechart(); continue; } game.ididit = false; @@ -439,24 +435,26 @@ static void makemoves(void) commandhook(commands[i].name, true); switch (v) { /* command switch */ case SRSCAN: // srscan - srscan(SCAN_FULL); + srscan(); break; case STATUS: // status - srscan(SCAN_STATUS); + status(0); break; case REQUEST: // status request - srscan(SCAN_REQUEST); + request(); break; case LRSCAN: // lrscan lrscan(); break; case PHASERS: // phasers phasers(); - if (game.ididit) hitme = true; + if (game.ididit) + hitme = true; break; case TORPEDO: // photons photon(); - if (game.ididit) hitme = true; + if (game.ididit) + hitme = true; break; case MOVE: // move warp(false); @@ -470,20 +468,22 @@ static void makemoves(void) break; case DOCK: // dock dock(true); - if (game.ididit) attack(false); + if (game.ididit) + attack(false); break; case DAMAGES: // damages dreprt(); break; case CHART: // chart - chart(false); + makechart(); break; case IMPULSE: // impulse impuls(); break; case REST: // rest wait(); - if (game.ididit) hitme = true; + if (game.ididit) + hitme = true; break; case WARP: // warp setwrp(); @@ -496,22 +496,26 @@ static void makemoves(void) break; case ORBIT: // orbit orbit(); - if (game.ididit) hitme = true; + if (game.ididit) + hitme = true; break; case TRANSPORT: // transport "beam" beam(); break; case MINE: // mine mine(); - if (game.ididit) hitme = true; + if (game.ididit) + hitme = true; break; case CRYSTALS: // crystals usecrystals(); - if (game.ididit) hitme = true; + if (game.ididit) + hitme = true; break; case SHUTTLE: // shuttle shuttle(); - if (game.ididit) hitme = true; + if (game.ididit) + hitme = true; break; case PLANETS: // Planet list preport(); @@ -532,7 +536,8 @@ static void makemoves(void) break; case PROBE: probe(); // Launch probe - if (game.ididit) hitme = true; + if (game.ididit) + hitme = true; break; case ABANDON: // Abandon Ship abandn(); @@ -548,14 +553,16 @@ static void makemoves(void) break; case DEATHRAY: // Try a desparation measure deathray(); - if (game.ididit) hitme = true; + if (game.ididit) + hitme = true; break; case DEBUGCMD: // What do we want for debug??? debugme(); break; case MAYDAY: // Call for help mayday(); - if (game.ididit) hitme = true; + if (game.ididit) + hitme = true; break; case QUIT: game.alldone = true; // quit the game @@ -587,7 +594,8 @@ static void makemoves(void) } if (hitme && !game.justin) { attack(true); - if (game.alldone) break; + if (game.alldone) + break; if (game.state.galaxy[game.quadrant.x][game.quadrant.y].supernova) { // went NOVA! atover(false); hitme = true; @@ -596,9 +604,11 @@ static void makemoves(void) } break; } - if (game.alldone) break; + if (game.alldone) + break; } - if (idebug) prout("=== Ending"); + if (idebug) + prout("=== Ending"); } @@ -619,11 +629,11 @@ int main(int argc, char **argv) replayfp = fopen(optarg, "r"); if (replayfp == NULL) { fprintf(stderr, "sst: can't open replay file %s\n", optarg); - exit(1); + exit(1); } if (fscanf(replayfp, "seed %d\n", &seed) != 1) { fprintf(stderr, "sst: replay file %s is ill-formed\n", optarg); - exit(1); + exit(1); } /* FALL THROUGH */ case 't': @@ -640,11 +650,12 @@ int main(int argc, char **argv) } /* where to save the input in case of bugs */ logfp = fopen("/usr/tmp/sst-input.log", "w"); - setlinebuf(logfp); - fprintf(logfp, "seed %d\n", seed); + if (logfp) { + setlinebuf(logfp); + fprintf(logfp, "seed %d\n", seed); + } srand(seed); - srand(seed); iostart(); line[0] = '\0'; @@ -661,7 +672,8 @@ int main(int argc, char **argv) score(); game.alldone = false; } - else makemoves(); + else + makemoves(); skip(1); stars(); skip(1); @@ -674,7 +686,8 @@ int main(int argc, char **argv) } } proutn(_("Do you want to play again? ")); - if (!ja()) break; + if (!ja()) + break; } skip(1); prout(_("May the Great Bird of the Galaxy roost upon your home planet.")); @@ -711,8 +724,10 @@ 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 ")); + if (key == quadrant) + strcpy(buf, _("Quadrant ")); + else if (key == sector) + strcpy(buf, _("Sector ")); sprintf(buf+strlen(buf), "%d - %d", w.x, w.y); return buf; } @@ -720,7 +735,8 @@ char *cramlc(enum loctype key, coord w) void crmena(bool stars, feature enemy, enum loctype key, coord w) /* print an enemy and his location */ { - if (stars) proutn("***"); + if (stars) + proutn("***"); cramen(enemy); proutn(_(" at ")); proutn(cramlc(key, w)); @@ -825,7 +841,8 @@ int scan(void) // Treat as alpha cp = citem; while (*linep && *linep!=' ') { - if ((cp - citem) < 9) *cp++ = tolower(*linep); + if ((cp - citem) < 9) + *cp++ = tolower(*linep); linep++; } *cp = 0; @@ -839,8 +856,10 @@ bool ja(void) for(;;) { scan(); chew(); - if (*citem == 'y') return true; - if (*citem == 'n') return false; + if (*citem == 'y') + return true; + if (*citem == 'n') + return false; proutn(_("Please answer with \"y\" or \"n\": ")); } } @@ -864,7 +883,8 @@ void debugme(void) { proutn("Reset levels? "); if (ja() == true) { - if (game.energy < game.inenrg) game.energy = game.inenrg; + if (game.energy < game.inenrg) + game.energy = game.inenrg; game.shield = game.inshld; game.torps = game.intorps; game.lsupres = game.inlsr; @@ -879,8 +899,10 @@ void debugme(void) proutn("Toggle debug flag? "); if (ja() == true) { idebug = !idebug; - if (idebug) prout("Debug output ON"); - else prout("Debug output OFF"); + if (idebug) + prout("Debug output ON"); + else + prout("Debug output OFF"); } proutn("Cause selective damage? "); if (ja() == true) {