More boolean cleanups.
[super-star-trek.git] / src / io.c
index 5c5ac644526dc4c91ba5f9db6be3e20b04fab22f..3db1c459b8d62f4a5fa3f11493ca632eb663465e 100644 (file)
--- a/src/io.c
+++ b/src/io.c
@@ -1,10 +1,7 @@
 #include <stdio.h>
 #include <unistd.h>
-#include <curses.h>
-#include <signal.h>
-#include <ctype.h>
-#include <stdarg.h>
 
+#include "config.h"
 #include "sst.h"
 #include "sstlinux.h"
 
@@ -30,17 +27,23 @@ static void outro(void)
        (void)endwin();
        putchar('\n');
     }
+    if (logfp)
+       fclose(logfp);
 }
 
 void iostart(void) 
 {
+    setlocale(LC_ALL, "");
+    bindtextdomain(PACKAGE, LOCALEDIR);
+    textdomain(PACKAGE);
+
+    if (atexit(outro)){
+       fprintf(stderr,"Unable to register outro(), exiting...\n");
+       exit(1);
+    }
     if (!(game.options & OPTION_CURSES)) {
        rows = atoi(getenv("LINES"));
     } else {
-       if (atexit(outro)){
-           fprintf(stderr,"Unable to register outro(), exiting...\n");
-           exit(1);
-       }
        (void)initscr();
 #ifdef KEY_MIN
        keypad(stdscr, TRUE);
@@ -88,15 +91,15 @@ void pause_game(int i)
     char buf[BUFSIZ];
     if (i==1) {
        if (game.skill > SKILL_FAIR)
-           prompt = "[ANOUNCEMENT ARRIVING...]";
+           prompt = _("[ANOUNCEMENT ARRIVING...]");
        else
-           prompt = "[IMPORTANT ANNOUNCEMENT ARRIVING -- PRESS ENTER TO CONTINUE]";
+           prompt = _("[IMPORTANT ANNOUNCEMENT ARRIVING -- PRESS ENTER TO CONTINUE]");
     }
     else {
        if (game.skill > SKILL_FAIR)
-           prompt = "[CONTINUE?]";
+           prompt = _("[CONTINUE?]");
        else
-           prompt = "[PRESS ENTER TO CONTINUE]";
+           prompt = _("[PRESS ENTER TO CONTINUE]");
 
     }
     if (game.options & OPTION_CURSES) {
@@ -199,8 +202,13 @@ void cgetline(char *line, int max)
        strcat(line, "\n");
        wrefresh(curwnd);
     } else {
-       fgets(line, max, stdin);
+       if (replayfp && !feof(replayfp))
+           fgets(line, max, replayfp);
+       else
+           fgets(line, max, stdin);
     }
+    if (logfp)
+       fputs(line, logfp);
     line[strlen(line)-1] = '\0';
 }
 
@@ -301,24 +309,24 @@ void highvideo (void)
     }
 }
  
-void commandhook(char *cmd, int before) {
+void commandhook(char *cmd, bool before) {
 }
 
 /*
  * Things past this point have policy implications.
  */
 
-void drawmaps(short l)
+void drawmaps(int mode)
 /* hook to be called after moving to redraw maps */
 {
     if (game.options & OPTION_CURSES) {
-       if (l == 1)
+       if (mode == 1)
            sensor();
         setwnd(srscan_window);
         wmove(curwnd, 0, 0);
         enqueue("no");
         srscan(SCAN_FULL);
-       if (l != 2) {
+       if (mode != 2) {
            setwnd(report_window);
            wclear(report_window);
            wmove(report_window, 0, 0);
@@ -379,17 +387,17 @@ void tracktorpedo(int ix, int iy, int l, int i, int n, int iquad)
        if (l == 1) {
            if (n != 1) {
                skip(1);
-               proutn("Track for torpedo number %d-  ", i);
+               proutn(_("Track for torpedo number %d-  "), i);
            }
            else {
                skip(1);
-               proutn("Torpedo track- ");
+               proutn(_("Torpedo track- "));
            }
        } else if (l==4 || l==9) 
            skip(1);
        proutn("%d - %d   ", ix, iy);
     } else {
-       if (game.damage[DSRSENS]==0 || game.condit==IHDOCKED) {
+       if (!damaged(DSRSENS) || game.condit==IHDOCKED) {
            if (i != 1 && l == 1) {
                drawmaps(2);
                delay(400);
@@ -421,24 +429,6 @@ void makechart(void)
     if (game.options & OPTION_CURSES) {
        setwnd(message_window);
        wclear(message_window);
-       chart(0);
-    }
-}
-
-void setpassword(void) 
-{
-    if (!(game.options & OPTION_CURSES)) {
-       while (TRUE) {
-           scan();
-           strcpy(game.passwd, citem);
-           chew();
-           if (*game.passwd != 0) break;
-           proutn("Please type in a secret password-");
-       }
-    } else {
-       int i;
-        for(i=0;i<3;i++) game.passwd[i]=(char)(97+(int)(Rand()*25));
-        game.passwd[3]=0;
+       chart(false);
     }
 }
-