X-Git-Url: https://jxself.org/git/?p=open-adventure.git;a=blobdiff_plain;f=actions.c;h=5cf1fae0a77bbe7cd0f44081d08622217c5d8983;hp=ab3ccda319f9e26ab1802fad2378cecb1d0cb10a;hb=cca3686f2f5ab3f5a5bf17d2e56560aad2c55c0f;hpb=0a04293f23d9c3cc2a057c9130c71832d2375e06 diff --git a/actions.c b/actions.c index ab3ccda..5cf1fae 100644 --- a/actions.c +++ b/actions.c @@ -248,23 +248,26 @@ static void blast(void) static int vbreak(vocab_t verb, obj_t obj) /* Break. Only works for mirror in repository and, of course, the vase. */ { - if (obj == MIRROR) { + switch (obj) { + case MIRROR: if (game.closed) { rspeak(BREAK_MIRROR); return GO_DWARFWAKE; } else { rspeak(TOO_FAR); - return GO_CLEAROBJ; + break; } + case VASE: + if (game.prop[VASE] == VASE_WHOLE) { + if (TOTING(VASE)) + drop(VASE, game.loc); + state_change(VASE, VASE_BROKEN); + game.fixed[VASE] = IS_FIXED; + break; + } + default: + speak(actions[verb].message); } - if (obj == VASE && game.prop[VASE] == VASE_WHOLE) { - if (TOTING(VASE)) - drop(VASE, game.loc); - state_change(VASE, VASE_BROKEN); - game.fixed[VASE] = IS_FIXED; - return GO_CLEAROBJ; - } - speak(actions[verb].message); return (GO_CLEAROBJ); }