X-Git-Url: https://jxself.org/git/?p=open-adventure.git;a=blobdiff_plain;f=actions.c;h=1c52d28f9c2bfeb741960290162ef5d17fa27701;hp=4099b22aec39bb283da5d8c1fe7ce5f7bb5bcd14;hb=de5696431d57e1ce7e18e753de035da1334b761a;hpb=b8def22d242e48dff1f2eb712f6c14d6a01fb58a diff --git a/actions.c b/actions.c index 4099b22..1c52d28 100644 --- a/actions.c +++ b/actions.c @@ -725,17 +725,26 @@ int fill(token_t verb, token_t obj) static int find(token_t verb, token_t obj) /* Find. Might be carrying it, or it might be here. Else give caveat. */ { - int spk = actions[verb].message; + if (TOTING(obj)) { + rspeak(ALREADY_CARRYING); + return GO_CLEAROBJ; + } + + if (game.closed) { + rspeak(NEEDED_NEARBY); + return GO_CLEAROBJ; + } + if (AT(obj) || (LIQUID() == obj && AT(BOTTLE)) || obj == LIQLOC(game.loc) || - (obj == DWARF && atdwrf(game.loc) > 0)) - spk = YOU_HAVEIT; - if (game.closed) - spk = NEEDED_NEARBY; - if (TOTING(obj)) - spk = ALREADY_CARRYING; - rspeak(spk); + (obj == DWARF && atdwrf(game.loc) > 0)) { + rspeak(YOU_HAVEIT); + return GO_CLEAROBJ; + } + + + rspeak(actions[verb].message); return GO_CLEAROBJ; } @@ -778,19 +787,21 @@ static int fly(token_t verb, token_t obj) static int inven(void) /* Inventory. If object, treat same as find. Else report on current burden. */ { - int spk = NO_CARRY; + bool empty = true; for (int i = 1; i <= NOBJECTS; i++) { if (i == BEAR || !TOTING(i)) continue; - if (spk == NO_CARRY) + if (empty) { rspeak(NOW_HOLDING); + empty = false; + } pspeak(i, touch, -1, false); - spk = NO_MESSAGE; } if (TOTING(BEAR)) - spk = TAME_BEAR; - rspeak(spk); + rspeak(TAME_BEAR); + if (empty) + rspeak(NO_CARRY); return GO_CLEAROBJ; }