#include <stdlib.h>
#include <string.h>
#include "conio.h"
-#include "sstlinux.h"
-#ifndef SERGEEV
-#define c_printf proutn
-#endif /* SERGEEV */
void attakreport(int l) {
if (!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 */
}
char *cp;
chew();
if (stdamtim != 1e30 && stdamtim != game.state.date && condit == IHDOCKED) {
- c_printf("Spock- \"I revised the Star Chart from the starbase's records.\"\n\r");
+ proutn("Spock- \"I revised the Star Chart from the starbase's records.\"\n\r");
}
- if (nn == 0) c_printf(" STAR CHART FOR THE KNOWN GALAXY\n\r");
+ if (nn == 0) proutn(" STAR CHART FOR THE KNOWN GALAXY\n\r");
if (stdamtim != 1e30) {
if (condit == IHDOCKED) {
/* We are docked, so restore chart from base information */
prout(" 1 2 3 4 5 6 7 8");
for (i = 1; i <= 8; i++) {
- c_printf("%d |", i);
+ proutn("%d |", i);
for (j = 1; j <= 8; j++) {
- char buf[4];
- c_printf(" ");
+ char buf[4];
+ proutn(" ");
if (game.starch[i][j] < 0)
strcpy(buf, ".1.");
else if (game.starch[i][j] == 0)
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
- strcpy(buf, "***");
- }
- else
- if (game.starch[i][j]<2000)
- sprintf(buf, "%03d", game.starch[i][j]-1000);
- 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)
strcpy(buf, "***");
else
for (cp = buf; cp < buf + sizeof(buf); cp++)
if (*cp == '0')
*cp = '.';
- c_printf(buf);
+ proutn(buf);
}
- c_printf(" |");
- if (i<8) c_printf("\n\r");
+ proutn(" |");
+ if (i<8) proutn("\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) {
else
prout(" [Using Base's sensors]");
}
- else c_printf(" Short-range scan\n\r");
+ else proutn(" Short-range scan\n\r");
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");
+ proutn(" 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++) {
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);
+ proutn("%c ",game.quad[i][j] & 127);
textcolor(LIGHTGRAY);
}
else
break;
}
}
- if (i<10) c_printf("\n\r");
+ if (i<10) proutn("\n\r");
if (k!=0) return(goodScan);
}
+ prout("");
if (nn) chart(1);
-#ifdef SERGEEV
- proutn("");
-#else
- skip(2);
-#endif /* SERGEEV */
return(goodScan);
}