From 4be633b9c4830f6cf8c7213c91a31d3ea12f313c Mon Sep 17 00:00:00 2001 From: "Eric S. Raymond" Date: Fri, 4 Feb 2005 03:40:01 +0000 Subject: [PATCH 1/1] More factoring out. --- io.c | 103 +++++++++++++++++++++++++++++++++++++++------------------- sst.c | 35 ++------------------ 2 files changed, 71 insertions(+), 67 deletions(-) diff --git a/io.c b/io.c index c432078..444a5cb 100644 --- a/io.c +++ b/io.c @@ -51,6 +51,11 @@ static void fastexit(int sig) { } void iostart(int usecurses) { +#ifdef SERGEEV + textattr(7); + clrscr(); + setwnd(FULLSCREEN_WINDOW); +#else (void) signal(SIGINT, fastexit); (void) signal(SIGINT, fastexit); #ifdef SIGIOT @@ -75,10 +80,13 @@ void iostart(int usecurses) { if (LINES) screenheight = atoi(LINES); } +#endif /* SERGEEV */ } void ioend(void) { +#ifndef SERGEEV outro(0); +#endif /* SERGEEV */ } void waitfor(void) { @@ -291,40 +299,6 @@ void c_printf (char *format, ... ) #endif /* SERGEEV */ } -void warble(void) -/* sound and visual effects for teleportation */ -{ -#ifdef SERGEEV - int posx, posy; - posx=wherex(); - posy=wherey(); - drawmaps(1); - setwnd(LOWER_WINDOW); - gotoxy(posx,posy); - sound(50); - delay(1000); - nosound(); -#else - prouts(" . . . . . "); -#endif /* SERGEEV */ -} - -void setpassword(void) { -#ifndef SERGEEV - 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; -#endif /* SERGEEV */ -} - void cgetline(char *line, int max) { if (curses) { #ifndef SERGEEV @@ -359,3 +333,64 @@ void setwnd(short wndnum){ void commandhook(char *cmd, int before) { } + +/* + * Things past this point have policy implications. + */ + +void drawmaps(short l) { +/* hook to be called after moving to redraw maps */ +#ifdef SERGEEV + _setcursortype(_NOCURSOR); + if (l==1) sensor(); + if (l!=2) setwnd(LEFTUPPER_WINDOW); + gotoxy(1,1); + strcpy(line,"s"); + srscan(1); + if (l!=2){ + setwnd(SRSCAN_WINDOW); + clrscr(); + srscan(2); + setwnd(LRSCAN_WINDOW); + clrscr(); + strcpy(line,"l"); + lrscan(); + _setcursortype(_NORMALCURSOR); + } +#endif /* SERGEEV */ +} + +void warble(void) +/* sound and visual effects for teleportation */ +{ +#ifdef SERGEEV + int posx, posy; + posx=wherex(); + posy=wherey(); + drawmaps(1); + setwnd(LOWER_WINDOW); + gotoxy(posx,posy); + sound(50); + delay(1000); + nosound(); +#else + prouts(" . . . . . "); +#endif /* SERGEEV */ +} + +void setpassword(void) { +#ifndef SERGEEV + 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; +#endif /* SERGEEV */ +} + diff --git a/sst.c b/sst.c index f6b86b1..2e1038b 100644 --- a/sst.c +++ b/sst.c @@ -264,28 +264,6 @@ static void helpme(void) { fclose(fp); } -void drawmaps(short l) { -/* hook to be called after moving to redraw maps */ -#ifdef SERGEEV - _setcursortype(_NOCURSOR); - if (l==1) sensor(); - if (l!=2) setwnd(LEFTUPPER_WINDOW); - gotoxy(1,1); - strcpy(line,"s"); - srscan(1); - if (l!=2){ - setwnd(SRSCAN_WINDOW); - clrscr(); - srscan(2); - setwnd(LRSCAN_WINDOW); - clrscr(); - strcpy(line,"l"); - lrscan(); - _setcursortype(_NORMALCURSOR); - } -#endif /* SERGEEV */ -} - static void makemoves(void) { int i, hitme; clrscr(); @@ -505,14 +483,9 @@ int main(int argc, char **argv) { } } -#ifndef SERGEEV - iostart(usecurses); -#else randomize(); - textattr(7); - clrscr(); - setwnd(FULLSCREEN_WINDOW); -#endif /* SERGEEV */ + iostart(usecurses); + line[0] = '\0'; for (i = optind; i < argc; i++) { strcat(line, argv[i]); @@ -543,9 +516,7 @@ int main(int argc, char **argv) { clrscr(); } skip(1); -#ifndef SERGEEV ioend(); -#endif /* SERGEEV */ prout("May the Great Bird of the Galaxy roost upon your home planet."); return 0; } @@ -647,14 +618,12 @@ int scan(void) { return IHEOL; } cgetline(line, sizeof(line)); -#ifdef SERGEEV fflush(stdin); if (curwnd==BOTTOM_WINDOW){ clrscr(); setwnd(LOWER_WINDOW); clrscr(); } -#endif /* SERGEEV */ linep = line; } // Skip leading white space -- 2.31.1