New debug-mode support.
[super-star-trek.git] / src / io.c
index adbbca080a477ff59e274a17a24aab37e2fa64b8..7b4855f6c88048b78890a477733ae6757018bf96 100644 (file)
--- a/src/io.c
+++ b/src/io.c
@@ -1,16 +1,19 @@
 #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"
 
 static int rows, linecount;    /* for paging */
 
 WINDOW *curwnd;
+WINDOW *fullscreen_window;
+WINDOW *srscan_window;
+WINDOW *report_window;
+WINDOW *lrscan_window;
+WINDOW *message_window;
+WINDOW *prompt_window;
 
 static void outro(void)
 /* wrap up, either normally or due to signal */
@@ -24,10 +27,17 @@ static void outro(void)
        (void)endwin();
        putchar('\n');
     }
+    if (logfp)
+       fclose(logfp);
 }
 
 void iostart(void) 
 {
+    setlocale(LC_ALL, "");
+    bindtextdomain(PACKAGE, LOCALEDIR);
+    textdomain(PACKAGE);
+    gettext("");
+
     if (!(game.options & OPTION_CURSES)) {
        rows = atoi(getenv("LINES"));
     } else {
@@ -81,13 +91,13 @@ void pause_game(int i)
     char *prompt;
     char buf[BUFSIZ];
     if (i==1) {
-       if (skill > SKILL_FAIR)
+       if (game.skill > SKILL_FAIR)
            prompt = "[ANOUNCEMENT ARRIVING...]";
        else
            prompt = "[IMPORTANT ANNOUNCEMENT ARRIVING -- PRESS ENTER TO CONTINUE]";
     }
     else {
-       if (skill > SKILL_FAIR)
+       if (game.skill > SKILL_FAIR)
            prompt = "[CONTINUE?]";
        else
            prompt = "[PRESS ENTER TO CONTINUE]";
@@ -195,6 +205,8 @@ void cgetline(char *line, int max)
     } else {
        fgets(line, max, stdin);
     }
+    if (logfp)
+       fputs(line, logfp);
     line[strlen(line)-1] = '\0';
 }
 
@@ -295,7 +307,7 @@ void highvideo (void)
     }
 }
  
-void commandhook(char *cmd, int before) {
+void commandhook(char *cmd, bool before) {
 }
 
 /*
@@ -383,7 +395,7 @@ void tracktorpedo(int ix, int iy, int l, int i, int n, int iquad)
            skip(1);
        proutn("%d - %d   ", ix, iy);
     } else {
-       if (game.damage[DSRSENS]==0 || condit==IHDOCKED) {
+       if (game.damage[DSRSENS]==0 || game.condit==IHDOCKED) {
            if (i != 1 && l == 1) {
                drawmaps(2);
                delay(400);
@@ -422,7 +434,7 @@ void makechart(void)
 void setpassword(void) 
 {
     if (!(game.options & OPTION_CURSES)) {
-       while (TRUE) {
+       for (;;) {
            scan();
            strcpy(game.passwd, citem);
            chew();