|
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 v
Length: 2030 (0x7ee) Types: TextFile Names: »values.c«
└─⟦b20c6495f⟧ Bits:30007238 EUUGD18: Wien-båndet, efterår 1987 └─⟦this⟧ »EUUGD18/General/Adventure/src/adv/values.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" static int powof2[16] = { 000001, 000002, 000004, 000010, 000020, 000040, 000100, 000200, 000400, 001000, 002000, 004000, 010000, 020000, 040000, 0100000 } ; int bitval (key) register int key ; { register int val ; switch (class(key)) { case INIT: if ( key < 0 || key > 15 ) error ("Bitval","bad key %d!",key) ; val = powof2[key] ; break ; case OBJECT: val = objbit[indx(key)] ; break ; case VARIABLE: val = varval[indx(key)] ; /* single indirection */ switch (class(val)) { case OBJECT: val = objbit[indx(val)] ; break ; case PLACE: val = plcbit[indx(val)] ; break ; default: val = varbit[indx(key)] ; break ; } break ; case PLACE: val = plcbit[indx(key)] ; break ; default: error ("Bitval","bad key %d!",key) ; break ; } return (val) ; } int setbit (key,bits) int key, bits ; { register int val ; switch (class(key)) { case OBJECT: objbit[indx(key)] = bits ; break ; case VARIABLE: varbit[indx(key)] = bits ; val = varval[indx(key)] ; switch (class(val)) { case OBJECT: objbit[indx(val)] = bits ; break ; case PLACE: plcbit[indx(val)] = bits ; break ; } break ; case PLACE: plcbit[indx(key)] = bits ; break ; default: error ("SetBit","bad key %d!",key) ; break ; } return ; } int setval (key,val) int key, val ; { switch (class(key)) { case OBJECT: objval[indx(key)] = val ; break ; case VARIABLE: varval[indx(key)] = val ; break ; default: error ("Setval","bad key %d!",key) ; break ; } return ; }