diff options
author | christos <christos@NetBSD.org> | 1997-10-19 16:56:41 +0000 |
---|---|---|
committer | christos <christos@NetBSD.org> | 1997-10-19 16:56:41 +0000 |
commit | 84e7d0704483ce39bbdeacd5e676168db6fa664f (patch) | |
tree | f9ffeffa1a4342e749494bc3f5618552435839af /hack/hack.lev.c | |
parent | f73f1009084e75624e3bc00fef9cf4749de80dcc (diff) | |
download | bsdgames-darwin-84e7d0704483ce39bbdeacd5e676168db6fa664f.tar.gz bsdgames-darwin-84e7d0704483ce39bbdeacd5e676168db6fa664f.tar.zst bsdgames-darwin-84e7d0704483ce39bbdeacd5e676168db6fa664f.zip |
WARNsify...
Diffstat (limited to 'hack/hack.lev.c')
-rw-r--r-- | hack/hack.lev.c | 285 |
1 files changed, 144 insertions, 141 deletions
diff --git a/hack/hack.lev.c b/hack/hack.lev.c index e15d39ee..1454d3db 100644 --- a/hack/hack.lev.c +++ b/hack/hack.lev.c @@ -1,52 +1,49 @@ +/* $NetBSD: hack.lev.c,v 1.4 1997/10/19 16:58:09 christos Exp $ */ + /* * Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */ +#include <sys/cdefs.h> #ifndef lint -static char rcsid[] = "$NetBSD: hack.lev.c,v 1.3 1995/03/23 08:30:32 cgd Exp $"; -#endif /* not lint */ +__RCSID("$NetBSD: hack.lev.c,v 1.4 1997/10/19 16:58:09 christos Exp $"); +#endif /* not lint */ +#include <stdlib.h> +#include <unistd.h> #include "hack.h" +#include "extern.h" #include "def.mkroom.h" -#include <stdio.h> -extern struct monst *restmonchn(); -extern struct obj *restobjchn(); -extern struct obj *billobjs; -extern char *itoa(); -extern char SAVEF[]; -extern int hackpid; -extern xchar dlevel; -extern char nul[]; #ifndef NOWORM #include "def.wseg.h" -extern struct wseg *wsegs[32], *wheads[32]; -extern long wgrowtime[32]; -#endif NOWORM +#endif /* NOWORM */ -boolean level_exists[MAXLEVEL+1]; +boolean level_exists[MAXLEVEL + 1]; -savelev(fd,lev) -int fd; -xchar lev; +void +savelev(fd, lev) + int fd; + xchar lev; { #ifndef NOWORM - register struct wseg *wtmp, *wtmp2; - register tmp; -#endif NOWORM + struct wseg *wtmp, *wtmp2; + int tmp; +#endif /* NOWORM */ - if(fd < 0) panic("Save on bad file!"); /* impossible */ - if(lev >= 0 && lev <= MAXLEVEL) + if (fd < 0) + panic("Save on bad file!"); /* impossible */ + if (lev >= 0 && lev <= MAXLEVEL) level_exists[lev] = TRUE; - bwrite(fd,(char *) &hackpid,sizeof(hackpid)); - bwrite(fd,(char *) &lev,sizeof(lev)); - bwrite(fd,(char *) levl,sizeof(levl)); - bwrite(fd,(char *) &moves,sizeof(long)); - bwrite(fd,(char *) &xupstair,sizeof(xupstair)); - bwrite(fd,(char *) &yupstair,sizeof(yupstair)); - bwrite(fd,(char *) &xdnstair,sizeof(xdnstair)); - bwrite(fd,(char *) &ydnstair,sizeof(ydnstair)); + bwrite(fd, (char *) &hackpid, sizeof(hackpid)); + bwrite(fd, (char *) &lev, sizeof(lev)); + bwrite(fd, (char *) levl, sizeof(levl)); + bwrite(fd, (char *) &moves, sizeof(long)); + bwrite(fd, (char *) &xupstair, sizeof(xupstair)); + bwrite(fd, (char *) &yupstair, sizeof(yupstair)); + bwrite(fd, (char *) &xdnstair, sizeof(xdnstair)); + bwrite(fd, (char *) &ydnstair, sizeof(ydnstair)); savemonchn(fd, fmon); savegoldchn(fd, fgold); savetrapchn(fd, ftrap); @@ -55,45 +52,47 @@ xchar lev; billobjs = 0; save_engravings(fd); #ifndef QUEST - bwrite(fd,(char *) rooms,sizeof(rooms)); - bwrite(fd,(char *) doors,sizeof(doors)); -#endif QUEST + bwrite(fd, (char *) rooms, sizeof(rooms)); + bwrite(fd, (char *) doors, sizeof(doors)); +#endif /* QUEST */ fgold = 0; ftrap = 0; fmon = 0; fobj = 0; #ifndef NOWORM - bwrite(fd,(char *) wsegs,sizeof(wsegs)); - for(tmp=1; tmp<32; tmp++){ - for(wtmp = wsegs[tmp]; wtmp; wtmp = wtmp2){ + bwrite(fd, (char *) wsegs, sizeof(wsegs)); + for (tmp = 1; tmp < 32; tmp++) { + for (wtmp = wsegs[tmp]; wtmp; wtmp = wtmp2) { wtmp2 = wtmp->nseg; - bwrite(fd,(char *) wtmp,sizeof(struct wseg)); + bwrite(fd, (char *) wtmp, sizeof(struct wseg)); } wsegs[tmp] = 0; } - bwrite(fd,(char *) wgrowtime,sizeof(wgrowtime)); -#endif NOWORM + bwrite(fd, (char *) wgrowtime, sizeof(wgrowtime)); +#endif /* NOWORM */ } -bwrite(fd,loc,num) -register fd; -register char *loc; -register unsigned num; +void +bwrite(fd, loc, num) + int fd; + char *loc; + unsigned num; { -/* lint wants the 3rd arg of write to be an int; lint -p an unsigned */ - if(write(fd, loc, (int) num) != num) + /* lint wants the 3rd arg of write to be an int; lint -p an unsigned */ + if (write(fd, loc, (int) num) != num) panic("cannot write %u bytes to file #%d", num, fd); } -saveobjchn(fd,otmp) -register fd; -register struct obj *otmp; +void +saveobjchn(fd, otmp) + int fd; + struct obj *otmp; { - register struct obj *otmp2; - unsigned xl; - int minusone = -1; + struct obj *otmp2; + unsigned xl; + int minusone = -1; - while(otmp) { + while (otmp) { otmp2 = otmp->nobj; xl = otmp->onamelth; bwrite(fd, (char *) &xl, sizeof(int)); @@ -104,35 +103,38 @@ register struct obj *otmp; bwrite(fd, (char *) &minusone, sizeof(int)); } -savemonchn(fd,mtmp) -register fd; -register struct monst *mtmp; +void +savemonchn(fd, mtmp) + int fd; + struct monst *mtmp; { - register struct monst *mtmp2; - unsigned xl; - int minusone = -1; + struct monst *mtmp2; + unsigned xl; + int minusone = -1; struct permonst *monbegin = &mons[0]; bwrite(fd, (char *) &monbegin, sizeof(monbegin)); - while(mtmp) { + while (mtmp) { mtmp2 = mtmp->nmon; xl = mtmp->mxlth + mtmp->mnamelth; bwrite(fd, (char *) &xl, sizeof(int)); bwrite(fd, (char *) mtmp, xl + sizeof(struct monst)); - if(mtmp->minvent) saveobjchn(fd,mtmp->minvent); + if (mtmp->minvent) + saveobjchn(fd, mtmp->minvent); free((char *) mtmp); mtmp = mtmp2; } bwrite(fd, (char *) &minusone, sizeof(int)); } -savegoldchn(fd,gold) -register fd; -register struct gold *gold; +void +savegoldchn(fd, gold) + int fd; + struct gold *gold; { - register struct gold *gold2; - while(gold) { + struct gold *gold2; + while (gold) { gold2 = gold->ngold; bwrite(fd, (char *) gold, sizeof(struct gold)); free((char *) gold); @@ -141,12 +143,13 @@ register struct gold *gold; bwrite(fd, nul, sizeof(struct gold)); } -savetrapchn(fd,trap) -register fd; -register struct trap *trap; +void +savetrapchn(fd, trap) + int fd; + struct trap *trap; { - register struct trap *trap2; - while(trap) { + struct trap *trap2; + while (trap) { trap2 = trap->ntrap; bwrite(fd, (char *) trap, sizeof(struct trap)); free((char *) trap); @@ -155,122 +158,122 @@ register struct trap *trap; bwrite(fd, nul, sizeof(struct trap)); } -getlev(fd,pid,lev) -int fd,pid; -xchar lev; +void +getlev(fd, pid, lev) + int fd, pid; + xchar lev; { - register struct gold *gold; - register struct trap *trap; + struct gold *gold; + struct trap *trap; #ifndef NOWORM - register struct wseg *wtmp; -#endif NOWORM - register tmp; - long omoves; - int hpid; - xchar dlvl; + struct wseg *wtmp; +#endif /* NOWORM */ + int tmp; + long omoves; + int hpid; + xchar dlvl; /* First some sanity checks */ mread(fd, (char *) &hpid, sizeof(hpid)); mread(fd, (char *) &dlvl, sizeof(dlvl)); - if((pid && pid != hpid) || (lev && dlvl != lev)) { + if ((pid && pid != hpid) || (lev && dlvl != lev)) { pline("Strange, this map is not as I remember it."); pline("Somebody is trying some trickery here ..."); pline("This game is void ..."); done("tricked"); } - fgold = 0; ftrap = 0; mread(fd, (char *) levl, sizeof(levl)); - mread(fd, (char *)&omoves, sizeof(omoves)); - mread(fd, (char *)&xupstair, sizeof(xupstair)); - mread(fd, (char *)&yupstair, sizeof(yupstair)); - mread(fd, (char *)&xdnstair, sizeof(xdnstair)); - mread(fd, (char *)&ydnstair, sizeof(ydnstair)); + mread(fd, (char *) &omoves, sizeof(omoves)); + mread(fd, (char *) &xupstair, sizeof(xupstair)); + mread(fd, (char *) &yupstair, sizeof(yupstair)); + mread(fd, (char *) &xdnstair, sizeof(xdnstair)); + mread(fd, (char *) &ydnstair, sizeof(ydnstair)); fmon = restmonchn(fd); /* regenerate animals while on another level */ - { long tmoves = (moves > omoves) ? moves-omoves : 0; - register struct monst *mtmp, *mtmp2; - extern char genocided[]; + { + long tmoves = (moves > omoves) ? moves - omoves : 0; + struct monst *mtmp, *mtmp2; - for(mtmp = fmon; mtmp; mtmp = mtmp2) { - long newhp; /* tmoves may be very large */ - - mtmp2 = mtmp->nmon; - if(index(genocided, mtmp->data->mlet)) { - mondead(mtmp); - continue; - } + for (mtmp = fmon; mtmp; mtmp = mtmp2) { + long newhp; /* tmoves may be very large */ - if(mtmp->mtame && tmoves > 250) { - mtmp->mtame = 0; - mtmp->mpeaceful = 0; + mtmp2 = mtmp->nmon; + if (strchr(genocided, mtmp->data->mlet)) { + mondead(mtmp); + continue; + } + if (mtmp->mtame && tmoves > 250) { + mtmp->mtame = 0; + mtmp->mpeaceful = 0; + } + newhp = mtmp->mhp + + (strchr(MREGEN, mtmp->data->mlet) ? tmoves : tmoves / 20); + if (newhp > mtmp->mhpmax) + mtmp->mhp = mtmp->mhpmax; + else + mtmp->mhp = newhp; } - - newhp = mtmp->mhp + - (index(MREGEN, mtmp->data->mlet) ? tmoves : tmoves/20); - if(newhp > mtmp->mhpmax) - mtmp->mhp = mtmp->mhpmax; - else - mtmp->mhp = newhp; - } } setgd(); gold = newgold(); - mread(fd, (char *)gold, sizeof(struct gold)); - while(gold->gx) { + mread(fd, (char *) gold, sizeof(struct gold)); + while (gold->gx) { gold->ngold = fgold; fgold = gold; gold = newgold(); - mread(fd, (char *)gold, sizeof(struct gold)); + mread(fd, (char *) gold, sizeof(struct gold)); } free((char *) gold); trap = newtrap(); - mread(fd, (char *)trap, sizeof(struct trap)); - while(trap->tx) { + mread(fd, (char *) trap, sizeof(struct trap)); + while (trap->tx) { trap->ntrap = ftrap; ftrap = trap; trap = newtrap(); - mread(fd, (char *)trap, sizeof(struct trap)); + mread(fd, (char *) trap, sizeof(struct trap)); } free((char *) trap); fobj = restobjchn(fd); billobjs = restobjchn(fd); rest_engravings(fd); #ifndef QUEST - mread(fd, (char *)rooms, sizeof(rooms)); - mread(fd, (char *)doors, sizeof(doors)); -#endif QUEST + mread(fd, (char *) rooms, sizeof(rooms)); + mread(fd, (char *) doors, sizeof(doors)); +#endif /* QUEST */ #ifndef NOWORM - mread(fd, (char *)wsegs, sizeof(wsegs)); - for(tmp = 1; tmp < 32; tmp++) if(wsegs[tmp]){ - wheads[tmp] = wsegs[tmp] = wtmp = newseg(); - while(1) { - mread(fd, (char *)wtmp, sizeof(struct wseg)); - if(!wtmp->nseg) break; - wheads[tmp]->nseg = wtmp = newseg(); - wheads[tmp] = wtmp; + mread(fd, (char *) wsegs, sizeof(wsegs)); + for (tmp = 1; tmp < 32; tmp++) + if (wsegs[tmp]) { + wheads[tmp] = wsegs[tmp] = wtmp = newseg(); + while (1) { + mread(fd, (char *) wtmp, sizeof(struct wseg)); + if (!wtmp->nseg) + break; + wheads[tmp]->nseg = wtmp = newseg(); + wheads[tmp] = wtmp; + } } - } - mread(fd, (char *)wgrowtime, sizeof(wgrowtime)); -#endif NOWORM + mread(fd, (char *) wgrowtime, sizeof(wgrowtime)); +#endif /* NOWORM */ } +void mread(fd, buf, len) -register fd; -register char *buf; -register unsigned len; + int fd; + char *buf; + unsigned len; { - register int rlen; - extern boolean restoring; + int rlen; rlen = read(fd, buf, (int) len); - if(rlen != len){ + if (rlen != len) { pline("Read %d instead of %u bytes.\n", rlen, len); - if(restoring) { + if (restoring) { (void) unlink(SAVEF); error("Error restoring old game."); } @@ -278,11 +281,11 @@ register unsigned len; } } +void mklev() { - extern boolean in_mklev; - - if(getbones()) return; + if (getbones()) + return; in_mklev = TRUE; makelevel(); |