Unspk'd bivalve action, exposing more untested surface

This commit is contained in:
NHOrus 2017-07-03 06:46:24 +03:00
parent ac65f3fd5f
commit fc5267fe8b

View file

@ -205,21 +205,26 @@ static int bigwords(token_t 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;
bool is_oyster = (obj == OYSTER); bool is_oyster = (obj == OYSTER);
spk = is_oyster ? OYSTER_OPENS : PEARL_FALLS; if (verb == LOCK) {
if (TOTING(obj)) rspeak(HUH_MAN);
spk = is_oyster ? DROP_OYSTER : DROP_CLAM; return GO_CLEAROBJ;
if (!TOTING(TRIDENT)) }
spk = is_oyster ? OYSTER_OPENER : CLAM_OPENER; if (!TOTING(TRIDENT)) {
if (verb == LOCK) rspeak(is_oyster ? OYSTER_OPENER : CLAM_OPENER);
spk = HUH_MAN; return GO_CLEAROBJ;
if (spk == PEARL_FALLS) { }
if (TOTING(obj)) {
rspeak( is_oyster ? DROP_OYSTER : DROP_CLAM);
return GO_CLEAROBJ;
}
if (!is_oyster) {
DESTROY(CLAM); DESTROY(CLAM);
drop(OYSTER, game.loc); drop(OYSTER, game.loc);
drop(PEARL, LOC_CULDESAC); drop(PEARL, LOC_CULDESAC);
} }
rspeak(spk); rspeak(is_oyster ? OYSTER_OPENS : PEARL_FALLS);
return GO_CLEAROBJ; return GO_CLEAROBJ;
} }