summaryrefslogtreecommitdiff
path: root/games/larn/help.c
diff options
context:
space:
mode:
authorTheo de Raadt <deraadt@cvs.openbsd.org>1995-10-18 08:53:40 +0000
committerTheo de Raadt <deraadt@cvs.openbsd.org>1995-10-18 08:53:40 +0000
commitd6583bb2a13f329cf0332ef2570eb8bb8fc0e39c (patch)
treeece253b876159b39c620e62b6c9b1174642e070e /games/larn/help.c
initial import of NetBSD tree
Diffstat (limited to 'games/larn/help.c')
-rw-r--r--games/larn/help.c91
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');
+ }
+