diff options
author | lukem <lukem@NetBSD.org> | 1997-10-11 01:53:21 +0000 |
---|---|---|
committer | lukem <lukem@NetBSD.org> | 1997-10-11 01:53:21 +0000 |
commit | 7a7d157b6dfb2274277e61ea5f1c8a97e88e73ba (patch) | |
tree | d315e6e1cff5b3f0deb38704e741f5f580ea319d /adventure/vocab.c | |
parent | a020fc98d8da9cac6990006871414e8654ac5c1d (diff) | |
download | bsdgames-darwin-7a7d157b6dfb2274277e61ea5f1c8a97e88e73ba.tar.gz bsdgames-darwin-7a7d157b6dfb2274277e61ea5f1c8a97e88e73ba.tar.zst bsdgames-darwin-7a7d157b6dfb2274277e61ea5f1c8a97e88e73ba.zip |
KNFify
Diffstat (limited to 'adventure/vocab.c')
-rw-r--r-- | adventure/vocab.c | 259 |
1 files changed, 143 insertions, 116 deletions
diff --git a/adventure/vocab.c b/adventure/vocab.c index 25487241..2090b470 100644 --- a/adventure/vocab.c +++ b/adventure/vocab.c @@ -1,4 +1,4 @@ -/* $NetBSD: vocab.c,v 1.4 1997/10/10 11:59:56 lukem Exp $ */ +/* $NetBSD: vocab.c,v 1.5 1997/10/11 01:53:38 lukem Exp $ */ /*- * Copyright (c) 1991, 1993 @@ -43,9 +43,9 @@ #if 0 static char sccsid[] = "@(#)vocab.c 8.1 (Berkeley) 5/31/93"; #else -__RCSID("$NetBSD: vocab.c,v 1.4 1997/10/10 11:59:56 lukem Exp $"); +__RCSID("$NetBSD: vocab.c,v 1.5 1997/10/11 01:53:38 lukem Exp $"); #endif -#endif /* not lint */ +#endif /* not lint */ /* Re-coding of advent in C: data structure routines */ @@ -56,184 +56,211 @@ __RCSID("$NetBSD: vocab.c,v 1.4 1997/10/10 11:59:56 lukem Exp $"); void dstroy(object) -int object; -{ move(object,0); + int object; +{ + move(object, 0); } void juggle(object) -int object; -{ int i,j; + int object; +{ + int i, j; - i=place[object]; - j=fixed[object]; - move(object,i); - move(object+100,j); + i = place[object]; + j = fixed[object]; + move(object, i); + move(object + 100, j); } void -move(object,where) -int object,where; -{ int from; +move(object, where) + int object, where; +{ + int from; - if (object<=100) - from=place[object]; + if (object <= 100) + from = place[object]; else - from=fixed[object-100]; - if (from>0 && from<=300) carry(object,from); - drop(object,where); + from = fixed[object - 100]; + if (from > 0 && from <= 300) + carry(object, from); + drop(object, where); } int -put(object,where,pval) -int object,where,pval; -{ move(object,where); - return(-1-pval); +put(object, where, pval) + int object, where, pval; +{ + move(object, where); + return (-1 - pval); } void -carry(object,where) -int object,where; -{ int temp; +carry(object, where) + int object, where; +{ + int temp; - if (object<=100) - { if (place[object]== -1) return; + if (object <= 100) { + if (place[object] == -1) + return; place[object] = -1; holdng++; } - if (atloc[where]==object) - { atloc[where]=links[object]; + if (atloc[where] == object) { + atloc[where] = links[object]; return; } - for (temp=atloc[where]; links[temp]!=object; temp=links[temp]); - links[temp]=links[object]; + for (temp = atloc[where]; links[temp] != object; temp = links[temp]); + links[temp] = links[object]; } void -drop(object,where) -int object,where; -{ if (object>100) fixed[object-100]=where; - else - { if (place[object]== -1) holdng--; - place[object]=where; +drop(object, where) + int object, where; +{ + if (object > 100) + fixed[object - 100] = where; + else { + if (place[object] == -1) + holdng--; + place[object] = where; } - if (where<=0) return; - links[object]=atloc[where]; - atloc[where]=object; + if (where <= 0) + return; + links[object] = atloc[where]; + atloc[where] = object; } int -vocab(word,type,value) /* look up or store a word */ -char *word; -int type; /* -2 for store, -1 for user word, >=0 for canned lookup*/ -int value; /* used for storing only */ -{ int adr; - char *s,*t; - int hash, i; +vocab(word, type, value) /* look up or store a word */ + char *word; + int type; /* -2 for store, -1 for user word, >=0 for + * canned lookup */ + int value; /* used for storing only */ +{ + int adr; + char *s, *t; + int hash, i; struct hashtab *h; - for (hash=0,s=word,i=0; i<5 &&*s; i++) /* some kind of hash */ - hash += *s++; /* add all chars in the word */ - hash = (hash*3719)&077777; /* pulled that one out of a hat */ - hash %= HTSIZE; /* put it into range of table */ - - for(adr=hash;; adr++) /* look for entry in table */ - { if (adr==HTSIZE) adr=0; /* wrap around */ - h = &voc[adr]; /* point at the entry */ - switch(type) - { case -2: /* fill in entry */ - if (h->val) /* already got an entry? */ + for (hash = 0, s = word, i = 0; i < 5 && *s; i++) /* some kind of hash */ + hash += *s++; /* add all chars in the word */ + hash = (hash * 3719) & 077777; /* pulled that one out of a hat */ + hash %= HTSIZE; /* put it into range of table */ + + for (adr = hash;; adr++) { /* look for entry in table */ + if (adr == HTSIZE) + adr = 0;/* wrap around */ + h = &voc[adr]; /* point at the entry */ + switch (type) { + case -2: /* fill in entry */ + if (h->val) /* already got an entry? */ goto exitloop2; - h->val=value; - h->atab=malloc(length(word)); - for (s=word,t=h->atab; *s;) + h->val = value; + h->atab = malloc(length(word)); + for (s = word, t = h->atab; *s;) *t++ = *s++ ^ '='; - *t=0^'='; + *t = 0 ^ '='; /* encrypt slightly to thwart core reader */ - /* printf("Stored \"%s\" (%d ch) as entry %d\n", */ - /* word, length(word), adr); */ - return(0); /* entry unused */ - case -1: /* looking up user word */ - if (h->val==0) return(-1); /* not found */ - for (s=word, t=h->atab;*t ^ '=';) + /* printf("Stored \"%s\" (%d ch) as entry %d\n", */ + /* word, length(word), adr); */ + return (0); /* entry unused */ + case -1: /* looking up user word */ + if (h->val == 0) + return (-1); /* not found */ + for (s = word, t = h->atab; *t ^ '=';) if ((*s++ ^ '=') != *t++) goto exitloop2; - if ((*s ^ '=') != *t && s-word<5) goto exitloop2; + if ((*s ^ '=') != *t && s - word < 5) + goto exitloop2; /* the word matched o.k. */ - return(h->val); - default: /* looking up known word */ - if (h->val==0) - { printf("Unable to find %s in vocab\n",word); + return (h->val); + default: /* looking up known word */ + if (h->val == 0) { + printf("Unable to find %s in vocab\n", word); exit(0); } - for (s=word, t=h->atab;*t ^ '=';) - if ((*s++ ^ '=') != *t++) goto exitloop2; + for (s = word, t = h->atab; *t ^ '=';) + if ((*s++ ^ '=') != *t++) + goto exitloop2; /* the word matched o.k. */ - if (h->val/1000 != type) continue; - return(h->val%1000); + if (h->val / 1000 != type) + continue; + return (h->val % 1000); } - exitloop2: /* hashed entry does not match */ - if (adr+1==hash || (adr==HTSIZE && hash==0)) - { printf("Hash table overflow\n"); +exitloop2: /* hashed entry does not match */ + if (adr + 1 == hash || (adr == HTSIZE && hash == 0)) { + printf("Hash table overflow\n"); exit(0); } } } void -copystr(w1,w2) /* copy one string to another */ -char *w1,*w2; -{ char *s,*t; - for (s=w1,t=w2; *s;) +copystr(w1, w2) /* copy one string to another */ + char *w1, *w2; +{ + char *s, *t; + for (s = w1, t = w2; *s;) *t++ = *s++; - *t=0; + *t = 0; } int -weq(w1,w2) /* compare words */ -char *w1,*w2; /* w1 is user, w2 is system */ -{ char *s,*t; - int i; - s=w1; - t=w2; - for (i=0; i<5; i++) /* compare at most 5 chars */ - { if (*t==0 && *s==0) - return(TRUE); - if (*s++ != *t++) return(FALSE); +weq(w1, w2) /* compare words */ + char *w1, *w2; /* w1 is user, w2 is system */ +{ + char *s, *t; + int i; + s = w1; + t = w2; + for (i = 0; i < 5; i++) { /* compare at most 5 chars */ + if (*t == 0 && *s == 0) + return (TRUE); + if (*s++ != *t++) + return (FALSE); } - return(TRUE); + return (TRUE); } int -length(str) /* includes 0 at end */ -char *str; -{ char *s; - int n; - for (n=0,s=str; *s++;) n++; - return(n+1); +length(str) /* includes 0 at end */ + char *str; +{ + char *s; + int n; + for (n = 0, s = str; *s++;) + n++; + return (n + 1); } void -prht() /* print hash table */ -{ int i,j,l; - char *c; +prht() +{ /* print hash table */ + int i, j, l; + char *c; struct hashtab *h; - for (i=0; i<HTSIZE/10+1; i++) - { printf("%4d",i*10); - for (j=0; j<10; j++) - { if (i*10+j>=HTSIZE) break; - h= &voc[i*10+j]; + for (i = 0; i < HTSIZE / 10 + 1; i++) { + printf("%4d", i * 10); + for (j = 0; j < 10; j++) { + if (i * 10 + j >= HTSIZE) + break; + h = &voc[i * 10 + j]; putchar(' '); - if (h->val==0) - { printf("-----"); + if (h->val == 0) { + printf("-----"); continue; } - for (l=0, c=h->atab; l<5; l++) - if ((*c ^ '=')) putchar(*c++ ^ '='); - else putchar(' '); + for (l = 0, c = h->atab; l < 5; l++) + if ((*c ^ '=')) + putchar(*c++ ^ '='); + else + putchar(' '); } putchar('\n'); } |