wbsio(4): convert to Newbus and DragonFly -- welcome wbsio(4)!
[dragonfly.git] / games / larn / help.c
blob30caee99afedd816b778f68b3e4fd8bae2e4700e
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) /* open the help file and get # pages */
25 return;
26 for (i = 0; i < 23; i++) /* skip over intro message */
27 lgetl();
28 for (; j > 0; j--) {
29 clear();
30 for (i = 0; i < 23; i++)
31 #ifdef VT100
32 lprcat(lgetl()); /* print out each line that we read in */
33 #else /* VT100 */
35 tmcapcnv(tmbuf, lgetl());
36 lprcat(tmbuf);
37 } /* intercept \33's */
38 #endif /* VT100 */
39 if (j > 1) {
40 lprcat(" ---- Press ");
41 standout("return");
42 lprcat(" to exit, ");
43 standout("space");
44 lprcat(" for more help ---- ");
45 i = 0;
46 while ((i != ' ') && (i != '\n') && (i != '\33'))
47 i = getchr();
48 if ((i == '\n') || (i == '\33')) {
49 lrclose();
50 setscroll();
51 drawscreen();
52 return;
56 lrclose();
57 retcont();
58 drawscreen();
62 * function to display the welcome message and background
64 void
65 welcome(void)
67 int i;
68 #ifndef VT100
69 char tmbuf[128]; /* intermediate translation buffer when not a VT100 */
70 #endif /* VT100 */
71 if (openhelp() < 0) /* open the help file */
72 return;
73 clear();
74 for (i = 0; i < 23; i++)
75 #ifdef VT100
76 lprcat(lgetl());/* print out each line that we read in */
77 #else /* VT100 */
79 tmcapcnv(tmbuf, lgetl());
80 lprcat(tmbuf);
81 } /* intercept \33's */
82 #endif /* VT100 */
83 lrclose();
84 retcont(); /* press return to continue */
88 * function to say press return to continue and reset scroll when done
90 static void
91 retcont(void)
93 cursor(1, 24);
94 lprcat("Press ");
95 standout("return");
96 lprcat(" to continue: ");
97 while (getchr() != '\n')
98 ; /* nothing */
99 setscroll();
103 * routine to open the help file and return the first character - '0'
105 static int
106 openhelp(void)
108 if (lopen(helpfile) < 0) {
109 lprintf("Can't open help file \"%s\" ", helpfile);
110 lflush();
111 sleep(4);
112 drawscreen();
113 setscroll();
114 return (-1);
116 resetscroll();
117 return (lgetc() - '0');