From 1fabd91386e4829a65aac0f7d8bf9e4b55ab2f6d Mon Sep 17 00:00:00 2001 From: billf Date: Sun, 19 Dec 1999 00:21:51 +0000 Subject: -Wall fixes. XXX: This code is sick, and so are some of the "fixes". --- games/adventure/crc.c | 2 + games/adventure/done.c | 2 + games/adventure/hdr.h | 65 +++++++++++++++++++++--- games/adventure/init.c | 124 ++++++++++++++++++++++++---------------------- games/adventure/io.c | 49 ++++++++++++++++--- games/adventure/main.c | 20 ++++---- games/adventure/save.c | 125 ++++++++++++++++++++++++----------------------- games/adventure/setup.c | 3 +- games/adventure/subr.c | 40 +++++++++++++-- games/adventure/vocab.c | 29 +++-------- games/adventure/wizard.c | 14 ++++-- 11 files changed, 300 insertions(+), 173 deletions(-) (limited to 'games') diff --git a/games/adventure/crc.c b/games/adventure/crc.c index 1bbec1e..2aaef19 100644 --- a/games/adventure/crc.c +++ b/games/adventure/crc.c @@ -44,6 +44,7 @@ static const char rcsid[] = #endif /* not lint */ #include +#include "hdr.h" const u_long crctab[] = { 0x7fffffff, @@ -111,6 +112,7 @@ const u_long crctab[] = { u_long crcval; u_int step; +void crc_start() { crcval = step = 0; diff --git a/games/adventure/done.c b/games/adventure/done.c index 7baa5d7..3dd013a 100644 --- a/games/adventure/done.c +++ b/games/adventure/done.c @@ -49,6 +49,7 @@ static const char rcsid[] = #include #include "hdr.h" +int score() /* sort of like 20000 */ { int scor,i; mxscor=scor=0; @@ -85,6 +86,7 @@ score() /* sort of like 20000 */ return(scor); } +void done(entry) /* entry=1 means goto 13000 */ /* game is over */ int entry; /* entry=2 means goto 20000 */ /* 3=19000 */ { int i,sc; diff --git a/games/adventure/hdr.h b/games/adventure/hdr.h index d831a11..d3b1154 100644 --- a/games/adventure/hdr.h +++ b/games/adventure/hdr.h @@ -49,6 +49,8 @@ * * The data file distributed with the fortran source is assumed to be called * "glorkz" in the directory where the program is first run. + * + * $FreeBSD$ */ /* hdr.h: included by c advent files */ @@ -154,12 +156,63 @@ int chloc,chloc2,dseen[7],dloc[7], /* dwarf stuff */ int tk[21],stick,dtotal,attack; int turns,lmwarn,iwest,knfloc,detail, /* various flags & counters */ abbnum,maxdie,numdie,holdng,dkill,foobar,bonus,clock1,clock2, - saved,closng,panic,closed,scorng; - -int demo,newloc,limit; - -char *decr(); -unsigned long crc(); + closng,panic,closed,scorng; + +int demo,limit; + +int at(int); +int bug(int); +void carry(int,int); +void caveclose(void); +void checkhints(void); +void ciao(void); +void closing(void); +unsigned long crc(const char *, int); +void crc_start(void); +int dark(void); +void datime(int *, int *); +char *decr(char,char,char,char,char); +void die(int); +void done(int); +void drop(int,int); +void dstroy(int); +int fdwarf(void); +int forced(int); +void getin(char **, char **); +int here(int); +void init(void); +void juggle(int); +int liq(void); +int liqloc(int); +int march(void); +void move(int,int); +void mspeak(int); +int pct(int); +void poof(void); +void pspeak(int, int); +int put(int,int,int); +int ran(int); +void rdata(void); +int restore(const char *); +void rspeak(int); +int save(const char *); +int score(void); +void speak(const struct text *); +int Start(void); +void startup(void); +int toting(int); +void trapdel(int); +int trdrop(void); +int trfeed(void); +int trfill(void); +int trkill(void); +int tropen(void); +int trsay(void); +int trtake(void); +int trtoss(void); +int vocab(const char *,int,int); +int yes(int,int,int); +int yesm(int,int,int); /* We need to get a little tricky to avoid strings */ #define DECR(a,b,c,d,e) decr('a'+'+','b'+'-','c'+'#','d'+'&','e'+'%') diff --git a/games/adventure/init.c b/games/adventure/init.c index 352aa61..a630734 100644 --- a/games/adventure/init.c +++ b/games/adventure/init.c @@ -57,7 +57,9 @@ int blklin = TRUE; int setbit[16] = {1,2,4,010,020,040,0100,0200,0400,01000,02000,04000, 010000,020000,040000,0100000}; +static void linkdata (void); +void init() /* everything for 1st time run */ { rdata(); /* read data from orig. file */ @@ -79,6 +81,7 @@ char a,b,c,d,e; return buf; } +static void linkdata() /* secondary data manipulation */ { int i,j; @@ -106,67 +109,67 @@ linkdata() /* secondary data manipulation */ } /* define mnemonics */ - keys = vocab(DECR(k,e,y,s,\0), 1); - lamp = vocab(DECR(l,a,m,p,\0), 1); - grate = vocab(DECR(g,r,a,t,e), 1); - cage = vocab(DECR(c,a,g,e,\0),1); - rod = vocab(DECR(r,o,d,\0,\0),1); + keys = vocab(DECR(k,e,y,s,\0), 1, 0); + lamp = vocab(DECR(l,a,m,p,\0), 1, 0); + grate = vocab(DECR(g,r,a,t,e), 1, 0); + cage = vocab(DECR(c,a,g,e,\0),1, 0); + rod = vocab(DECR(r,o,d,\0,\0),1, 0); rod2=rod+1; - steps=vocab(DECR(s,t,e,p,s),1); - bird = vocab(DECR(b,i,r,d,\0),1); - door = vocab(DECR(d,o,o,r,\0),1); - pillow= vocab(DECR(p,i,l,l,o), 1); - snake = vocab(DECR(s,n,a,k,e), 1); - fissur= vocab(DECR(f,i,s,s,u), 1); - tablet= vocab(DECR(t,a,b,l,e), 1); - clam = vocab(DECR(c,l,a,m,\0),1); - oyster= vocab(DECR(o,y,s,t,e), 1); - magzin= vocab(DECR(m,a,g,a,z), 1); - dwarf = vocab(DECR(d,w,a,r,f), 1); - knife = vocab(DECR(k,n,i,f,e), 1); - food = vocab(DECR(f,o,o,d,\0),1); - bottle= vocab(DECR(b,o,t,t,l), 1); - water = vocab(DECR(w,a,t,e,r), 1); - oil = vocab(DECR(o,i,l,\0,\0),1); - plant = vocab(DECR(p,l,a,n,t), 1); + steps=vocab(DECR(s,t,e,p,s),1, 0); + bird = vocab(DECR(b,i,r,d,\0),1, 0); + door = vocab(DECR(d,o,o,r,\0),1, 0); + pillow= vocab(DECR(p,i,l,l,o), 1, 0); + snake = vocab(DECR(s,n,a,k,e), 1, 0); + fissur= vocab(DECR(f,i,s,s,u), 1, 0); + tablet= vocab(DECR(t,a,b,l,e), 1, 0); + clam = vocab(DECR(c,l,a,m,\0),1, 0); + oyster= vocab(DECR(o,y,s,t,e), 1, 0); + magzin= vocab(DECR(m,a,g,a,z), 1, 0); + dwarf = vocab(DECR(d,w,a,r,f), 1, 0); + knife = vocab(DECR(k,n,i,f,e), 1, 0); + food = vocab(DECR(f,o,o,d,\0),1, 0); + bottle= vocab(DECR(b,o,t,t,l), 1, 0); + water = vocab(DECR(w,a,t,e,r), 1, 0); + oil = vocab(DECR(o,i,l,\0,\0),1, 0); + plant = vocab(DECR(p,l,a,n,t), 1, 0); plant2=plant+1; - axe = vocab(DECR(a,x,e,\0,\0),1); - mirror= vocab(DECR(m,i,r,r,o), 1); - dragon= vocab(DECR(d,r,a,g,o), 1); - chasm = vocab(DECR(c,h,a,s,m), 1); - troll = vocab(DECR(t,r,o,l,l), 1); + axe = vocab(DECR(a,x,e,\0,\0), 1, 0); + mirror= vocab(DECR(m,i,r,r,o), 1, 0); + dragon= vocab(DECR(d,r,a,g,o), 1, 0); + chasm = vocab(DECR(c,h,a,s,m), 1, 0); + troll = vocab(DECR(t,r,o,l,l), 1, 0); troll2=troll+1; - bear = vocab(DECR(b,e,a,r,\0),1); - messag= vocab(DECR(m,e,s,s,a), 1); - vend = vocab(DECR(v,e,n,d,i), 1); - batter= vocab(DECR(b,a,t,t,e), 1); - - nugget= vocab(DECR(g,o,l,d,\0),1); - coins = vocab(DECR(c,o,i,n,s), 1); - chest = vocab(DECR(c,h,e,s,t), 1); - eggs = vocab(DECR(e,g,g,s,\0),1); - tridnt= vocab(DECR(t,r,i,d,e), 1); - vase = vocab(DECR(v,a,s,e,\0),1); - emrald= vocab(DECR(e,m,e,r,a), 1); - pyram = vocab(DECR(p,y,r,a,m), 1); - pearl = vocab(DECR(p,e,a,r,l), 1); - rug = vocab(DECR(r,u,g,\0,\0),1); - chain = vocab(DECR(c,h,a,i,n), 1); - - back = vocab(DECR(b,a,c,k,\0),0); - look = vocab(DECR(l,o,o,k,\0),0); - cave = vocab(DECR(c,a,v,e,\0),0); - null = vocab(DECR(n,u,l,l,\0),0); - entrnc= vocab(DECR(e,n,t,r,a), 0); - dprssn= vocab(DECR(d,e,p,r,e), 0); - enter = vocab(DECR(e,n,t,e,r), 0); - - pour = vocab(DECR(p,o,u,r,\0), 2); - say = vocab(DECR(s,a,y,\0,\0),2); - lock = vocab(DECR(l,o,c,k,\0),2); - throw = vocab(DECR(t,h,r,o,w), 2); - find = vocab(DECR(f,i,n,d,\0),2); - invent= vocab(DECR(i,n,v,e,n), 2); + bear = vocab(DECR(b,e,a,r,\0),1, 0); + messag= vocab(DECR(m,e,s,s,a), 1, 0); + vend = vocab(DECR(v,e,n,d,i), 1, 0); + batter= vocab(DECR(b,a,t,t,e), 1, 0); + + nugget= vocab(DECR(g,o,l,d,\0),1, 0); + coins = vocab(DECR(c,o,i,n,s), 1, 0); + chest = vocab(DECR(c,h,e,s,t), 1, 0); + eggs = vocab(DECR(e,g,g,s,\0),1, 0); + tridnt= vocab(DECR(t,r,i,d,e), 1, 0); + vase = vocab(DECR(v,a,s,e,\0),1, 0); + emrald= vocab(DECR(e,m,e,r,a), 1, 0); + pyram = vocab(DECR(p,y,r,a,m), 1, 0); + pearl = vocab(DECR(p,e,a,r,l), 1, 0); + rug = vocab(DECR(r,u,g,\0,\0),1, 0); + chain = vocab(DECR(c,h,a,i,n), 1, 0); + + back = vocab(DECR(b,a,c,k,\0),0, 0); + look = vocab(DECR(l,o,o,k,\0),0, 0); + cave = vocab(DECR(c,a,v,e,\0),0, 0); + null = vocab(DECR(n,u,l,l,\0),0, 0); + entrnc= vocab(DECR(e,n,t,r,a), 0, 0); + dprssn= vocab(DECR(d,e,p,r,e), 0, 0); + enter = vocab(DECR(e,n,t,e,r), 0, 0); + + pour = vocab(DECR(p,o,u,r,\0), 2, 0); + say = vocab(DECR(s,a,y,\0,\0),2, 0); + lock = vocab(DECR(l,o,c,k,\0),2, 0); + throw = vocab(DECR(t,h,r,o,w), 2, 0); + find = vocab(DECR(f,i,n,d,\0),2, 0); + invent= vocab(DECR(i,n,v,e,n), 2, 0); /* initialize dwarves */ chloc=114; @@ -200,12 +203,15 @@ linkdata() /* secondary data manipulation */ -trapdel() /* come here if he hits a del */ +void +trapdel(sig) /* come here if he hits a del */ +int sig; { delhit = 1; /* main checks, treats as QUIT */ signal(2,trapdel); /* catch subsequent DELs */ } +void startup() { demo=Start(); diff --git a/games/adventure/io.c b/games/adventure/io.c index 302e744..12bf41c 100644 --- a/games/adventure/io.c +++ b/games/adventure/io.c @@ -52,7 +52,20 @@ static const char rcsid[] = #include #include +static int next (void); +static int rnum (void); +static void rdesc (int); +static void rdflt (void); +static void rhints (void); +static void rliq (void); +static void rlocs (void); +static void rtrav (void); +static void rvoc (void); +#ifdef DEBUG +static void twrite (int); +#endif +void getin(wrd1,wrd2) /* get command from user */ char **wrd1,**wrd2; /* no prompt, usually */ { char *s; @@ -98,10 +111,12 @@ char **wrd1,**wrd2; /* no prompt, usually */ } } +int yes(x,y,z) /* confirm with rspeak */ int x,y,z; { int result; int ch; + result = FALSE; for (;;) { rspeak(x); /* tell him what we want*/ if ((ch=getchar())=='y') @@ -120,10 +135,12 @@ int x,y,z; return(result); } +int yesm(x,y,z) /* confirm with mspeak */ int x,y,z; { int result; int ch; + result = FALSE; for (;;) { mspeak(x); /* tell him what we want*/ if ((ch=getchar())=='y') @@ -151,6 +168,7 @@ int outsw = 0; /* putting stuff to data file? */ const char iotape[] = "Ax3F'\003tt$8h\315qer*h\017nGKrX\207:!l"; const char *tape = iotape; /* pointer to encryption tape */ +static int next() /* next virtual char, bump adr */ { int ch; @@ -166,6 +184,7 @@ next() /* next virtual char, bump adr */ char breakch; /* tell which char ended rnum */ +void rdata() /* "read" data from virtual file*/ { int sect; char ch; @@ -236,6 +255,7 @@ rdata() /* "read" data from virtual file*/ char nbf[12]; +static int rnum() /* read initial location num */ { char *s; tape = iotape; /* restart encryption tape */ @@ -250,12 +270,12 @@ rnum() /* read initial location num */ char *seekhere; +static void rdesc(sect) /* read description-format msgs */ int sect; -{ char *s,*t; +{ int locc; - char *seekstart, *maystart, *adrstart; - char *entry; + char *seekstart, *maystart; seekhere = inptr; /* Where are we in virtual file?*/ outsw=1; /* these msgs go into tmp file */ @@ -315,18 +335,23 @@ int sect; } +static void rtrav() /* read travel table */ { int locc; struct travlist *t; char *s; char buf[12]; int len,m,n,entries; + entries = 0; + t = NULL; for (oldloc= -1;;) /* get another line */ { if ((locc=rnum())!=oldloc && oldloc>=0) /* end of entry */ { t->next = 0; /* terminate the old entry */ - /* printf("%d:%d entries\n",oldloc,entries); */ - /* twrite(oldloc); */ +#if DEBUG + printf("%d:%d entries\n",oldloc,entries); + twrite(oldloc); +#endif } if (locc== -1) return; if (locc!=oldloc) /* getting a new entry */ @@ -337,7 +362,8 @@ rtrav() /* read travel table */ entries=0; oldloc=locc; } - for (s=buf;; *s++) /* get the newloc number /ASCII */ + s = buf; + for (;; s++) /* get the newloc number /ASCII */ if ((*s=next())==TAB || *s==LF) break; *s=0; len=strlen(buf); /* quad long number handling */ @@ -367,6 +393,7 @@ rtrav() /* read travel table */ #ifdef DEBUG +static void twrite(loq) /* travel options from this loc */ int loq; { struct travlist *t; @@ -387,6 +414,7 @@ int loq; #endif DEBUG +static void rvoc() { char *s; /* read the vocabulary */ int index; @@ -403,10 +431,10 @@ rvoc() /* printf("\"%s\"=%d\n",buf,index);*/ vocab(buf,-2,index); } -/* prht(); */ } +static void rlocs() /* initial object locations */ { for (;;) { if ((obj=rnum())<0) break; @@ -417,6 +445,7 @@ rlocs() /* initial object locations */ } } +static void rdflt() /* default verb messages */ { for (;;) { if ((verb=rnum())<0) break; @@ -424,6 +453,7 @@ rdflt() /* default verb messages */ } } +static void rliq() /* liquid assets &c: cond bits */ { int bitnum; for (;;) /* read new bit list */ @@ -435,6 +465,7 @@ rliq() /* liquid assets &c: cond bits */ } } +static void rhints() { int hintnum,i; hntmax=0; @@ -447,18 +478,21 @@ rhints() } +void rspeak(msg) int msg; { if (msg!=0) speak(&rtext[msg]); } +void mspeak(msg) int msg; { if (msg!=0) speak(&mtext[msg]); } +void speak(msg) /* read, decrypt, and print a message (not ptext) */ const struct text *msg;/* msg is a pointer to seek address and length of mess */ { @@ -483,6 +517,7 @@ const struct text *msg;/* msg is a pointer to seek address and length of mess */ } +void pspeak(m,skip) /* read, decrypt an print a ptext message */ int m; /* msg is the number of all the p msgs for this place */ int skip; /* assumes object 1 doesn't have prop 1, obj 2 no prop 2 &c*/ diff --git a/games/adventure/main.c b/games/adventure/main.c index 290ba93..dd15f17 100644 --- a/games/adventure/main.c +++ b/games/adventure/main.c @@ -53,21 +53,22 @@ static const char rcsid[] = /* Re-coding of advent in C: main program */ #include +#include #include #include #include +#include #include "hdr.h" +int main(argc,argv) int argc; char **argv; { - extern int errno; int i; int rval,ll; struct text *kk; - extern trapdel(); /* revoke */ setgid(getgid()); @@ -117,7 +118,7 @@ char **argv; } kk = &rtext[16]; } - l2001: if (toting(bear)) rspeak(141); /* 2001 */ + if (toting(bear)) rspeak(141); /* 2001 */ speak(kk); k=1; if (forced(loc)) @@ -222,11 +223,11 @@ char **argv; if ((strncmp(wd1,"water",5)&&strncmp(wd1,"oil",3)) || (strncmp(wd2,"plant",5)&&strncmp(wd2,"door",4))) goto l2610; - if (at(vocab(wd2,1))) strcpy(wd2,"pour"); + if (at(vocab(wd2,1,0))) strcpy(wd2,"pour"); l2610: if (!strncmp(wd1,"west",4)) if (++iwest==10) rspeak(17); - l2630: i=vocab(wd1,-1); + l2630: i=vocab(wd1,-1,0); if (i== -1) { spk=60; /* 3000 */ if (pct(20)) spk=61; @@ -263,7 +264,6 @@ char **argv; if (*wd2!=0 && verb!=say) goto l2800; if (verb==say) obj= *wd2; if (obj!=0) goto l4090; - l4080: switch(verb) { case 1: /* take = 8010 */ if (atloc[loc]==0||linkx[atloc[loc]]!=0) goto l8000; @@ -329,7 +329,7 @@ char **argv; if (gaveup) done(2); goto l2012; case 25: /* foo: 8250 */ - k=vocab(wd1,3); + k=vocab(wd1,3,0); spk=42; if (foobar==1-k) goto l8252; if (foobar!=0) spk=151; @@ -394,7 +394,7 @@ char **argv; case 2012: goto l2012; default: bug(105); } - l9030: case 3: + case 3: switch(trsay()) { case 2012: goto l2012; case 2630: goto l2630; @@ -533,7 +533,7 @@ char **argv; ||!closed) goto l2011; hinted[2]=yes(192,193,54); goto l2012; - l9280: case 28: /* break */ + case 28: /* break */ if (obj==mirror) spk=148; if (obj==vase&&prop[vase]==0) { spk=198; @@ -546,7 +546,7 @@ char **argv; rspeak(197); done(3); - l9290: case 29: /* wake */ + case 29: /* wake */ if (obj!=dwarf||!closed) goto l2011; rspeak(199); done(3); diff --git a/games/adventure/save.c b/games/adventure/save.c index 7612c1d..6a92193 100644 --- a/games/adventure/save.c +++ b/games/adventure/save.c @@ -57,70 +57,71 @@ struct savestruct struct savestruct save_array[] = { - &abbnum, sizeof(abbnum), - &attack, sizeof(attack), - &blklin, sizeof(blklin), - &bonus, sizeof(bonus), - &chloc, sizeof(chloc), - &chloc2, sizeof(chloc2), - &clock1, sizeof(clock1), - &clock2, sizeof(clock2), - &closed, sizeof(closed), - &closng, sizeof(closng), - &daltlc, sizeof(daltlc), - &demo, sizeof(demo), - &detail, sizeof(detail), - &dflag, sizeof(dflag), - &dkill, sizeof(dkill), - &dtotal, sizeof(dtotal), - &foobar, sizeof(foobar), - &gaveup, sizeof(gaveup), - &holdng, sizeof(holdng), - &iwest, sizeof(iwest), - &k, sizeof(k), - &k2, sizeof(k2), - &knfloc, sizeof(knfloc), - &kq, sizeof(kq), - &latncy, sizeof(latncy), - &limit, sizeof(limit), - &lmwarn, sizeof(lmwarn), - &loc, sizeof(loc), - &maxdie, sizeof(maxdie), - &mxscor, sizeof(mxscor), - &newloc, sizeof(newloc), - &numdie, sizeof(numdie), - &obj, sizeof(obj), - &oldlc2, sizeof(oldlc2), - &oldloc, sizeof(oldloc), - &panic, sizeof(panic), - &saved, sizeof(saved), - &savet, sizeof(savet), - &scorng, sizeof(scorng), - &spk, sizeof(spk), - &stick, sizeof(stick), - &tally, sizeof(tally), - &tally2, sizeof(tally2), - &tkk, sizeof(tkk), - &turns, sizeof(turns), - &verb, sizeof(verb), - &wd1, sizeof(wd1), - &wd2, sizeof(wd2), - &wzdark, sizeof(wzdark), - &yea, sizeof(yea), - atloc, sizeof(atloc), - dloc, sizeof(dloc), - dseen, sizeof(dseen), - fixed, sizeof(fixed), - hinted, sizeof(hinted), - linkx, sizeof(linkx), - odloc, sizeof(odloc), - place, sizeof(place), - prop, sizeof(prop), - tk, sizeof(tk), + {&abbnum, sizeof(abbnum)}, + {&attack, sizeof(attack)}, + {&blklin, sizeof(blklin)}, + {&bonus, sizeof(bonus)}, + {&chloc, sizeof(chloc)}, + {&chloc2, sizeof(chloc2)}, + {&clock1, sizeof(clock1)}, + {&clock2, sizeof(clock2)}, + {&closed, sizeof(closed)}, + {&closng, sizeof(closng)}, + {&daltlc, sizeof(daltlc)}, + {&demo, sizeof(demo)}, + {&detail, sizeof(detail)}, + {&dflag, sizeof(dflag)}, + {&dkill, sizeof(dkill)}, + {&dtotal, sizeof(dtotal)}, + {&foobar, sizeof(foobar)}, + {&gaveup, sizeof(gaveup)}, + {&holdng, sizeof(holdng)}, + {&iwest, sizeof(iwest)}, + {&k, sizeof(k)}, + {&k2, sizeof(k2)}, + {&knfloc, sizeof(knfloc)}, + {&kq, sizeof(kq)}, + {&latncy, sizeof(latncy)}, + {&limit, sizeof(limit)}, + {&lmwarn, sizeof(lmwarn)}, + {&loc, sizeof(loc)}, + {&maxdie, sizeof(maxdie)}, + {&mxscor, sizeof(mxscor)}, + {&newloc, sizeof(newloc)}, + {&numdie, sizeof(numdie)}, + {&obj, sizeof(obj)}, + {&oldlc2, sizeof(oldlc2)}, + {&oldloc, sizeof(oldloc)}, + {&panic, sizeof(panic)}, + {&saved, sizeof(saved)}, + {&savet, sizeof(savet)}, + {&scorng, sizeof(scorng)}, + {&spk, sizeof(spk)}, + {&stick, sizeof(stick)}, + {&tally, sizeof(tally)}, + {&tally2, sizeof(tally2)}, + {&tkk, sizeof(tkk)}, + {&turns, sizeof(turns)}, + {&verb, sizeof(verb)}, + {&wd1, sizeof(wd1)}, + {&wd2, sizeof(wd2)}, + {&wzdark, sizeof(wzdark)}, + {&yea, sizeof(yea)}, + {atloc, sizeof(atloc)}, + {dloc, sizeof(dloc)}, + {dseen, sizeof(dseen)}, + {fixed, sizeof(fixed)}, + {hinted, sizeof(hinted)}, + {linkx, sizeof(linkx)}, + {odloc, sizeof(odloc)}, + {place, sizeof(place)}, + {prop, sizeof(prop)}, + {tk, sizeof(tk)}, - NULL, 0 + {NULL, 0} }; +int save(outfile) /* Two passes on data: first to get checksum, second */ const char *outfile; /* to output the data using checksum to start random #s */ { @@ -154,6 +155,7 @@ const char *outfile; /* to output the data using checksum to start random #s */ return 0; } +int restore(infile) const char *infile; { @@ -163,6 +165,7 @@ const char *infile; long sum, cksum; int i; + cksum = 0; if ((in = fopen(infile, "rb")) == NULL) { fprintf(stderr, diff --git a/games/adventure/setup.c b/games/adventure/setup.c index aadfd2b..9d31541 100644 --- a/games/adventure/setup.c +++ b/games/adventure/setup.c @@ -73,6 +73,7 @@ static const char rcsid[] = #define LINE 10 /* How many values do we get on a line? */ +int main(argc, argv) int argc; char *argv[]; @@ -88,7 +89,7 @@ char *argv[]; puts(SIG1); puts(SIG2); puts(" */"); - printf("\n\nchar data_file[] =\n{"); + printf("\n\nconst char data_file[] =\n{"); srandom(SEED); count = 0; linestart = YES; diff --git a/games/adventure/subr.c b/games/adventure/subr.c index 7579fe5..f8ba0b2 100644 --- a/games/adventure/subr.c +++ b/games/adventure/subr.c @@ -50,30 +50,43 @@ static const char rcsid[] = #include # include "hdr.h" +static void badmove (void); +static int bitset (int,int); +static int dropper (void); +static int liq2 (int); +static int mback (void); +static int specials (void); +static int trbridge (void); + /* Statement functions */ +int toting(objj) int objj; { if (place[objj] == -1) return(TRUE); else return(FALSE); } +int here(objj) int objj; { if (place[objj]==loc || toting(objj)) return(TRUE); else return(FALSE); } +int at(objj) int objj; { if (place[objj]==loc || fixed[objj]==loc) return(TRUE); else return (FALSE); } +static int liq2(pbotl) int pbotl; { return((1-pbotl)*water+(pbotl/2)*(water+oil)); } +int liq() { int i; i=prop[bottle]; @@ -81,6 +94,7 @@ liq() else return(liq2(-1-i)); } +int liqloc(locc) /* may want to clean this one up a bit */ int locc; { int i,j,l; @@ -91,24 +105,28 @@ int locc; return(liq2(j*l+1)); } +static int bitset(l,n) int l,n; { if (cond[l] & setbit[n]) return(TRUE); return(FALSE); } +int forced(locc) int locc; { if (cond[locc]==2) return(TRUE); return(FALSE); } +int dark() { if ((cond[loc]%2)==0 && (prop[lamp]==0 || !here(lamp))) return(TRUE); return(FALSE); } +int pct(n) int n; { if (ran(100)=43 && k<=50) spk=9; @@ -438,10 +463,11 @@ checkhints() /* 2600 &c */ } +int trsay() /* 9030 */ { int i; if (*wd2!=0) strcpy(wd1,wd2); - i=vocab(wd1,-1); + i=vocab(wd1,-1,0); if (i==62||i==65||i==71||i==2025) { *wd2=0; obj=0; @@ -452,8 +478,9 @@ trsay() /* 9030 */ } +int trtake() /* 9010 */ -{ int i; +{ if (toting(obj)) return(2011); /* 9010 */ spk=25; if (obj==plant&&prop[plant]<=0) spk=115; @@ -497,6 +524,7 @@ l9014: if ((obj==bird||obj==cage)&&prop[bird]!=0) } +static int dropper() /* 9021 */ { k=liq(); if (k==obj) obj=bottle; @@ -507,6 +535,7 @@ dropper() /* 9021 */ return(2012); } +int trdrop() /* 9020 */ { if (toting(rod2)&&obj==rod&&!toting(rod)) obj=rod2; @@ -553,6 +582,7 @@ trdrop() /* 9020 */ } +int tropen() /* 9040 */ { if (obj==clam||obj==oyster) { k=0; /* 9046 */ @@ -608,6 +638,7 @@ tropen() /* 9040 */ } +int trkill() /* 9120 */ { int i; for (i=1; i<=5; i++) @@ -665,6 +696,7 @@ trkill() /* 9120 */ } +int trtoss() /* 9170: throw */ { int i; if (toting(rod2)&&obj==rod&&!toting(rod)) obj=rod2; @@ -719,6 +751,7 @@ trtoss() /* 9170: throw */ } +int trfeed() /* 9210 */ { if (obj==bird) { spk=100; @@ -757,6 +790,7 @@ trfeed() /* 9210 */ } +int trfill() /* 9220 */ { if (obj==vase) { spk=29; diff --git a/games/adventure/vocab.c b/games/adventure/vocab.c index 03d6102..318de18 100644 --- a/games/adventure/vocab.c +++ b/games/adventure/vocab.c @@ -51,11 +51,13 @@ static const char rcsid[] = #include #include "hdr.h" +void dstroy(object) int object; { move(object,0); } +void juggle(object) int object; { int i,j; @@ -67,6 +69,7 @@ int object; } +void move(object,where) int object,where; { int from; @@ -80,12 +83,14 @@ int object,where; } +int put(object,where,pval) int object,where,pval; { move(object,where); return(-1-pval); } +void carry(object,where) int object,where; { int temp; @@ -104,6 +109,7 @@ int object,where; } +void drop(object,where) int object,where; { if (object>100) fixed[object-100]=where; @@ -117,6 +123,7 @@ int object,where; } +int vocab(word,type,value) /* look up or store a word */ const char *word; int type; /* -2 for store, -1 for user word, >=0 for canned lookup*/ @@ -175,25 +182,3 @@ int value; /* used for storing only */ } } } - -prht() /* print hash table */ -{ int i,j,l; - char *c; - struct hashtab *h; - for (i=0; i=HTSIZE) break; - h= &voc[i*10+j]; - putchar(' '); - if (h->val==0) - { printf("-----"); - continue; - } - for (l=0, c=h->atab; l<5; l++) - if ((*c ^ '=')) putchar(*c++ ^ '='); - else putchar(' '); - } - putchar('\n'); - } -} diff --git a/games/adventure/wizard.c b/games/adventure/wizard.c index c4ac3c8..b8b8b6b 100644 --- a/games/adventure/wizard.c +++ b/games/adventure/wizard.c @@ -53,6 +53,9 @@ static const char rcsid[] = #include # include "hdr.h" +static int wizard (void); + +void datime(d,t) int *d,*t; { struct tm *tptr; @@ -73,12 +76,14 @@ int *d,*t; char magic[6]; +void poof() { strcpy(magic, DECR(d,w,a,r,f)); latncy = 45; } +int Start() { int d,t,delay; @@ -104,8 +109,9 @@ Start() return(FALSE); } +static int wizard() /* not as complex as advent/10 (for now) */ -{ int wiz; +{ char *word,*x; if (!yesm(16,0,7)) return(FALSE); mspeak(17); @@ -118,11 +124,10 @@ wizard() /* not as complex as advent/10 (for now) */ return(TRUE); } +void ciao() { char *c; - int outfd, size; - char fname[80], buf[512]; - extern unsigned filesize; + char fname[80]; printf("What would you like to call the saved version?\n"); /* XXX - should use fgetln to avoid arbitrary limit */ @@ -141,6 +146,7 @@ ciao() } +int ran(range) int range; { -- cgit v1.1