|
|
DataMuseum.dkPresents historical artifacts from the history of: DKUUG/EUUG Conference tapes |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about DKUUG/EUUG Conference tapes Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - downloadIndex: T w
Length: 1960 (0x7a8)
Types: TextFile
Names: »webster.c«
└─⟦b20c6495f⟧ Bits:30007238 EUUGD18: Wien-båndet, efterår 1987
└─⟦this⟧ »EUUGD18/General/Adventure/src/adv/webster.c«
/*
** Copyright (c) 1985 Ken Wellsch
**
** Permission is hereby granted to all users to possess, use, copy,
** distribute, and modify the programs and files in this package
** provided it is not for direct commercial benefit and secondly,
** that this notice and all modification information be kept and
** maintained in the package.
**
*/
#include "adefs.h"
int webster ()
{
register int key, i, j ;
int totsym, size, val ;
key = SYMTABREC ;
if ( ( size = readk (dbunit,key,codebuf,BUFSIZE*2) ) == ERROR )
error ("Webster","unable to access symbol table (%d)!",key) ;
if ( size != sizeof(short int) )
error ("Webster","bad symbol table size record (%d)!",size) ;
for ( totsym = codebuf[0] ; totsym > 0 ; )
{
key++ ;
if ( ( size = readk (dbunit,key,codebuf,BUFSIZE*2) ) < 1 )
error ("Webster","bad sym table count (%d)!",totsym) ;
size /= sizeof(short int) ;
for ( i = 0 ; i < size ; )
{
for ( j = 0 ; codebuf[i] != EOS ; j++, i++ )
token[j] = codebuf[i] ;
token[j] = token[6] = EOS ;
val = codebuf[i+1] ;
i += 2 ;
define (token,val) ;
totsym-- ;
}
}
nrep = find ("<NREP>") ;
ninit = find ("<NINIT>") ;
nvars = find ("<NVARS>") ;
nobj = find ("<NOBJ>") ;
nplace = find ("<NPLACE>") ;
here = find ("HERE") ;
there = find ("THERE") ;
status = find ("STATUS") ;
argwd[0] = find ("ARG1") ;
argwd[1] = find ("ARG2") ;
if ( nrep < 1 )
error ("Webster","missing repeat code (%d)!",nrep) ;
if ( nobj > OBJECTS )
error ("Webster","too many objects (%d>%d)!",nobj,OBJECTS) ;
if ( nplace > PLACES )
error ("Webster","too many places (%d>%d)!",nplace,PLACES) ;
if ( nvars > VARS )
error ("Webster","too many variables (%d>%d)!",nvars,VARS) ;
if ( class(here) != VARIABLE || class(there) != VARIABLE ||
class(argwd[0]) != VARIABLE || class(argwd[1]) != VARIABLE ||
class(status) != VARIABLE )
error ("Webster","missing special variable!") ;
return ;
}