obj = LAMP;
if (HERE(URN) && game.prop[URN] == URN_LIT)
obj = URN;
- if (obj == INTRANSITIVE)
+ if (obj == INTRANSITIVE ||
+ HERE(LAMP) && game.prop[LAMP] == LAMP_BRIGHT &&
+ HERE(URN) && game.prop[URN] == URN_LIT)
return GO_UNKNOWN;
}
obj = LAMP;
if (HERE(URN) && game.prop[URN] == URN_DARK)
obj = URN;
- if (obj == INTRANSITIVE || obj == 0 || obj > NOBJECTS)
+ if (obj == INTRANSITIVE ||
+ HERE(LAMP) && game.prop[LAMP] == LAMP_DARK && game.limit >= 0 &&
+ HERE(URN) && game.prop[URN] == URN_DARK)
return GO_UNKNOWN;
}
obj = DOOR;
if (AT(GRATE))
obj = GRATE;
- if (obj != 0 && HERE(CHAIN))
- return GO_UNKNOWN;
if (HERE(CHAIN))
obj = CHAIN;
if (obj == 0 || obj == INTRANSITIVE) {