Get rid of obnoxious visible "have we paused?" state.
[super-star-trek.git] / src / io.c
index 65edfdf59d07c2c0721eacba9a91f564f49a0046..80aa0759859c9a5613d465c8fa52f0ee19d8d04a 100644 (file)
--- a/src/io.c
+++ b/src/io.c
@@ -7,6 +7,7 @@
 #include "sstlinux.h"
 
 static int rows, linecount;    /* for paging */
+static bool pause_latch;
 
 WINDOW *curwnd;
 WINDOW *fullscreen_window;
@@ -72,7 +73,7 @@ void iostart(void)
        srscan_window     = newwin(12, 25, 0,       0);
        report_window     = newwin(11, 0,  1,       25);
        status_window     = newwin(10, 0,  1,       39);
-       lrscan_window     = newwin(10, 0,  0,       64); 
+       lrscan_window     = newwin(5,  0,  0,       64); 
        message_window    = newwin(0,  0,  12,      0);
        prompt_window     = newwin(1,  0,  LINES-2, 0); 
        scrollok(message_window, TRUE);
@@ -89,42 +90,52 @@ void waitfor(void)
        getch();
 }
 
+void pause_reset(void)
+{
+    pause_latch = false;
+}
+
 void pause_game(bool announcement) 
 {
-    char *prompt;
-    char buf[BUFSIZ];
-    if (announcement) {
-       if (game.skill > SKILL_FAIR)
-           prompt = _("[ANOUNCEMENT ARRIVING...]");
-       else
-           prompt = _("[IMPORTANT ANNOUNCEMENT ARRIVING -- PRESS ENTER TO CONTINUE]");
-    }
+    if (pause_latch)
+       return;
     else {
-       if (game.skill > SKILL_FAIR)
-           prompt = _("[CONTINUE?]");
-       else
-           prompt = _("[PRESS ENTER TO CONTINUE]");
-
-    }
-    if (game.options & OPTION_CURSES) {
-       drawmaps(0);
-       setwnd(prompt_window);
-       wclear(prompt_window);
-       waddstr(prompt_window, prompt);
-       wgetnstr(prompt_window, buf, sizeof(buf));
-       wclear(prompt_window);
-       wrefresh(prompt_window);
-       setwnd(message_window);
-    } else {
-       putchar('\n');
-       proutn(prompt);
-       fgets(buf, sizeof(buf), stdin);
+       char *prompt;
+       char buf[BUFSIZ];
        if (announcement) {
-           int j;
-           for (j = 0; j < rows; j++)
-               putchar('\n');
+           if (game.skill > SKILL_FAIR)
+               prompt = _("[ANOUNCEMENT ARRIVING...]");
+           else
+               prompt = _("[IMPORTANT ANNOUNCEMENT ARRIVING -- PRESS ENTER TO CONTINUE]");
+       }
+       else {
+           if (game.skill > SKILL_FAIR)
+               prompt = _("[CONTINUE?]");
+           else
+               prompt = _("[PRESS ENTER TO CONTINUE]");
+
+       }
+       if (game.options & OPTION_CURSES) {
+           drawmaps(0);
+           setwnd(prompt_window);
+           wclear(prompt_window);
+           waddstr(prompt_window, prompt);
+           wgetnstr(prompt_window, buf, sizeof(buf));
+           wclear(prompt_window);
+           wrefresh(prompt_window);
+           setwnd(message_window);
+       } else {
+           putchar('\n');
+           proutn(prompt);
+           fgets(buf, sizeof(buf), stdin);
+           if (announcement) {
+               int j;
+               for (j = 0; j < rows; j++)
+                   putchar('\n');
+           }
+           linecount = 0;
        }
-       linecount = 0;
+       pause_latch = true;
     }
 }