diff options
author | Theo de Raadt <deraadt@cvs.openbsd.org> | 1995-10-18 08:53:40 +0000 |
---|---|---|
committer | Theo de Raadt <deraadt@cvs.openbsd.org> | 1995-10-18 08:53:40 +0000 |
commit | d6583bb2a13f329cf0332ef2570eb8bb8fc0e39c (patch) | |
tree | ece253b876159b39c620e62b6c9b1174642e070e /games/larn/help.c |
initial import of NetBSD tree
Diffstat (limited to 'games/larn/help.c')
-rw-r--r-- | games/larn/help.c | 91 |
1 files changed, 91 insertions, 0 deletions
diff --git a/games/larn/help.c b/games/larn/help.c new file mode 100644 index 00000000000..8cbae3a119b --- /dev/null +++ b/games/larn/help.c @@ -0,0 +1,91 @@ +#ifndef lint +static char rcsid[] = "$NetBSD: help.c,v 1.3 1995/03/23 08:33:33 cgd Exp $"; +#endif /* not lint */ + +/* help.c Larn is copyrighted 1986 by Noah Morgan. */ +#include "header.h" +/* + * help function to display the help info + * + * format of the .larn.help file + * + * 1st character of file: # of pages of help available (ascii digit) + * page (23 lines) for the introductory message (not counted in above) + * pages of help text (23 lines per page) + */ +extern char helpfile[]; +help() + { + register int i,j; +#ifndef VT100 + char tmbuf[128]; /* intermediate translation buffer when not a VT100 */ +#endif VT100 + if ((j=openhelp()) < 0) return; /* open the help file and get # pages */ + for (i=0; i<23; i++) lgetl(); /* skip over intro message */ + for (; j>0; j--) + { + clear(); + for (i=0; i<23; i++) +#ifdef VT100 + lprcat(lgetl()); /* print out each line that we read in */ +#else VT100 + { tmcapcnv(tmbuf,lgetl()); lprcat(tmbuf); } /* intercept \33's */ +#endif VT100 + if (j>1) + { + lprcat(" ---- Press "); standout("return"); + lprcat(" to exit, "); standout("space"); + lprcat(" for more help ---- "); + i=0; while ((i!=' ') && (i!='\n') && (i!='\33')) i=getchar(); + if ((i=='\n') || (i=='\33')) + { + lrclose(); setscroll(); drawscreen(); return; + } + } + } + lrclose(); retcont(); drawscreen(); + } + +/* + * function to display the welcome message and background + */ +welcome() + { + register int i; +#ifndef VT100 + char tmbuf[128]; /* intermediate translation buffer when not a VT100 */ +#endif VT100 + if (openhelp() < 0) return; /* open the help file */ + clear(); + for(i=0; i<23; i++) +#ifdef VT100 + lprcat(lgetl()); /* print out each line that we read in */ +#else VT100 + { tmcapcnv(tmbuf,lgetl()); lprcat(tmbuf); } /* intercept \33's */ +#endif VT100 + lrclose(); retcont(); /* press return to continue */ + } + +/* + * function to say press return to continue and reset scroll when done + */ +retcont() + { + cursor(1,24); lprcat("Press "); standout("return"); + lprcat(" to continue: "); while (getchar() != '\n'); + setscroll(); + } + +/* + * routine to open the help file and return the first character - '0' + */ +openhelp() + { + if (lopen(helpfile)<0) + { + lprintf("Can't open help file \"%s\" ",helpfile); + lflush(); sleep(4); drawscreen(); setscroll(); return(-1); + } + resetscroll(); return(lgetc() - '0'); + } + |