|
|
1.1 ! root 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: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.