X-Git-Url: https://jxself.org/git/?p=super-star-trek.git;a=blobdiff_plain;f=sst.c;h=eb7c8f6cb4303edc7ab08b4b85bbf35c12332adf;hp=5cba52ea154cc675bc71f5a390360149e9bd4756;hb=c1bda490aef42a6b3d0e8d97a20fb58236d02ee7;hpb=ac3672c23b0cc0edf11061af58bf214e0d8c339e diff --git a/sst.c b/sst.c index 5cba52e..eb7c8f6 100644 --- a/sst.c +++ b/sst.c @@ -300,15 +300,17 @@ static void makemoves(void) { clrscr(); #endif /* SERGEEV */ proutn("COMMAND> "); -#ifdef SERGEEV if (scan() == IHEOL) { +#ifdef SERGEEV _setcursortype(_NOCURSOR); setwnd(4); clrscr(); chart(0); _setcursortype(_NORMALCURSOR); +#endif /* SERGEEV */ continue; } +#ifdef SERGEEV ididit=0; clrscr(); setwnd(4); @@ -406,7 +408,7 @@ static void makemoves(void) { srscan(2); break; case 21: // Game Report - report(0); + report(); break; case 22: // use COMPUTER! eta(); @@ -415,12 +417,15 @@ static void makemoves(void) { listCommands(TRUE); break; case 24: // Emergency exit - clearscreen(); // Hide screen +#ifdef SERGEEV + clrscr(); // Hide screen +#endif /* SERGEEV */ freeze(TRUE); // forced save exit(1); // And quick exit break; case 25: probe(); // Launch probe + if (ididit) hitme = TRUE; break; case 26: // Abandon Ship abandn(); @@ -430,8 +435,11 @@ static void makemoves(void) { break; case 28: // Save Game freeze(FALSE); +#ifdef SERGEEV + clrscr(); +#endif /* SERGEEV */ if (skill > 3) - prout("WARNING--Frozen games produce no plaques!"); + prout("WARNING--Saved games produce no plaques!"); break; case 29: // Try a desparation measure deathray(); @@ -470,7 +478,6 @@ static void makemoves(void) { atover(0); continue; } - if (nenhere == 0) movetho(); if (hitme && justin==0) { attack(2); if (alldone) break; @@ -488,7 +495,8 @@ static void makemoves(void) { int main(int argc, char **argv) { - int i, option, usecurses = TRUE; + int i, option, usecurses = TRUE; + while ((option = getopt(argc, argv, "t")) != -1) { switch (option) { case 't': @@ -500,21 +508,28 @@ int main(int argc, char **argv) { } } +#ifndef SERGEEV iostart(usecurses); - prelim(); +#else + randomize(); + textattr(7); + clrscr(); + setwnd(0); +#endif /* SERGEEV */ line[0] = '\0'; for (i = optind; i < argc; i++) { strcat(line, argv[i]); strcat(line, " "); } while (TRUE) { /* Play a game */ + prelim(); setup(line[0] == '\0'); if (alldone) { score(); alldone = 0; } else makemoves(); - skip(2); + skip(1); stars(); skip(1); @@ -567,7 +582,7 @@ char *cramlc(enum loctype key, int x, int y) { 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", x, y); return buf; } @@ -637,6 +652,14 @@ int scan(void) { return IHEOL; } getline(line, sizeof(line)); +#ifdef SERGEEV + fflush(stdin); + if (curwnd==5){ + clrscr(); + setwnd(4); + clrscr(); + } +#endif /* SERGEEV */ linep = line; } // Skip leading white space