X-Git-Url: https://jxself.org/git/?a=blobdiff_plain;f=actions.c;h=52c041791f6c67b90574dfb79a86c03268b2f419;hb=38970a1c98b3b9cd3e74c240e6662f090849758a;hp=44fc2012e3f7f8085b6db7f2e03c033f926bd2ff;hpb=e1f52f4e314e4135c52325ac55b207c6bf8a3451;p=open-adventure.git diff --git a/actions.c b/actions.c index 44fc201..52c0417 100644 --- a/actions.c +++ b/actions.c @@ -518,23 +518,25 @@ static int eat(token_t verb, token_t obj) /* Eat. Intransitive: assume food if present, else ask what. Transitive: food * ok, some things lose appetite, rest are ridiculous. */ { - int spk = actions[verb].message; if (obj == INTRANSITIVE) { if (!HERE(FOOD)) return GO_UNKNOWN; DESTROY(FOOD); - spk = THANKS_DELICIOUS; - } else { - if (obj == FOOD) { - DESTROY(FOOD); - spk = THANKS_DELICIOUS; - } - if (obj == BIRD || obj == SNAKE || obj == CLAM || obj == OYSTER || obj == - DWARF || obj == DRAGON || obj == TROLL || obj == BEAR || obj == - OGRE) - spk = LOST_APPETITE; + rspeak(THANKS_DELICIOUS); + return GO_CLEAROBJ; } - rspeak(spk); + if (obj == FOOD) { + DESTROY(FOOD); + rspeak(THANKS_DELICIOUS); + return GO_CLEAROBJ; + } + if (obj == BIRD || obj == SNAKE || obj == CLAM || obj == OYSTER || obj == + DWARF || obj == DRAGON || obj == TROLL || obj == BEAR || obj == + OGRE) { + rspeak(LOST_APPETITE); + return GO_CLEAROBJ; + } + rspeak(actions[verb].message); return GO_CLEAROBJ; } @@ -871,33 +873,30 @@ static int pour(token_t verb, token_t obj) /* Pour. If no object, or object is bottle, assume contents of bottle. * special tests for pouring water or oil on plant or rusty door. */ { - int spk = actions[verb].message; if (obj == BOTTLE || obj == NO_OBJECT) obj = LIQUID(); if (obj == NO_OBJECT) return GO_UNKNOWN; if (!TOTING(obj)) { - rspeak(spk); + rspeak(actions[verb].message); return GO_CLEAROBJ; } - spk = CANT_POUR; + if (obj != OIL && obj != WATER) { - rspeak(spk); + rspeak(CANT_POUR); return GO_CLEAROBJ; } if (HERE(URN) && game.prop[URN] == URN_EMPTY) return fill(verb, URN); game.prop[BOTTLE] = EMPTY_BOTTLE; game.place[obj] = LOC_NOWHERE; - spk = GROUND_WET; if (!(AT(PLANT) || AT(DOOR))) { - rspeak(spk); + rspeak(GROUND_WET); return GO_CLEAROBJ; } if (!AT(DOOR)) { - spk = SHAKING_LEAVES; if (obj != WATER) { - rspeak(spk); + rspeak(SHAKING_LEAVES); return GO_CLEAROBJ; } pspeak(PLANT, look, game.prop[PLANT] + 3, true);