diff options
author | cgd <cgd@NetBSD.org> | 1993-03-21 09:45:37 +0000 |
---|---|---|
committer | cgd <cgd@NetBSD.org> | 1993-03-21 09:45:37 +0000 |
commit | 77e3814f0c0e3dea4d0032e25666f77e6f83bfff (patch) | |
tree | 7eddfcbf3dd12089e71dc3fafb0a106c5c5766c7 /larn/savelev.c | |
parent | e81d63576b2e46ab90da7d75fa155ea57ee4d32e (diff) | |
download | bsdgames-darwin-77e3814f0c0e3dea4d0032e25666f77e6f83bfff.tar.gz bsdgames-darwin-77e3814f0c0e3dea4d0032e25666f77e6f83bfff.tar.zst bsdgames-darwin-77e3814f0c0e3dea4d0032e25666f77e6f83bfff.zip |
initial import of 386bsd-0.1 sources
Diffstat (limited to 'larn/savelev.c')
-rw-r--r-- | larn/savelev.c | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/larn/savelev.c b/larn/savelev.c new file mode 100644 index 00000000..4419acb9 --- /dev/null +++ b/larn/savelev.c @@ -0,0 +1,47 @@ +/* savelev.c Larn is copyrighted 1986 by Noah Morgan. */ +#include "header.h" +extern struct cel *cell; + +/* + * routine to save the present level into storage + */ +savelevel() + { + register struct cel *pcel; + register char *pitem,*pknow,*pmitem; + register short *phitp,*piarg; + register struct cel *pecel; + pcel = &cell[level*MAXX*MAXY]; /* pointer to this level's cells */ + pecel = pcel + MAXX*MAXY; /* pointer to past end of this level's cells */ + pitem=item[0]; piarg=iarg[0]; pknow=know[0]; pmitem=mitem[0]; phitp=hitp[0]; + while (pcel < pecel) + { + pcel->mitem = *pmitem++; + pcel->hitp = *phitp++; + pcel->item = *pitem++; + pcel->know = *pknow++; + pcel++->iarg = *piarg++; + } + } + +/* + * routine to restore a level from storage + */ +getlevel() + { + register struct cel *pcel; + register char *pitem,*pknow,*pmitem; + register short *phitp,*piarg; + register struct cel *pecel; + pcel = &cell[level*MAXX*MAXY]; /* pointer to this level's cells */ + pecel = pcel + MAXX*MAXY; /* pointer to past end of this level's cells */ + pitem=item[0]; piarg=iarg[0]; pknow=know[0]; pmitem=mitem[0]; phitp=hitp[0]; + while (pcel < pecel) + { + *pmitem++ = pcel->mitem; + *phitp++ = pcel->hitp; + *pitem++ = pcel->item; + *pknow++ = pcel->know; + *piarg++ = pcel++->iarg; + } + } |