X-Git-Url: https://jxself.org/git/?a=blobdiff_plain;f=io.c;h=4ca069ff8f7844a16648b5b6fb07bc7e3521923a;hb=04eb89075222f6a4b3f44acd81582a20b9ecbde2;hp=ec30ccffc676959c9c59bd9cfe7dacf4e58fdb17;hpb=059e1d86fb9ffc34d236e8913614996b3621b45c;p=super-star-trek.git diff --git a/io.c b/io.c index ec30ccf..4ca069f 100644 --- a/io.c +++ b/io.c @@ -81,25 +81,6 @@ void ioend(void) { outro(0); } -void clearscreen(void) { - /* Somehow we need to clear the screen */ -#ifdef __BORLANDC__ - extern void clrscr(void); - clrscr(); -#else - if (curses) { - wclear(stdscr); - wrefresh(stdscr); - } else { - // proutn("\033[2J"); /* Hope for an ANSI display */ - /* much more in that old-TTY spirit to just throw linefeeds */ - int i; - for (i = 0; i < screenheight; i++) - putchar('\n'); - } -#endif -} - void waitfor(void) { /* wait for user action -- OK to do nothing if on a TTY */ #ifdef SERGEEV @@ -140,7 +121,10 @@ void pause_game(int i) { proutn(prompt); fgets(buf, sizeof(buf), stdin); if (i != 0) { - clearscreen(); + /* much more in that old-TTY spirit to throw linefeeds */ + int j; + for (j = 0; j < screenheight; j++) + putchar('\n'); } linecount = 0; } @@ -293,6 +277,20 @@ void prouts(char *fmt, ...) { #endif /* SERGEEV */ } +void c_printf (char *format, ... ) +{ + char buffer[BUFSIZ]; /* Well, BUFSIZ is from ncurses... */ + va_list argp; + va_start(argp,format); + vsprintf(buffer,format,argp); + va_end(argp); +#ifdef SERGEEV + waddstr(conio_scr,buffer); +#else + proutn(buffer); +#endif /* SERGEEV */ +} + void warble(void) /* sound and visual effects for teleportation */ { @@ -343,5 +341,21 @@ void getline(char *line, int max) { } } +void setwnd(short wndnum){ +/* change windows -- OK for this to be a no-op in tty mode */ +#ifdef SERGEEV + int cury; + cury=wherey()+wnds[curwnd].wndtop-wnds[wndnum].wndtop; + if ((curwnd==0)&&(wndnum!=0)) clrscr(); + window(wnds[wndnum].wndleft, wnds[wndnum].wndtop, wnds[wndnum].wndright, wnds[wndnum].wndbottom); + if ((curwnd==wndnum)&&(cury>wnds[wndnum].wndbottom-wnds[wndnum].wndtop+1)){ + gotoxy(wnds[wndnum].wndright-wnds[wndnum].wndleft+1,wnds[wndnum].wndbottom-wnds[wndnum].wndtop+1); + skip(1); + } + curwnd=wndnum; + gotoxy(1,cury); +#endif /* SERGEEV */ +} + void commandhook(char *cmd, int before) { }