X-Git-Url: https://jxself.org/git/?p=open-adventure.git;a=blobdiff_plain;f=actions.c;h=efa52a6bf9adecafe5db8c2ea85de6fb03c297af;hp=802c1f3303b6c233d8b648985b04d28fc7369b2c;hb=8d9c8e4d5c035213bb41abc64c59fb25672e8e50;hpb=596a15457d897451aa8bfcf64c7c76b09836c01b diff --git a/actions.c b/actions.c index 802c1f3..efa52a6 100644 --- a/actions.c +++ b/actions.c @@ -101,11 +101,10 @@ static int attack(struct command_t *command) * fixed), move rug there (not fixed), and move him there, * too. Then do a null motion to get new description. */ rspeak(BARE_HANDS_QUERY); - if (!silent_yes()) - { - speak(arbitrary_messages[NASTY_DRAGON]); - return GO_MOVE; - } + if (!silent_yes()) { + speak(arbitrary_messages[NASTY_DRAGON]); + return GO_MOVE; + } state_change(DRAGON, DRAGON_DEAD); game.prop[RUG] = RUG_FLOOR; /* Hardcoding LOC_SECRET5 as the dragon's death location is ugly. @@ -253,7 +252,7 @@ static int vbreak(verb_t verb, obj_t obj) switch (obj) { case MIRROR: if (game.closed) { - rspeak(BREAK_MIRROR); + state_change(MIRROR, MIRROR_BROKEN); return GO_DWARFWAKE; } else { rspeak(TOO_FAR); @@ -417,8 +416,8 @@ static int chain(verb_t verb) game.prop[BEAR] = CONTENTED_BEAR; switch (game.prop[BEAR]) { + // LCOV_EXCL_START case BEAR_DEAD: - // LCOV_EXCL_START /* Can't be reached as long as the only way for the bear to die * is from a bridge collapse. Leave in in case this changes, but * exclude from coverage testing. */ @@ -545,9 +544,7 @@ static int discard(verb_t verb, obj_t obj) } else rspeak(OK_MAN); - game.prop[BIRD] = BIRD_UNCAGED; - if (FOREST(game.loc)) - game.prop[BIRD] = BIRD_FOREST_UNCAGED; + game.prop[BIRD] = FOREST(game.loc) ? BIRD_FOREST_UNCAGED : BIRD_UNCAGED; drop(obj, game.loc); return GO_CLEAROBJ; } @@ -1003,12 +1000,12 @@ static int lock(verb_t verb, obj_t obj) case OYSTER: if (verb == LOCK) rspeak(HUH_MAN); - else if (TOTING(OYSTER)) - rspeak(DROP_OYSTER); + else if (TOTING(OYSTER)) + rspeak(DROP_OYSTER); else if (!TOTING(TRIDENT)) rspeak(OYSTER_OPENER); - else - rspeak(OYSTER_OPENS); + else + rspeak(OYSTER_OPENS); break; case DOOR: rspeak((game.prop[DOOR] == DOOR_UNRUSTED) ? OK_MAN : RUSTY_DOOR); @@ -1347,14 +1344,14 @@ int action(struct command_t *command) command->obj = ROD2; /* FALL THROUGH */; } else if ((command->verb == FIND || - command->verb == INVENTORY) && command->wd2 <= 0) + command->verb == INVENTORY) && (command->id2 == WORD_EMPTY || command->id2 == WORD_NOT_FOUND)) /* FALL THROUGH */; else { sspeak(NO_SEE, command->raw1); return GO_CLEAROBJ; } - if (command->wd2 > 0) + if (command->id2 != WORD_EMPTY && command->id2 != WORD_NOT_FOUND) return GO_WORD2; if (command->verb != 0) command->part = transitive; @@ -1450,7 +1447,7 @@ int action(struct command_t *command) return listen(); case PART: return reservoir(); - default: + default: // LCOV_EXCL_LINE BUG(INTRANSITIVE_ACTION_VERB_EXCEEDS_GOTO_LIST); // LCOV_EXCL_LINE } } @@ -1551,14 +1548,14 @@ int action(struct command_t *command) } case PART: return reservoir(); - default: + default: // LCOV_EXCL_LINE BUG(TRANSITIVE_ACTION_VERB_EXCEEDS_GOTO_LIST); // LCOV_EXCL_LINE } case unknown: /* Unknown verb, couldn't deduce object - might need hint */ sspeak(WHAT_DO, command->raw1); return GO_CHECKHINT; - default: + default: // LCOV_EXCL_LINE BUG(SPEECHPART_NOT_TRANSITIVE_OR_INTRANSITIVE_OR_UNKNOWN); // LCOV_EXCL_LINE } }