1 /* savelev.c Larn is copyrighted 1986 by Noah Morgan. */
2 /* $FreeBSD: src/games/larn/savelev.c,v 1.3 1999/11/16 02:57:24 billf Exp $ */
3 /* $DragonFly: src/games/larn/savelev.c,v 1.2 2003/06/17 04:25:24 dillon Exp $ */
5 extern struct cel *cell;
8 * routine to save the present level into storage
13 char *pitem,*pknow,*pmitem;
16 pcel = &cell[level*MAXX*MAXY]; /* pointer to this level's cells */
17 pecel = pcel + MAXX*MAXY; /* pointer to past end of this level's cells */
18 pitem=item[0]; piarg=iarg[0]; pknow=know[0]; pmitem=mitem[0]; phitp=hitp[0];
21 pcel->mitem = *pmitem++;
22 pcel->hitp = *phitp++;
23 pcel->item = *pitem++;
24 pcel->know = *pknow++;
25 pcel++->iarg = *piarg++;
30 * routine to restore a level from storage
35 char *pitem,*pknow,*pmitem;
38 pcel = &cell[level*MAXX*MAXY]; /* pointer to this level's cells */
39 pecel = pcel + MAXX*MAXY; /* pointer to past end of this level's cells */
40 pitem=item[0]; piarg=iarg[0]; pknow=know[0]; pmitem=mitem[0]; phitp=hitp[0];
43 *pmitem++ = pcel->mitem;
44 *phitp++ = pcel->hitp;
45 *pitem++ = pcel->item;
46 *pknow++ = pcel->know;
47 *piarg++ = pcel++->iarg;