summaryrefslogtreecommitdiffstats
path: root/hack/hack.lev.c
diff options
context:
space:
mode:
authorchristos <christos@NetBSD.org>1997-10-19 16:56:41 +0000
committerchristos <christos@NetBSD.org>1997-10-19 16:56:41 +0000
commit84e7d0704483ce39bbdeacd5e676168db6fa664f (patch)
treef9ffeffa1a4342e749494bc3f5618552435839af /hack/hack.lev.c
parentf73f1009084e75624e3bc00fef9cf4749de80dcc (diff)
downloadbsdgames-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.c285
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();