Another documentation update.
[super-star-trek.git] / io.c
diff --git a/io.c b/io.c
index b3e974e5124e1c202d1625e543431125d4db6c19..8698ab8ec9b68ab23e379a626deb566954f796de 100644 (file)
--- a/io.c
+++ b/io.c
@@ -121,7 +121,14 @@ void skip(int i)
 {
     while (i-- > 0) {
        if (game.options & OPTION_CURSES) {
-           proutn("\n\r");
+           if (curwnd == message_window && linecount >= getmaxy(curwnd) - 3) {
+               pause_game(0);
+               clrscr();
+           } else {
+               proutn("\n");
+               if (curwnd == message_window)
+                   linecount++;
+           }
        } else {
            linecount++;
            if (linecount >= rows)
@@ -167,7 +174,6 @@ void prouts(char *fmt, ...)
     va_start(ap, fmt);
     vsprintf(buf, fmt, ap);
     va_end(ap);
-    skip(1);
     for (s = buf; *s; s++) {
        delay(30);
        if (game.options & OPTION_CURSES) {
@@ -219,6 +225,7 @@ void clrscr (void)
        wmove(curwnd,0,0);
        wrefresh(curwnd);
    }
+   linecount = 0;
 }
 
 void textcolor (int color)
@@ -349,16 +356,18 @@ void warble(void)
 /* sound and visual effects for teleportation */
 {
     if (game.options & OPTION_CURSES) {
-       drawmaps(1);
+       drawmaps(2);
        setwnd(message_window);
        sound(50);
+    }
+    prouts("     . . . . .     ");
+    if (game.options & OPTION_CURSES) {
        delay(1000);
        nosound();
-    } else
-       prouts(" . . . . . ");
+    }
 }
 
-void tracktorpedo(int ix, int iy, int l, int i, int n)
+void tracktorpedo(int ix, int iy, int l, int i, int n, int iquad)
 /* torpedo-track animation */
 {
     if (!game.options & OPTION_CURSES) {
@@ -380,21 +389,21 @@ void tracktorpedo(int ix, int iy, int l, int i, int n)
                drawmaps(2);
                delay(400);
            }
-           if ((game.quad[ix][iy]==IHDOT)||(game.quad[ix][iy]==IHBLANK)){
+           if ((iquad==IHDOT)||(iquad==IHBLANK)){
                put_srscan_sym(ix, iy, '+');
                sound(l*10);
                delay(100);
                nosound();
-               put_srscan_sym(ix, iy, game.quad[ix][iy]);
+               put_srscan_sym(ix, iy, iquad);
            }
            else {
                wattron(curwnd, A_REVERSE);
-               put_srscan_sym(ix, iy, game.quad[ix][iy]);
+               put_srscan_sym(ix, iy, iquad);
                sound(500);
                delay(1000);
                nosound();
                wattroff(curwnd, A_REVERSE);
-               put_srscan_sym(ix, iy, game.quad[ix][iy]);
+               put_srscan_sym(ix, iy, iquad);
            }
        } else {
            proutn("%d - %d   ", ix, iy);