MFC bandwith, delay, mirroring, and pfs work from HEAD.
[dragonfly.git] / games / larn / help.c
blob2ab53539a85e604ae93666508a9b4d0fe9d64dbd
1 /* help.c Larn is copyrighted 1986 by Noah Morgan. */
2 /* $FreeBSD: src/games/larn/help.c,v 1.4 1999/11/16 02:57:21 billf Exp $ */
3 /* $DragonFly: src/games/larn/help.c,v 1.4 2006/08/26 17:05:05 pavalos Exp $ */
4 #include "header.h"
6 static void retcont(void);
7 static int openhelp(void);
8 /*
9 * help function to display the help info
11 * format of the .larn.help file
13 * 1st character of file: # of pages of help available (ascii digit)
14 * page (23 lines) for the introductory message (not counted in above)
15 * pages of help text (23 lines per page)
17 void
18 help(void)
20 int i,j;
21 #ifndef VT100
22 char tmbuf[128]; /* intermediate translation buffer when not a VT100 */
23 #endif /* VT100 */
24 if ((j=openhelp()) < 0) return; /* open the help file and get # pages */
25 for (i=0; i<23; i++) lgetl(); /* skip over intro message */
26 for (; j>0; j--)
28 clear();
29 for (i=0; i<23; i++)
30 #ifdef VT100
31 lprcat(lgetl()); /* print out each line that we read in */
32 #else /* VT100 */
33 { tmcapcnv(tmbuf,lgetl()); lprcat(tmbuf); } /* intercept \33's */
34 #endif /* VT100 */
35 if (j>1)
37 lprcat(" ---- Press "); standout("return");
38 lprcat(" to exit, "); standout("space");
39 lprcat(" for more help ---- ");
40 i=0; while ((i!=' ') && (i!='\n') && (i!='\33')) i=getchr();
41 if ((i=='\n') || (i=='\33'))
43 lrclose(); setscroll(); drawscreen(); return;
47 lrclose(); retcont(); drawscreen();
51 * function to display the welcome message and background
53 void
54 welcome(void)
56 int i;
57 #ifndef VT100
58 char tmbuf[128]; /* intermediate translation buffer when not a VT100 */
59 #endif /* VT100 */
60 if (openhelp() < 0) return; /* open the help file */
61 clear();
62 for(i=0; i<23; i++)
63 #ifdef VT100
64 lprcat(lgetl()); /* print out each line that we read in */
65 #else /* VT100 */
66 { tmcapcnv(tmbuf,lgetl()); lprcat(tmbuf); } /* intercept \33's */
67 #endif /* VT100 */
68 lrclose(); retcont(); /* press return to continue */
72 * function to say press return to continue and reset scroll when done
74 static void
75 retcont(void)
77 cursor(1,24); lprcat("Press "); standout("return");
78 lprcat(" to continue: "); while (getchr() != '\n');
79 setscroll();
83 * routine to open the help file and return the first character - '0'
85 static int
86 openhelp(void)
88 if (lopen(helpfile)<0)
90 lprintf("Can't open help file \"%s\" ",helpfile);
91 lflush(); sleep(4); drawscreen(); setscroll(); return(-1);
93 resetscroll(); return(lgetc() - '0');