home *** CD-ROM | disk | FTP | other *** search
/ rtsi.com / 2014.01.www.rtsi.com.tar / www.rtsi.com / OS9 / TOP / USR / SRC / larn.t.Z / larn.t / savelev.c < prev    next >
Text File  |  1988-11-13  |  1KB  |  48 lines

  1. /* savelev.c         Larn is copyrighted 1986 by Noah Morgan. */
  2. #include "header.h"
  3. extern struct cel *cell;
  4.  
  5. /*
  6.  *    routine to save the present level into storage
  7.  */
  8. savelevel()
  9.     {
  10.     register struct cel *pcel;
  11.     register char *pitem,*pknow,*pmitem;
  12.     register short *phitp,*piarg;
  13.     register struct cel *pecel;
  14.     pcel = &cell[level*MAXX*MAXY];    /* pointer to this level's cells */
  15.     pecel = pcel + MAXX*MAXY;    /* pointer to past end of this level's cells */
  16.     pitem=item[0]; piarg=iarg[0]; pknow=know[0]; pmitem=mitem[0]; phitp=hitp[0];
  17.     while (pcel < pecel)
  18.         {
  19.         pcel->mitem  = *pmitem++;
  20.         pcel->hitp   = *phitp++;
  21.         pcel->item   = *pitem++;
  22.         pcel->know   = *pknow++;
  23.         pcel++->iarg = *piarg++;
  24.         }
  25.     }
  26.  
  27. /*
  28.  *    routine to restore a level from storage
  29.  */
  30. getlevel()
  31.     {
  32.     register struct cel *pcel;
  33.     register char *pitem,*pknow,*pmitem;
  34.     register short *phitp,*piarg;
  35.     register struct cel *pecel;
  36.     pcel = &cell[level*MAXX*MAXY];    /* pointer to this level's cells */
  37.     pecel = pcel + MAXX*MAXY;    /* pointer to past end of this level's cells */
  38.     pitem=item[0]; piarg=iarg[0]; pknow=know[0]; pmitem=mitem[0]; phitp=hitp[0];
  39.     while (pcel < pecel)
  40.         {
  41.         *pmitem++ = pcel->mitem;
  42.         *phitp++ = pcel->hitp;
  43.         *pitem++ = pcel->item;
  44.         *pknow++ = pcel->know;
  45.         *piarg++ = pcel++->iarg;
  46.         }
  47.     }
  48.