Stas's fixes for torpedo and phaser animation.
[super-star-trek.git] / reports.c
index f670a1ec38825eb0ece66f5c5717c9509f1acdb3..b074cd8801e9e621ad6860fdb2a7b84a0c0b38bf 100644 (file)
--- a/reports.c
+++ b/reports.c
@@ -6,7 +6,7 @@
 void attakreport(int curt) 
 {
     if (!curt) {
-       if (game.future[FCDBAS] < 1e30) {
+       if (game.future[FCDBAS] < FOREVER) {
            prout("Starbase in %s is currently under Commander attack.",
                  cramlc(quadrant, batx, baty));
            prout("It can hold out until Stardate %d.", 
@@ -19,7 +19,7 @@ void attakreport(int curt)
                  (int)game.future[FSCDBAS]);
        }
     } else {
-        if (game.future[FCDBAS] < 1e30)
+        if (game.future[FCDBAS] < FOREVER)
            proutn("Base in %i - %i attacked by C. Alive until %.1f", batx, baty, game.future[FCDBAS]);
         if (isatb == 1)
            proutn("Base in %i - %i attacked by S. Alive until %.1f", game.state.isx, game.state.isy, game.future[FSCDBAS]);
@@ -89,7 +89,7 @@ void report(void)
        prout(".");
     }
     if ((game.damage[DRADIO] == 0.0 || condit == IHDOCKED)&&
-       game.future[FDSPROB] != 1e30) {
+       game.future[FDSPROB] != FOREVER) {
        if (isarmed) 
            proutn("An armed deep space probe is in");
        else
@@ -175,7 +175,7 @@ void rechart(void)
 /* update the chart in the Enterprise's computer from galaxy data */
 {
     int i, j;
-    stdamtim = game.state.date;
+    lastchart = game.state.date;
     for_quadrants(i)
        for_quadrants(j) 
            if (game.state.galaxy[i][j].charted) {
@@ -190,29 +190,28 @@ void chart(int nn)
     int i,j;
     char *cp;
     chew();
-    if (stdamtim != 1e30 && stdamtim != game.state.date && condit == IHDOCKED) {
-       proutn("Spock-  \"I revised the Star Chart from the starbase's records.\"\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 */
-           rechart();
-       }
-       else if (game.state.date-stdamtim) {
-           prout("(Last surveillance update %d stardates ago).",
-                  (int)(game.state.date-stdamtim));
-       }
-    }
-    else if (game.damage[DRADIO] == 0.0)
+
+    if (game.damage[DRADIO] == 0.0)
        rechart();
 
+    if (lastchart < game.state.date && condit == IHDOCKED) {
+       proutn("Spock-  \"I revised the Star Chart from the starbase's records.\"\n");
+       rechart();
+    }
+
+    if (nn == 0) proutn("       STAR CHART FOR THE KNOWN GALAXY\n");
+    if (game.state.date > lastchart)
+       prout("(Last surveillance update %d stardates ago).",
+             (int)(game.state.date-lastchart));
     prout("      1    2    3    4    5    6    7    8");
     for_quadrants(i) {
        proutn("%d |", i);
        for_quadrants(j) {
            char buf[4];
-           proutn("  ");
+           if ((game.options & OPTION_SHOWME) && i == quadx && j == quady)
+               proutn("<");
+           else
+               proutn(" ");
            if (game.state.galaxy[i][j].supernova)
                strcpy(buf, "***");
            else if (!game.state.galaxy[i][j].charted && game.state.galaxy[i][j].starbase)
@@ -225,9 +224,13 @@ void chart(int nn)
                if (*cp == '0')
                    *cp = '.';
            proutn(buf);
+           if ((game.options & OPTION_SHOWME) && i == quadx && j == quady)
+               proutn(">");
+           else
+               proutn(" ");
        }
        proutn("  |");
-       if (i<GALSIZE) proutn("\n\r");
+       if (i<GALSIZE) proutn("\n");
     }
     prout(""); /* flush output */
 }
@@ -246,9 +249,7 @@ static void sectscan(int goodScan, int i, int j)
            if (game.quad[i][j] != ship) 
                highvideo();
        }
-       if (game.quad[i][j] & DAMAGED) 
-           highvideo();
-       proutn("%c ",game.quad[i][j] & ~DAMAGED);
+       proutn("%c ",game.quad[i][j]);
        textcolor(DEFAULT);
     }
     else
@@ -297,7 +298,7 @@ static void status(int req)
        break;
     case 6:
        proutn("Energy        %.2f", energy);
-       if (icrystl)    /* ESR */
+       if (icrystl && (game.options & OPTION_SHOWME))  /* ESR */
            proutn(" (have crystals)");
        break;
     case 7:
@@ -340,7 +341,7 @@ int srscan(int l)
            else
                prout("  [Using Base's sensors]");
        }
-       else proutn("     Short-range scan\n\r");
+       else proutn("     Short-range scan");
        if (goodScan && !game.damage[DRADIO]) { 
            game.state.chart[quadx][quady].klingons = game.state.galaxy[quadx][quady].klingons;
            game.state.chart[quadx][quady].starbase = game.state.galaxy[quadx][quady].starbase;
@@ -351,7 +352,7 @@ int srscan(int l)
        if (isit("chart")) nn = TRUE;
        if (isit("no")) rightside = FALSE;
        chew();
-       proutn("    1 2 3 4 5 6 7 8 9 10\n\r");
+       proutn("    1 2 3 4 5 6 7 8 9 10\n");
        break;
     case SCAN_REQUEST:
        while (scan() == IHEOL)
@@ -387,7 +388,7 @@ int srscan(int l)
        }
        if (rightside)
            status(jj);
-       if (i<sizeof(requests)/sizeof(requests[0])) proutn("\n\r");
+       if (i<sizeof(requests)/sizeof(requests[0])) proutn("\n");
        if (req!=0) return(goodScan);
     }
     prout("");