freebsd-dev/games/larn/help.c
Jordan K. Hubbard 554eb505f8 Bring in the 4.4 Lite games directory, modulo man page changes and segregation
of the x11 based games.  I'm not going to tag the originals with bsd_44_lite
and do this in two stages since it's just not worth it for this collection,
and I've got directory renames to deal with that way.  Bleah.
Submitted by:	jkh
1994-09-04 04:03:31 +00:00

88 lines
2.2 KiB
C

/* 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');
}