Be explicitely intransitive
This commit is contained in:
parent
ca7ac4063f
commit
adab8e2190
1 changed files with 13 additions and 13 deletions
26
actions.c
26
actions.c
|
@ -15,8 +15,7 @@ static int attack(struct command_t *command)
|
||||||
vocab_t verb = command->verb;
|
vocab_t verb = command->verb;
|
||||||
obj_t obj = command->obj;
|
obj_t obj = command->obj;
|
||||||
|
|
||||||
if (obj == NO_OBJECT ||
|
if (obj == INTRANSITIVE) {
|
||||||
obj == INTRANSITIVE) {
|
|
||||||
int changes = 0;
|
int changes = 0;
|
||||||
if (atdwrf(game.loc) > 0) {
|
if (atdwrf(game.loc) > 0) {
|
||||||
obj = DWARF;
|
obj = DWARF;
|
||||||
|
@ -43,7 +42,7 @@ static int attack(struct command_t *command)
|
||||||
++changes;
|
++changes;
|
||||||
}
|
}
|
||||||
/* check for low-priority targets */
|
/* check for low-priority targets */
|
||||||
if (obj == NO_OBJECT) {
|
if (obj == INTRANSITIVE) {
|
||||||
/* Can't attack bird or machine by throwing axe. */
|
/* Can't attack bird or machine by throwing axe. */
|
||||||
if (HERE(BIRD) && verb != THROW) {
|
if (HERE(BIRD) && verb != THROW) {
|
||||||
obj = BIRD;
|
obj = BIRD;
|
||||||
|
@ -153,7 +152,7 @@ static int attack(struct command_t *command)
|
||||||
}
|
}
|
||||||
|
|
||||||
switch (obj) {
|
switch (obj) {
|
||||||
case NO_OBJECT:
|
case INTRANSITIVE:
|
||||||
rspeak(NO_TARGET);
|
rspeak(NO_TARGET);
|
||||||
break;
|
break;
|
||||||
case CLAM:
|
case CLAM:
|
||||||
|
@ -527,7 +526,7 @@ static int drink(token_t verb, obj_t obj)
|
||||||
/* Drink. If no object, assume water and look for it here. If water is in
|
/* Drink. If no object, assume water and look for it here. If water is in
|
||||||
* the bottle, drink that, else must be at a water loc, so drink stream. */
|
* the bottle, drink that, else must be at a water loc, so drink stream. */
|
||||||
{
|
{
|
||||||
if (obj == NO_OBJECT && LIQLOC(game.loc) != WATER &&
|
if (obj == INTRANSITIVE && LIQLOC(game.loc) != WATER &&
|
||||||
(LIQUID() != WATER || !HERE(BOTTLE))) {
|
(LIQUID() != WATER || !HERE(BOTTLE))) {
|
||||||
return GO_UNKNOWN;
|
return GO_UNKNOWN;
|
||||||
}
|
}
|
||||||
|
@ -539,7 +538,7 @@ static int drink(token_t verb, obj_t obj)
|
||||||
return GO_CLEAROBJ;
|
return GO_CLEAROBJ;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (obj != NO_OBJECT && obj != WATER) {
|
if (obj != INTRANSITIVE && obj != WATER) {
|
||||||
rspeak(RIDICULOUS_ATTEMPT);
|
rspeak(RIDICULOUS_ATTEMPT);
|
||||||
return GO_CLEAROBJ;
|
return GO_CLEAROBJ;
|
||||||
}
|
}
|
||||||
|
@ -726,11 +725,11 @@ int fill(token_t verb, obj_t obj)
|
||||||
game.place[k] = LOC_NOWHERE;
|
game.place[k] = LOC_NOWHERE;
|
||||||
return GO_CLEAROBJ;
|
return GO_CLEAROBJ;
|
||||||
}
|
}
|
||||||
if (obj != NO_OBJECT && obj != BOTTLE) {
|
if (obj != INTRANSITIVE && obj != BOTTLE) {
|
||||||
speak(actions[verb].message);
|
speak(actions[verb].message);
|
||||||
return GO_CLEAROBJ;
|
return GO_CLEAROBJ;
|
||||||
}
|
}
|
||||||
if (obj == NO_OBJECT && !HERE(BOTTLE))
|
if (obj == INTRANSITIVE && !HERE(BOTTLE))
|
||||||
return GO_UNKNOWN;
|
return GO_UNKNOWN;
|
||||||
|
|
||||||
if (HERE(URN) && game.prop[URN] != URN_EMPTY) {
|
if (HERE(URN) && game.prop[URN] != URN_EMPTY) {
|
||||||
|
@ -989,7 +988,7 @@ static int pour(token_t verb, obj_t obj)
|
||||||
* special tests for pouring water or oil on plant or rusty door. */
|
* special tests for pouring water or oil on plant or rusty door. */
|
||||||
{
|
{
|
||||||
if (obj == BOTTLE ||
|
if (obj == BOTTLE ||
|
||||||
obj == NO_OBJECT)
|
obj == INTRANSITIVE)
|
||||||
obj = LIQUID();
|
obj = LIQUID();
|
||||||
if (obj == NO_OBJECT)
|
if (obj == NO_OBJECT)
|
||||||
return GO_UNKNOWN;
|
return GO_UNKNOWN;
|
||||||
|
@ -1180,7 +1179,7 @@ static int throw (struct command_t *command)
|
||||||
state_change(AXE, AXE_LOST);
|
state_change(AXE, AXE_LOST);
|
||||||
return GO_CLEAROBJ;
|
return GO_CLEAROBJ;
|
||||||
}
|
}
|
||||||
command->obj = NO_OBJECT;
|
command->obj = INTRANSITIVE;
|
||||||
return (attack(command));
|
return (attack(command));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1353,13 +1352,14 @@ int action(struct command_t *command)
|
||||||
return GO_CLEAROBJ;
|
return GO_CLEAROBJ;
|
||||||
}
|
}
|
||||||
case ATTACK:
|
case ATTACK:
|
||||||
|
command->obj = INTRANSITIVE;
|
||||||
return attack(command);
|
return attack(command);
|
||||||
case POUR:
|
case POUR:
|
||||||
return pour(command->verb, command->obj);
|
return pour(command->verb, INTRANSITIVE);
|
||||||
case EAT:
|
case EAT:
|
||||||
return eat(command->verb, INTRANSITIVE);
|
return eat(command->verb, INTRANSITIVE);
|
||||||
case DRINK:
|
case DRINK:
|
||||||
return drink(command->verb, command->obj);
|
return drink(command->verb, INTRANSITIVE);
|
||||||
case RUB:
|
case RUB:
|
||||||
return GO_UNKNOWN;
|
return GO_UNKNOWN;
|
||||||
case THROW:
|
case THROW:
|
||||||
|
@ -1373,7 +1373,7 @@ int action(struct command_t *command)
|
||||||
case FEED:
|
case FEED:
|
||||||
return GO_UNKNOWN;
|
return GO_UNKNOWN;
|
||||||
case FILL:
|
case FILL:
|
||||||
return fill(command->verb, command->obj);
|
return fill(command->verb, INTRANSITIVE);
|
||||||
case BLAST:
|
case BLAST:
|
||||||
blast();
|
blast();
|
||||||
return GO_CLEAROBJ;
|
return GO_CLEAROBJ;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue