Fix arithmetic on message number

This commit is contained in:
Peje Nilsson 2017-06-15 17:01:10 +02:00
parent 1896e0f886
commit 29121a82f8

View file

@ -148,12 +148,11 @@ static int bigwords(long foo)
static int bivalve(token_t verb, token_t obj) static int bivalve(token_t verb, token_t obj)
/* Clam/oyster actions */ /* Clam/oyster actions */
{ {
int spk, k=0; int spk;
if (obj == OYSTER)k=1; bool is_oyster = (obj == OYSTER);
/* FIXME: Arithmetic on message numbers in next lines */ spk= is_oyster ? OYSTER_OPENS : PEARL_FALLS;
spk=PEARL_FALLS+k; if (TOTING(obj))spk= is_oyster ? DROP_OYSTER : DROP_CLAM;
if (TOTING(obj))spk=DROP_CLAM+k; if (!TOTING(TRIDNT))spk= is_oyster ? OYSTER_OPENER : CLAM_OPENER;
if (!TOTING(TRIDNT))spk=CLAM_OPENER+k;
if (verb == LOCK)spk=HUH_MAN; if (verb == LOCK)spk=HUH_MAN;
if (spk == PEARL_FALLS) { if (spk == PEARL_FALLS) {
DSTROY(CLAM); DSTROY(CLAM);
@ -270,7 +269,7 @@ static int carry(token_t verb, token_t obj)
} }
if (!TOTING(CAGE))spk=CANNOT_CARRY; if (!TOTING(CAGE))spk=CANNOT_CARRY;
if (TOTING(ROD))spk=BIRD_EVADES; if (TOTING(ROD))spk=BIRD_EVADES;
if (spk/2 == 13) { /* FIXME: Arithmetic on message number */ if (spk == CANNOT_CARRY || spk == BIRD_EVADES) {
RSPEAK(spk); RSPEAK(spk);
return GO_CLEAROBJ; return GO_CLEAROBJ;
} }
@ -583,7 +582,7 @@ static int fly(token_t verb, token_t obj)
if (obj == INTRANSITIVE) { if (obj == INTRANSITIVE) {
if (game.prop[RUG] != 2)spk=RUG_NOTHING2; if (game.prop[RUG] != 2)spk=RUG_NOTHING2;
if (!HERE(RUG))spk=FLAP_ARMS; if (!HERE(RUG))spk=FLAP_ARMS;
if (spk/2 == 112) { /* FIXME: Arithmetic on message numbers */ if (spk == RUG_NOTHING2 || spk == FLAP_ARMS) {
RSPEAK(spk); RSPEAK(spk);
return GO_CLEAROBJ; return GO_CLEAROBJ;
} }
@ -720,10 +719,10 @@ static int lock(token_t verb, token_t obj)
if (!game.panic)game.clock2=15; if (!game.panic)game.clock2=15;
game.panic=true; game.panic=true;
} else { } else {
spk=ALREADY_LOCKED+game.prop[GRATE]; /* FIXME: Arithmetic on message number */ spk=game.prop[GRATE] ? GRATE_LOCKED : ALREADY_LOCKED;
game.prop[GRATE]=1; game.prop[GRATE]=1;
if (verb == LOCK)game.prop[GRATE]=0; if (verb == LOCK)game.prop[GRATE]=0;
spk=spk+2*game.prop[GRATE]; spk=game.prop[GRATE] ? GRATE_UNLOCKED : GRATE_LOCKED;
} }
} }
} }