X-Git-Url: https://jxself.org/git/?a=blobdiff_plain;f=reports.c;h=8cbf55eb6a1da6138f81538ef7b195a5a8e87476;hb=c079542899cdebd703a1286103a3fce307617e90;hp=32ee650d8b71c90623e5eadf9c9567b41b711d51;hpb=f32d2d732216b19d96c2e31b5aa3b977f9646354;p=super-star-trek.git diff --git a/reports.c b/reports.c index 32ee650..8cbf55e 100644 --- a/reports.c +++ b/reports.c @@ -5,20 +5,6 @@ #include "conio.h" #include "sstlinux.h" -#ifdef SERGEEV -int c_printf (char *format, ... ) -{ - char buffer[BUFSIZ]; /* Well, BUFSIZ is from ncurses... */ - va_list argp; - va_start(argp,format); - vsprintf(buffer,format,argp); - va_end(argp); - return waddstr(conio_scr,buffer); -} -#else -#define c_printf proutn -#endif /* SERGEEV */ - void attakreport(int l) { if (!l) { if (game.future[FCDBAS] < 1e30) { @@ -39,9 +25,7 @@ void attakreport(int l) { if (isatb == 1) proutn("Base in %i - %i attacked by S. Alive until %.1f", game.state.isx, game.state.isy, game.future[FSCDBAS]); } -#ifdef SERGEEV clreol(); -#endif /* SERGEEV */ } @@ -213,9 +197,7 @@ void chart(int nn) { strcpy(buf, "..."); else if (game.starch[i][j] > 999) if ((i==quadx)&&(j==quady)){ -#ifdef SERGEEV gotoxy(wherex()-1,wherey()); -#endif /* SERGEEV */ if (game.starch[i][i]<2000) sprintf(buf, "%03d", game.starch[i][j]-1000); else @@ -227,9 +209,7 @@ void chart(int nn) { else strcpy(buf, "***"); else if ((i==quadx)&&(j==quady)){ -#ifdef SERGEEV gotoxy(wherex()-1,wherey()); -#endif /* SERGEEV */ sprintf(buf, "%03d", game.state.galaxy[i][j]); } else if (game.state.galaxy[i][j]>=1000) @@ -244,20 +224,18 @@ void chart(int nn) { c_printf(" |"); if (i<8) c_printf("\n\r"); } -#ifdef SERGEEV - proutn(""); /* flush output */ -#else - skip(2); -#endif + prout(""); /* flush output */ } int srscan(int l) { + static char requests[][3] = + {"","da","co","po","ls","wa","en","to","sh","kl","ti"}; char *cp = NULL; int leftside=TRUE, rightside=TRUE, i, j, jj, k=0, nn=FALSE, t, dam=0; int goodScan=TRUE; switch (l) { - case 1: // SRSCAN + case SCAN_FULL: // SRSCAN if (game.damage[DSRSENS] != 0) { /* Allow base's sensors if docked */ if (condit != IHDOCKED) { @@ -271,17 +249,31 @@ int srscan(int l) { if (goodScan) game.starch[quadx][quady] = game.damage[DRADIO]>0.0 ? game.state.galaxy[quadx][quady]+1000:1; scan(); if (isit("chart")) nn = TRUE; - rightside = FALSE; + if (isit("no")) rightside = FALSE; chew(); c_printf(" 1 2 3 4 5 6 7 8 9 10\n\r"); break; - case 2: // REQUEST - leftside=FALSE; - break; - case 3: // STATUS + case SCAN_REQUEST: + while (scan() == IHEOL) + proutn("Information desired? "); + chew(); + for (k = 1; k <= 10; k++) + if (strncmp(citem,requests[k],min(2,strlen(citem)))==0) + break; + if (k > 10) { + prout("UNRECOGNIZED REQUEST. Legal requests are:\n" + " date, condition, position, lsupport, warpfactor,\n" + " energy, torpedoes, shields, klingons, time."); + return FALSE; + } + // no "break" + case SCAN_STATUS: // STATUS chew(); leftside = FALSE; skip(1); + case SCAN_NO_LEFTSIDE: // REQUEST + leftside=FALSE; + break; } if (condit != IHDOCKED) newcnd(); for (i = 1; i <= 10; i++) { @@ -298,13 +290,9 @@ int srscan(int l) { case IHDOCKED: textcolor(LIGHTGRAY); break; case IHDEAD: textcolor(WHITE); } -#ifdef SERGEEV if (game.quad[i][j]!=ship) highvideo(); -#endif /* SERGEEV */ } -#ifdef SERGEEV if (game.quad[i][j] & 128) highvideo(); -#endif /* SERGEEV */ c_printf("%c ",game.quad[i][j] & 127); textcolor(LIGHTGRAY); } @@ -376,12 +364,8 @@ int srscan(int l) { if (i<10) c_printf("\n\r"); if (k!=0) return(goodScan); } + prout(""); if (nn) chart(1); -#ifdef SERGEEV - proutn(""); -#else - skip(2); -#endif /* SERGEEV */ return(goodScan); }