From: Eric S. Raymond Date: Sun, 6 Feb 2005 06:26:07 +0000 (+0000) Subject: Color is working. X-Git-Tag: 2.0~358 X-Git-Url: https://jxself.org/git/?a=commitdiff_plain;h=5952a98d5a83ad6ed9dfe7821ed427504f280af1;p=super-star-trek.git Color is working. --- diff --git a/io.c b/io.c index 6899ab0..05dd489 100644 --- a/io.c +++ b/io.c @@ -44,26 +44,25 @@ void iostart(int usecurses) (void)saveterm(); (void)nonl(); (void)cbreak(); -#ifdef FOO +#ifdef A_COLOR { - int background = COLOR_WHITE; start_color(); - init_pair(COLOR_BLACK, COLOR_BLACK, background); - init_pair(COLOR_GREEN, COLOR_GREEN, background); - init_pair(COLOR_RED, COLOR_RED, background); - init_pair(COLOR_CYAN, COLOR_CYAN, background); - init_pair(COLOR_WHITE, COLOR_WHITE, background); - init_pair(COLOR_MAGENTA, COLOR_MAGENTA, background); - init_pair(COLOR_BLUE, COLOR_BLUE, background); - init_pair(COLOR_YELLOW, COLOR_YELLOW, background); + init_pair(COLOR_BLACK, COLOR_BLACK, COLOR_BLACK); + init_pair(COLOR_GREEN, COLOR_GREEN, COLOR_BLACK); + init_pair(COLOR_RED, COLOR_RED, COLOR_BLACK); + init_pair(COLOR_CYAN, COLOR_CYAN, COLOR_BLACK); + init_pair(COLOR_WHITE, COLOR_WHITE, COLOR_BLACK); + init_pair(COLOR_MAGENTA, COLOR_MAGENTA, COLOR_BLACK); + init_pair(COLOR_BLUE, COLOR_BLUE, COLOR_BLACK); + init_pair(COLOR_YELLOW, COLOR_YELLOW, COLOR_BLACK); } #endif /* A_COLOR */ //(void)noecho(); fullscreen_window = stdscr; srscan_window = newwin(12, 25, 0, 0); - REPORT_WINDOW = newwin(10, 0, 1, 25); + report_window = newwin(10, 0, 1, 25); lrscan_window = newwin(10, 0, 0, 64); - message_window = newwin(0, 0, 12, 0); + message_window = newwin(0, 0, 12, 0); prompt_window = newwin(1, 0, LINES-1, 0); scrollok(message_window, TRUE); setwnd(fullscreen_window); @@ -227,64 +226,63 @@ void clrscr (void) void textcolor (int color) { +#ifdef A_COLOR if (curses) { - wattroff(curwnd, A_REVERSE); -#ifdef FOO switch(color) { case DEFAULT: wattrset(curwnd, 0); break; case BLACK: - wattron(curwnd, COLOR_PAIR(BLACK)); + wattron(curwnd, COLOR_PAIR(COLOR_BLACK)); break; case BLUE: - wattron(curwnd, COLOR_PAIR(BLUE)); + wattron(curwnd, COLOR_PAIR(COLOR_BLUE)); break; case GREEN: - wattron(curwnd, COLOR_PAIR(GREEN)); + wattron(curwnd, COLOR_PAIR(COLOR_GREEN)); break; case CYAN: - wattron(curwnd, COLOR_PAIR(CYAN)); + wattron(curwnd, COLOR_PAIR(COLOR_CYAN)); break; case RED: - wattron(curwnd, COLOR_PAIR(RED)); + wattron(curwnd, COLOR_PAIR(COLOR_RED)); break; case MAGENTA: - wattron(curwnd, COLOR_PAIR(MAGENTA)); + wattron(curwnd, COLOR_PAIR(COLOR_MAGENTA)); break; case BROWN: - wattron(curwnd, COLOR_PAIR(YELLOW)); + wattron(curwnd, COLOR_PAIR(COLOR_YELLOW)); break; case LIGHTGRAY: - wattron(curwnd, COLOR_PAIR(WHITE)); + wattron(curwnd, COLOR_PAIR(COLOR_WHITE)); break; case DARKGRAY: - wattron(curwnd, COLOR_PAIR(BLACK) | A_BOLD); + wattron(curwnd, COLOR_PAIR(COLOR_BLACK) | A_BOLD); break; case LIGHTBLUE: - wattron(curwnd, COLOR_PAIR(BLUE) | A_BOLD); + wattron(curwnd, COLOR_PAIR(COLOR_BLUE) | A_BOLD); break; case LIGHTGREEN: - wattron(curwnd, COLOR_PAIR(GREEN) | A_BOLD); + wattron(curwnd, COLOR_PAIR(COLOR_GREEN) | A_BOLD); break; case LIGHTCYAN: - wattron(curwnd, COLOR_PAIR(CYAN) | A_BOLD); + wattron(curwnd, COLOR_PAIR(COLOR_CYAN) | A_BOLD); break; case LIGHTRED: - wattron(curwnd, COLOR_PAIR(RED) | A_BOLD); + wattron(curwnd, COLOR_PAIR(COLOR_RED) | A_BOLD); break; case LIGHTMAGENTA: - wattron(curwnd, COLOR_PAIR(MAGENTA) | A_BOLD); + wattron(curwnd, COLOR_PAIR(COLOR_MAGENTA) | A_BOLD); break; case YELLOW: - wattron(curwnd, COLOR_PAIR(YELLOW) | A_BOLD); + wattron(curwnd, COLOR_PAIR(COLOR_YELLOW) | A_BOLD); break; case WHITE: - wattron(curwnd, COLOR_PAIR(WHITE) | A_BOLD); + wattron(curwnd, COLOR_PAIR(COLOR_WHITE) | A_BOLD); break; } -#endif /* FOO */ } +#endif /* A_COLOR */ } void highvideo (void) @@ -312,9 +310,9 @@ void drawmaps(short l) wmove(curwnd, 0, 0); enqueue("no"); srscan(SCAN_FULL); - setwnd(REPORT_WINDOW); - wclear(REPORT_WINDOW); - wmove(REPORT_WINDOW, 0, 0); + setwnd(report_window); + wclear(report_window); + wmove(report_window, 0, 0); srscan(SCAN_NO_LEFTSIDE); setwnd(lrscan_window); wclear(lrscan_window); diff --git a/reports.c b/reports.c index bca7bb7..6424bae 100644 --- a/reports.c +++ b/reports.c @@ -210,148 +210,148 @@ void chart(int nn) { 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 SCAN_FULL: // SRSCAN - if (game.damage[DSRSENS] != 0) { - /* Allow base's sensors if docked */ - if (condit != IHDOCKED) { - prout(" S.R. SENSORS DAMAGED!"); - goodScan=FALSE; - } - else - prout(" [Using Base's sensors]"); - } - 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; - if (isit("no")) rightside = FALSE; - chew(); - proutn(" 1 2 3 4 5 6 7 8 9 10\n\r"); - break; - 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; + 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 SCAN_FULL: // SRSCAN + if (game.damage[DSRSENS] != 0) { + /* Allow base's sensors if docked */ + if (condit != IHDOCKED) { + prout(" S.R. SENSORS DAMAGED!"); + goodScan=FALSE; + } + else + prout(" [Using Base's sensors]"); + } + 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; + if (isit("no")) rightside = FALSE; + chew(); + proutn(" 1 2 3 4 5 6 7 8 9 10\n\r"); + break; + 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; } - if (condit != IHDOCKED) newcnd(); - for (i = 1; i <= 10; i++) { - jj = (k!=0 ? k : i); - if (leftside) { - proutn("%2d ", i); - for (j = 1; j <= 10; j++) { - if (goodScan || (abs(i-sectx)<= 1 && abs(j-secty) <= 1)){ - if ((game.quad[i][j]==IHMATER0)||(game.quad[i][j]==IHMATER1)||(game.quad[i][j]==IHMATER2)||(game.quad[i][j]==IHE)||(game.quad[i][j]==IHF)){ - switch (condit) { - case IHRED: textcolor(RED); break; - case IHGREEN: textcolor(GREEN); break; - case IHYELLOW: textcolor(YELLOW); break; - case IHDOCKED: textcolor(CYAN); break; - case IHDEAD: textcolor(BROWN); - } - if (game.quad[i][j] != ship) - highvideo(); - } - if (game.quad[i][j] & DAMAGED) - highvideo(); - proutn("%c ",game.quad[i][j] & ~DAMAGED); - textcolor(DEFAULT); - } - else - proutn("- "); + // 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++) { + jj = (k!=0 ? k : i); + if (leftside) { + proutn("%2d ", i); + for (j = 1; j <= 10; j++) { + if (goodScan || (abs(i-sectx)<= 1 && abs(j-secty) <= 1)){ + if ((game.quad[i][j]==IHMATER0)||(game.quad[i][j]==IHMATER1)||(game.quad[i][j]==IHMATER2)||(game.quad[i][j]==IHE)||(game.quad[i][j]==IHF)){ + switch (condit) { + case IHRED: textcolor(RED); break; + case IHGREEN: textcolor(GREEN); break; + case IHYELLOW: textcolor(YELLOW); break; + case IHDOCKED: textcolor(CYAN); break; + case IHDEAD: textcolor(BROWN); } + if (game.quad[i][j] != ship) + highvideo(); + } + if (game.quad[i][j] & DAMAGED) + highvideo(); + proutn("%c ",game.quad[i][j] & ~DAMAGED); + textcolor(DEFAULT); } - if (rightside) { - switch (jj) { - case 1: - proutn("Stardate %.1f, Time Left %.2f", game.state.date, game.state.remtime); - break; - case 2: - if (condit != IHDOCKED) newcnd(); - switch (condit) { - case IHRED: cp = "RED"; break; - case IHGREEN: cp = "GREEN"; break; - case IHYELLOW: cp = "YELLOW"; break; - case IHDOCKED: cp = "DOCKED"; break; - case IHDEAD: cp="DEAD"; break; - } - for (t=0;t<=NDEVICES;t++) - if (game.damage[t]>0) dam++; - proutn("Condition %s, %i DAMAGES", cp, dam); - break; - case 3: - proutn("Position %d - %d , %d - %d", - quadx, quady, sectx, secty); - break; - case 4: - proutn("Life Support "); - if (game.damage[DLIFSUP] != 0.0) { - if (condit == IHDOCKED) - proutn("DAMAGED, Base provides"); - else - proutn("DAMAGED, reserves=%4.2f", lsupres); - } - else - proutn("ACTIVE"); - break; - case 5: - proutn("Warp Factor %.1f", warpfac); - break; - case 6: - proutn("Energy %.2f", energy); - if (icrystl) - proutn(" (have crystals)"); - break; - case 7: - proutn("Torpedoes %d", torps); - break; - case 8: - proutn("Shields "); - if (game.damage[DSHIELD] != 0) - proutn("DAMAGED,"); - else if (shldup) - proutn("UP,"); - else - proutn("DOWN,"); - proutn(" %d%% %.1f units", - (int)((100.0*shield)/inshld + 0.5), shield); - break; - case 9: - proutn("Klingons Left %d", game.state.remkl); - break; - case 10: - attakreport(1); - break; - } + else + proutn("- "); + } + } + if (rightside) { + switch (jj) { + case 1: + proutn("Stardate %.1f, Time Left %.2f", game.state.date, game.state.remtime); + break; + case 2: + if (condit != IHDOCKED) newcnd(); + switch (condit) { + case IHRED: cp = "RED"; break; + case IHGREEN: cp = "GREEN"; break; + case IHYELLOW: cp = "YELLOW"; break; + case IHDOCKED: cp = "DOCKED"; break; + case IHDEAD: cp="DEAD"; break; + } + for (t=0;t<=NDEVICES;t++) + if (game.damage[t]>0) dam++; + proutn("Condition %s, %i DAMAGES", cp, dam); + break; + case 3: + proutn("Position %d - %d , %d - %d", + quadx, quady, sectx, secty); + break; + case 4: + proutn("Life Support "); + if (game.damage[DLIFSUP] != 0.0) { + if (condit == IHDOCKED) + proutn("DAMAGED, Base provides"); + else + proutn("DAMAGED, reserves=%4.2f", lsupres); } - if (i<10) proutn("\n\r"); - if (k!=0) return(goodScan); + else + proutn("ACTIVE"); + break; + case 5: + proutn("Warp Factor %.1f", warpfac); + break; + case 6: + proutn("Energy %.2f", energy); + if (icrystl) + proutn(" (have crystals)"); + break; + case 7: + proutn("Torpedoes %d", torps); + break; + case 8: + proutn("Shields "); + if (game.damage[DSHIELD] != 0) + proutn("DAMAGED,"); + else if (shldup) + proutn("UP,"); + else + proutn("DOWN,"); + proutn(" %d%% %.1f units", + (int)((100.0*shield)/inshld + 0.5), shield); + break; + case 9: + proutn("Klingons Left %d", game.state.remkl); + break; + case 10: + attakreport(1); + break; + } } - prout(""); - if (nn) chart(1); - return(goodScan); + if (i<10) proutn("\n\r"); + if (k!=0) return(goodScan); + } + prout(""); + if (nn) chart(1); + return(goodScan); } diff --git a/setup.c b/setup.c index 51089b6..dff55e8 100644 --- a/setup.c +++ b/setup.c @@ -14,7 +14,7 @@ void prelim(void) { skip(2); prout("-SUPER- STAR TREK"); skip(1); -#ifndef __HISTORICAL__ +#ifdef __HISTORICAL__ prout("Latest update-21 Sept 78"); skip(1); #endif /* __HISTORICAL__ */ diff --git a/sst.c b/sst.c index 89e069d..f6b21c7 100644 --- a/sst.c +++ b/sst.c @@ -95,7 +95,7 @@ Eric Raymond's changes: /* the input queue */ static char line[128], *linep = line; -static usecurses = TRUE; +static int usecurses = TRUE; static struct {