xref: /original-bsd/games/larn/help.c (revision 5ab5bc28)
1 /*	help.c		Larn is copyrighted 1986 by Noah Morgan. */
2 #include "header.h"
3 /*
4  *	help function to display the help info
5  *
6  *	format of the .larn.help file
7  *
8  *	1st character of file:	# of pages of help available (ascii digit)
9  *	page (23 lines) for the introductory message (not counted in above)
10  *	pages of help text (23 lines per page)
11  */
12 extern char helpfile[];
13 help()
14 	{
15 	register int i,j;
16 #ifndef VT100
17 	char tmbuf[128];	/* intermediate translation buffer when not a VT100 */
18 #endif VT100
19 	if ((j=openhelp()) < 0)  return;	/* open the help file and get # pages */
20 	for (i=0; i<23; i++) lgetl();	/* skip over intro message */
21 	for (;  j>0; j--)
22 		{
23 		clear();
24 		for (i=0; i<23; i++)
25 #ifdef VT100
26 			lprcat(lgetl());	/* print out each line that we read in */
27 #else VT100
28 			{ tmcapcnv(tmbuf,lgetl());  lprcat(tmbuf); } /* intercept \33's */
29 #endif VT100
30 		if (j>1)
31 			{
32 			lprcat("    ---- Press ");  standout("return");
33 			lprcat(" to exit, ");  standout("space");
34 			lprcat(" for more help ---- ");
35 			i=0; while ((i!=' ') && (i!='\n') && (i!='\33')) i=getchar();
36 			if ((i=='\n') || (i=='\33'))
37 				{
38 				lrclose();  setscroll();  drawscreen();  return;
39 				}
40 			}
41 		}
42 	lrclose();  retcont();  drawscreen();
43 	}
44 
45 /*
46  *	function to display the welcome message and background
47  */
48 welcome()
49 	{
50 	register int i;
51 #ifndef VT100
52 	char tmbuf[128];	/* intermediate translation buffer when not a VT100 */
53 #endif VT100
54 	if (openhelp() < 0)  return;   	/* open the help file */
55 	clear();
56 	for(i=0; i<23; i++)
57 #ifdef VT100
58 			lprcat(lgetl());	/* print out each line that we read in */
59 #else VT100
60 			{ tmcapcnv(tmbuf,lgetl());  lprcat(tmbuf); } /* intercept \33's */
61 #endif VT100
62 	lrclose();  retcont();	/* press return to continue */
63 	}
64 
65 /*
66  *	function to say press return to continue and reset scroll when done
67  */
68 retcont()
69 	{
70 	cursor(1,24); lprcat("Press "); standout("return");
71 	lprcat(" to continue: ");   while (getchar() != '\n');
72 	setscroll();
73 	}
74 
75 /*
76  *	routine to open the help file and return the first character - '0'
77  */
78 openhelp()
79 	{
80 	if (lopen(helpfile)<0)
81 		{
82 		lprintf("Can't open help file \"%s\" ",helpfile);
83 		lflush(); sleep(4);	drawscreen();	setscroll(); return(-1);
84 		}
85 	resetscroll();  return(lgetc() - '0');
86 	}
87 
88