static int bivalve(token_t verb, token_t obj)
/* Clam/oyster actions */
{
- int k=0;
+ int spk, k=0;
if (obj == OYSTER)k=1;
- SPK=124+k;
- if (TOTING(obj))SPK=120+k;
- if (!TOTING(TRIDNT))SPK=122+k;
- if (verb == LOCK)SPK=61;
- if (SPK == 124) {
+ spk=124+k;
+ if (TOTING(obj))spk=120+k;
+ if (!TOTING(TRIDNT))spk=122+k;
+ if (verb == LOCK)spk=61;
+ if (spk == 124) {
DSTROY(CLAM);
DROP(OYSTER,game.loc);
DROP(PEARL,105);
}
- RSPEAK(SPK);
+ RSPEAK(spk);
return 2012;
}
static int blast(void)
/* Blast. No effect unless you've got dynamite, which is a neat trick! */
{
- if (game.prop[ROD2] < 0 || !game.closed) {RSPEAK(SPK); return 2012;}
+ if (game.prop[ROD2] < 0 || !game.closed)
+ {
+ RSPEAK(67);
+ return 2012;
+ }
game.bonus=133;
- if (game.loc == 115)game.bonus=134;
- if (HERE(ROD2))game.bonus=135;
+ if (game.loc == 115)
+ game.bonus=134;
+ if (HERE(ROD2))
+ game.bonus=135;
RSPEAK(game.bonus);
score(0);
}
static int vbreak(token_t obj)
/* Break. Only works for mirror in repository and, of course, the vase. */
{
+ /* FIXME: defaults from ACTSPK */
if (obj == MIRROR)SPK=148;
if (obj == VASE && game.prop[VASE] == 0) {
SPK=198;
static int brief(void)
/* Brief. Intransitive only. Suppress long descriptions after first time. */
{
- SPK=156;
game.abbnum=10000;
game.detail=3;
- RSPEAK(SPK);
+ RSPEAK(156);
return 2012;
}
* take one without the other). Liquids also special, since they depend on
* status of bottle. Also various side effects, etc. */
{
+ int spk;
if (obj == INTRANSITIVE) {
/* Carry, no object given yet. OK if only one object present. */
if(game.atloc[game.loc] == 0 ||
obj=game.atloc[game.loc];
}
- if (TOTING(obj)) {RSPEAK(SPK); return 2012;}
- SPK=25;
- if (obj == PLANT && game.prop[PLANT] <= 0)SPK=115;
- if (obj == BEAR && game.prop[BEAR] == 1)SPK=169;
- if (obj == CHAIN && game.prop[BEAR] != 0)SPK=170;
- if (obj == URN)SPK=215;
- if (obj == CAVITY)SPK=217;
- if (obj == BLOOD)SPK=239;
- if (obj == RUG && game.prop[RUG] == 2)SPK=222;
- if (obj == SIGN)SPK=196;
+ if (TOTING(obj)) {RSPEAK(24); return 2012;}
+ spk=25;
+ if (obj == PLANT && game.prop[PLANT] <= 0)spk=115;
+ if (obj == BEAR && game.prop[BEAR] == 1)spk=169;
+ if (obj == CHAIN && game.prop[BEAR] != 0)spk=170;
+ if (obj == URN)spk=215;
+ if (obj == CAVITY)spk=217;
+ if (obj == BLOOD)spk=239;
+ if (obj == RUG && game.prop[RUG] == 2)spk=222;
+ if (obj == SIGN)spk=196;
if (obj == MESSAG) {
- SPK=190;
+ spk=190;
+ return 2012;
DSTROY(MESSAG);
}
if (game.fixed[obj] != 0) {
- RSPEAK(SPK);
+ RSPEAK(spk);
return 2012;
}
if (obj == WATER || obj == OIL) {
if (!HERE(BOTTLE) || LIQUID() != obj) {
if (TOTING(BOTTLE) && game.prop[BOTTLE] == 1)
return(fill(BOTTLE));
- if (game.prop[BOTTLE] != 1)SPK=105;
- if (!TOTING(BOTTLE))SPK=104;
- RSPEAK(SPK);
+ if (game.prop[BOTTLE] != 1)spk=105;
+ if (!TOTING(BOTTLE))spk=104;
+ RSPEAK(spk);
return 2012;
}
obj = BOTTLE;
}
- SPK=92;
+ spk=92;
if (game.holdng >= INVLIMIT) {
- RSPEAK(SPK);
+ RSPEAK(spk);
return 2012;
}
else if (obj == BIRD && game.prop[BIRD] != 1 && -1-game.prop[BIRD] != 1) {
RSPEAK(238);
return 2012;
}
- if (!TOTING(CAGE))SPK=27;
- if (TOTING(ROD))SPK=26;
- if (SPK/2 == 13) {
- RSPEAK(SPK);
+ if (!TOTING(CAGE))spk=27;
+ if (TOTING(ROD))spk=26;
+ if (spk/2 == 13) {
+ RSPEAK(spk);
return 2012;
}
game.prop[BIRD]=1;
static int chain(token_t verb)
/* Do something to the bear's chain */
{
+ int spk;
if (verb != LOCK) {
- SPK=171;
- if (game.prop[BEAR] == 0)SPK=41;
- if (game.prop[CHAIN] == 0)SPK=37;
- if (SPK != 171) {RSPEAK(SPK); return 2012;}
+ spk=171;
+ if (game.prop[BEAR] == 0)spk=41;
+ if (game.prop[CHAIN] == 0)spk=37;
+ if (spk != 171) {RSPEAK(spk); return 2012;}
game.prop[CHAIN]=0;
game.fixed[CHAIN]=0;
if (game.prop[BEAR] != 3)game.prop[BEAR]=2;
game.fixed[BEAR]=2-game.prop[BEAR];
} else {
- SPK=172;
- if (game.prop[CHAIN] != 0)SPK=34;
- if (game.loc != PLAC[CHAIN])SPK=173;
- if (SPK != 172) {RSPEAK(SPK); return 2012;}
+ spk=172;
+ if (game.prop[CHAIN] != 0)spk=34;
+ if (game.loc != PLAC[CHAIN])spk=173;
+ if (spk != 172) {RSPEAK(spk); return 2012;}
game.prop[CHAIN]=2;
if (TOTING(CHAIN))DROP(CHAIN,game.loc);
game.fixed[CHAIN]= -1;
}
- RSPEAK(SPK);
+ RSPEAK(spk);
return 2012;
}
* mad. Bear, special. */
{
if (obj == BIRD) {
- SPK=100;
- RSPEAK(SPK);
+ RSPEAK(100);
return 2012;
}
if (!(obj != SNAKE && obj != DRAGON && obj != TROLL)) {
- SPK=102;
- if (obj == DRAGON && game.prop[DRAGON] != 0)SPK=110;
- if (obj == TROLL)SPK=182;
+ int spk=102;
+ if (obj == DRAGON && game.prop[DRAGON] != 0)spk=110;
+ if (obj == TROLL)spk=182;
if (obj != SNAKE || game.closed || !HERE(BIRD))
- {RSPEAK(SPK); return 2012;}
- SPK=101;
+ {
+ RSPEAK(spk);
+ return 2012;
+ }
DSTROY(BIRD);
game.prop[BIRD]=0;
- RSPEAK(SPK);
+ RSPEAK(101);
return 2012;
}
if (obj == DWARF) {
if (!HERE(FOOD))
- {RSPEAK(SPK); return 2012;}
- SPK=103;
+ {
+ RSPEAK(SPK); /* FIXME: Defaults from ACTSPK */
+ return 2012;
+ }
game.dflag=game.dflag+2;
- RSPEAK(SPK);
+ RSPEAK(103);
return 2012;
}
for (i=1; i<=NOBJECTS; i++) {
if (i == BEAR || !TOTING(i))
continue;
- if (SPK == 98)RSPEAK(99);
+ if (SPK == 98)
+ RSPEAK(99);
game.blklin=false;
PSPEAK(i,-1);
game.blklin=true;
int light(token_t obj)
/* Light. Applicable only to lamp and urn. */
{
+ int spk;
if (obj == INTRANSITIVE) {
if (HERE(LAMP) && game.prop[LAMP] == 0 && game.limit >= 0)obj=LAMP;
if (HERE(URN) && game.prop[URN] == 1)obj=obj*NOBJECTS+URN;
}
if (obj == URN) {
- SPK=38;
+ spk=38;
if (game.prop[URN] == 0)
- {RSPEAK(SPK); return 2012;}
- SPK=209;
+ {RSPEAK(spk); return 2012;}
+ spk=209;
game.prop[URN]=2;
- RSPEAK(SPK);
+ RSPEAK(spk);
return 2012;
} else {
if (obj != LAMP)
{
- RSPEAK(SPK);
+ RSPEAK(spk);
return 2012;
}
- SPK=184;
+ spk=184;
if (game.limit < 0) {
- RSPEAK(SPK);
+ RSPEAK(spk);
return 2012;
}
game.prop[LAMP]=1;
/* Listen. Intransitive only. Print stuff based on objsnd/locsnd. */
{
int i, k;
- SPK=228;
+ int spk=228;
k=LOCSND[game.loc];
if (k != 0) {
RSPEAK(labs(k));
if (k < 0) return(2012);
- SPK=0;
+ spk=0;
}
SETPRM(1,game.zzword,0);
for (i=1; i<=NOBJECTS; i++) {
if (!HERE(i) || OBJSND[i] == 0 || game.prop[i] < 0)
continue;
PSPEAK(i,OBJSND[i]+game.prop[i]);
- SPK=0;
+ spk=0;
if (i == BIRD && OBJSND[i]+game.prop[i] == 8)
DSTROY(BIRD);
}
- RSPEAK(SPK);
+ RSPEAK(spk);
return 2012;
}
* troll. Treasures special for troll. */
{
if (TOTING(ROD2) && obj == ROD && !TOTING(ROD))obj=ROD2;
- if (!TOTING(obj))
- {RSPEAK(SPK); return 2012;}
+ if (!TOTING(obj)) {
+ RSPEAK(SPK); /* FIXME: Defaults from ACTSPK */
+ return 2012;
+ }
if (obj >= 50 && obj <= MAXTRS && AT(TROLL)) {
SPK=159;
/* Snarf a treasure for the troll. */