Cleared up lock/unlock logic

This commit is contained in:
NHOrus 2017-07-06 10:12:55 +03:00
parent de2b1894f2
commit 7be2c233ed

View file

@ -932,29 +932,29 @@ static int lock(token_t verb, obj_t obj)
/* Lock, unlock object. Special stuff for opening clam/oyster /* Lock, unlock object. Special stuff for opening clam/oyster
* and for chain. */ * and for chain. */
if (obj == GRATE ||
obj == CHAIN) { switch (obj) {
case CHAIN:
if (HERE(KEYS)) {
return chain(verb);
} else
rspeak(NO_KEYS);
break;
case GRATE:
if (HERE(KEYS)) { if (HERE(KEYS)) {
if (obj == CHAIN)
return chain(verb);
if (game.closng) { if (game.closng) {
rspeak(EXIT_CLOSED); rspeak(EXIT_CLOSED);
if (!game.panic) if (!game.panic)
game.clock2 = PANICTIME; game.clock2 = PANICTIME;
game.panic = true; game.panic = true;
return GO_CLEAROBJ ;
} else { } else {
state_change(GRATE, (verb == LOCK) ? state_change(GRATE, (verb == LOCK) ?
GRATE_CLOSED : GRATE_CLOSED :
GRATE_OPEN); GRATE_OPEN);
return GO_CLEAROBJ;
} }
} } else
rspeak(NO_KEYS); rspeak(NO_KEYS);
return GO_CLEAROBJ; break;
}
switch (obj) {
case CLAM: case CLAM:
if (verb == LOCK) if (verb == LOCK)
rspeak(HUH_MAN); rspeak(HUH_MAN);
@ -966,14 +966,13 @@ static int lock(token_t verb, obj_t obj)
drop(PEARL, LOC_CULDESAC); drop(PEARL, LOC_CULDESAC);
rspeak(PEARL_FALLS); rspeak(PEARL_FALLS);
} }
return GO_CLEAROBJ; break;
case OYSTER: case OYSTER:
if (verb == LOCK) if (verb == LOCK)
rspeak(HUH_MAN); rspeak(HUH_MAN);
else else
rspeak(OYSTER_OPENER); rspeak(OYSTER_OPENER);
break;
return GO_CLEAROBJ;
case DOOR: case DOOR:
rspeak((game.prop[DOOR] == DOOR_UNRUSTED) ? OK_MAN : RUSTY_DOOR); rspeak((game.prop[DOOR] == DOOR_UNRUSTED) ? OK_MAN : RUSTY_DOOR);
break; break;