Clear login in bvreak
[open-adventure.git] / actions.c
index ab3ccda319f9e26ab1802fad2378cecb1d0cb10a..5cf1fae0a77bbe7cd0f44081d08622217c5d8983 100644 (file)
--- 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);
 }