X-Git-Url: https://jxself.org/git/?p=super-star-trek.git;a=blobdiff_plain;f=src%2Fio.c;h=ecbe87aff9ddb1d373d471a0925f867d41e4dd4a;hp=5c5ac644526dc4c91ba5f9db6be3e20b04fab22f;hb=2cae1cd3feb922843b40af851f43f9e08bb18f0d;hpb=ebc4fdc3802c47c9fe7ec31b4cde062faff366fc diff --git a/src/io.c b/src/io.c index 5c5ac64..ecbe87a 100644 --- a/src/io.c +++ b/src/io.c @@ -1,10 +1,7 @@ #include #include -#include -#include -#include -#include +#include "config.h" #include "sst.h" #include "sstlinux.h" @@ -30,17 +27,24 @@ 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 (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); @@ -199,8 +203,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,7 +310,7 @@ void highvideo (void) } } -void commandhook(char *cmd, int before) { +void commandhook(char *cmd, bool before) { } /* @@ -389,7 +398,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 || game.condit==IHDOCKED) { + if (!damaged(DSRSENS) || game.condit==IHDOCKED) { if (i != 1 && l == 1) { drawmaps(2); delay(400); @@ -428,7 +437,7 @@ void makechart(void) void setpassword(void) { if (!(game.options & OPTION_CURSES)) { - while (TRUE) { + for (;;) { scan(); strcpy(game.passwd, citem); chew();