home *** CD-ROM | disk | FTP | other *** search
/ Atari FTP / ATARI_FTP_0693.zip / ATARI_FTP_0693 / Games / larn12s.arc / LARN.ARC / HELP.C < prev    next >
C/C++ Source or Header  |  1987-10-28  |  2KB  |  88 lines

  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
  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
  28.             { tmcapcnv(tmbuf,lgetl());  lprcat(tmbuf); } /* intercept \33's */
  29. #endif
  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
  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
  60.             { tmcapcnv(tmbuf,lgetl());  lprcat(tmbuf); } /* intercept \33's */
  61. #endif
  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.