Cleaned up light and extinguish
This commit is contained in:
parent
a802db1ce0
commit
53efcdf2d2
1 changed files with 27 additions and 28 deletions
55
actions.c
55
actions.c
|
@ -594,30 +594,27 @@ static int extinguish(token_t verb, obj_t obj)
|
||||||
return GO_UNKNOWN;
|
return GO_UNKNOWN;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (obj == URN) {
|
switch (obj) {
|
||||||
|
case URN:
|
||||||
if (game.prop[URN] != URN_EMPTY) {
|
if (game.prop[URN] != URN_EMPTY) {
|
||||||
state_change(URN, URN_DARK);
|
state_change(URN, URN_DARK);
|
||||||
} else {
|
} else {
|
||||||
pspeak(URN, change, URN_DARK, true);
|
pspeak(URN, change, URN_DARK, true);
|
||||||
}
|
}
|
||||||
return GO_CLEAROBJ;
|
break;
|
||||||
}
|
case LAMP:
|
||||||
|
|
||||||
if (obj == LAMP) {
|
|
||||||
state_change(LAMP, LAMP_DARK);
|
state_change(LAMP, LAMP_DARK);
|
||||||
rspeak(DARK(game.loc) ?
|
rspeak(DARK(game.loc) ?
|
||||||
PITCH_DARK :
|
PITCH_DARK :
|
||||||
NO_MESSAGE);
|
NO_MESSAGE);
|
||||||
return GO_CLEAROBJ;
|
break;
|
||||||
}
|
case DRAGON:
|
||||||
|
case VOLCANO:
|
||||||
if (obj == DRAGON ||
|
|
||||||
obj == VOLCANO) {
|
|
||||||
rspeak(BEYOND_POWER);
|
rspeak(BEYOND_POWER);
|
||||||
return GO_CLEAROBJ;
|
break;
|
||||||
|
default:
|
||||||
|
speak(actions[verb].message);
|
||||||
}
|
}
|
||||||
|
|
||||||
speak(actions[verb].message);
|
|
||||||
return GO_CLEAROBJ;
|
return GO_CLEAROBJ;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -844,36 +841,38 @@ static int light(token_t verb, obj_t obj)
|
||||||
/* Light. Applicable only to lamp and urn. */
|
/* Light. Applicable only to lamp and urn. */
|
||||||
{
|
{
|
||||||
if (obj == INTRANSITIVE) {
|
if (obj == INTRANSITIVE) {
|
||||||
if (HERE(LAMP) && game.prop[LAMP] == LAMP_DARK && game.limit >= 0)
|
int selects = 0;
|
||||||
|
if (HERE(LAMP) && game.prop[LAMP] == LAMP_DARK && game.limit >= 0) {
|
||||||
obj = LAMP;
|
obj = LAMP;
|
||||||
if (HERE(URN) && game.prop[URN] == URN_DARK)
|
selects++;
|
||||||
|
}
|
||||||
|
if (HERE(URN) && game.prop[URN] == URN_DARK) {
|
||||||
obj = URN;
|
obj = URN;
|
||||||
if (obj == INTRANSITIVE ||
|
selects++;
|
||||||
(HERE(LAMP) && game.prop[LAMP] == LAMP_DARK && game.limit >= 0 &&
|
}
|
||||||
HERE(URN) && game.prop[URN] == URN_DARK))
|
if (selects != 1)
|
||||||
return GO_UNKNOWN;
|
return GO_UNKNOWN;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (obj == URN) {
|
switch (obj) {
|
||||||
|
case URN:
|
||||||
state_change(URN, game.prop[URN] == URN_EMPTY ?
|
state_change(URN, game.prop[URN] == URN_EMPTY ?
|
||||||
URN_EMPTY :
|
URN_EMPTY :
|
||||||
URN_LIT);
|
URN_LIT);
|
||||||
return GO_CLEAROBJ;
|
break;
|
||||||
} else {
|
case LAMP:
|
||||||
if (obj != LAMP) {
|
|
||||||
speak(actions[verb].message);
|
|
||||||
return GO_CLEAROBJ;
|
|
||||||
}
|
|
||||||
if (game.limit < 0) {
|
if (game.limit < 0) {
|
||||||
rspeak(LAMP_OUT);
|
rspeak(LAMP_OUT);
|
||||||
return GO_CLEAROBJ;
|
break;
|
||||||
}
|
}
|
||||||
state_change(LAMP, LAMP_BRIGHT);
|
state_change(LAMP, LAMP_BRIGHT);
|
||||||
if (game.wzdark)
|
if (game.wzdark)
|
||||||
return GO_TOP;
|
return GO_TOP;
|
||||||
else
|
break;
|
||||||
return GO_CLEAROBJ;
|
default:
|
||||||
|
speak(actions[verb].message);
|
||||||
}
|
}
|
||||||
|
return GO_CLEAROBJ;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int listen(void)
|
static int listen(void)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue