Prevent the sensor display from being garbled.
[super-star-trek.git] / io.c
diff --git a/io.c b/io.c
index 93ea8427d06b743f51c7ae0bd1b87771639a9384..d59a5092550843fcf3800b88524a224cf4c6af5b 100644 (file)
--- a/io.c
+++ b/io.c
@@ -1,3 +1,4 @@
+#define _GNU_SOURCE
 #include <stdio.h>
 #include <unistd.h>
 #include <termios.h>
@@ -8,13 +9,13 @@
 #include <time.h>
 
 #include "conio.h"
-#include "sstlinux.h"
 #include "sst.h"
+#include "sstlinux.h"
 
 #ifndef SERGEEV
 static int linecount;  /* for paging */
-#endif /* SERGEEV */
 static int screenheight = 24, screenwidth = 80;
+#endif /* SERGEEV */
 #ifndef SERGEEV
 static int curses = FALSE;
 #else /* SERGEEV */
@@ -32,6 +33,7 @@ wnd wnds[6]={{1,1,80,25},     /* FULLSCREEN_WINDOW */
 short curwnd;
 #endif /* SERGEEV */
 
+#ifndef SERGEEV
 static void outro(int sig) {
 /* wrap up, either normally or due to signal */
     if (curses) {
@@ -48,9 +50,11 @@ static void fastexit(int sig) {
     putchar('\n');
     exit(0);
 }
+#endif /* SERGEEV */
 
 void iostart(int usecurses) {
 #ifdef SERGEEV
+       initconio();
         textattr(7);
         clrscr();
         setwnd(FULLSCREEN_WINDOW);
@@ -346,15 +350,15 @@ void drawmaps(short l) {
      if (l==1) sensor();
      if (l!=2) setwnd(LEFTUPPER_WINDOW);
      gotoxy(1,1);
-     strcpy(line,"s");
-     srscan(1);
+     enqueue("no");
+     srscan(SCAN_FULL);
      if (l!=2){
         setwnd(SRSCAN_WINDOW);
         clrscr();
-        srscan(2);
+        srscan(SCAN_NO_LEFTSIDE);
         setwnd(LRSCAN_WINDOW);
         clrscr();
-        strcpy(line,"l");
+        enqueue("l");
         lrscan();
         _setcursortype(_NORMALCURSOR);
      }