X-Git-Url: https://jxself.org/git/?p=super-star-trek.git;a=blobdiff_plain;f=io.c;h=8698ab8ec9b68ab23e379a626deb566954f796de;hp=b3e974e5124e1c202d1625e543431125d4db6c19;hb=9f2406f134c8e82a6ef14943c5eaf6ee2bee3af7;hpb=7de1f930478a9efcc3f093eb62414ec18d396f7b diff --git a/io.c b/io.c index b3e974e..8698ab8 100644 --- 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);