Change state of vase 182/head
authorNHOrus <jy6x2b32pie9@yahoo.com>
Sat, 1 Jul 2017 15:23:51 +0000 (18:23 +0300)
committerNHOrus <jy6x2b32pie9@yahoo.com>
Sat, 1 Jul 2017 15:25:39 +0000 (18:25 +0300)
Clear temporary save where it needs to be cleared instead of random places

actions.c
adventure.yaml
tests/Makefile

index 43a570e2d74ae3b249f1dc59fa6fc253ffde4f71..33c445cc0c13f7cfd92d33c717257b68bb60ee0f 100644 (file)
--- a/actions.c
+++ b/actions.c
@@ -224,23 +224,24 @@ static void blast(void)
 static int vbreak(token_t verb, token_t obj)
 /*  Break.  Only works for mirror in repository and, of course, the vase. */
 {
-    int spk = actions[verb].message;
-    if (obj == MIRROR)
-        spk = TOO_FAR;
-    if (obj == VASE && game.prop[VASE] == 0) {
-        if (TOTING(VASE))
-            drop(VASE, game.loc);
-        game.prop[VASE] = 2;
-        game.fixed[VASE] = -1;
-        spk = BREAK_VASE;
-    } else {
-        if (obj == MIRROR && game.closed) {
+    if (obj == MIRROR) {
+        if (game.closed) {
             rspeak(BREAK_MIRROR);
             return GO_DWARFWAKE;
+        } else {
+            rspeak(TOO_FAR);
+            return GO_CLEAROBJ;
         }
     }
-    rspeak(spk);
-    return GO_CLEAROBJ;
+    if (obj == VASE && game.prop[VASE] == VASE_WHOLE) {
+        if (TOTING(VASE))
+            drop(VASE, game.loc);
+        state_change(VASE, VASE_BROKEN);
+        game.fixed[VASE] = -1;
+        return GO_CLEAROBJ;
+    }
+    rspeak(actions[verb].message);
+    return (GO_CLEAROBJ);
 }
 
 static int brief(void)
index 8998d1549d768e767306961f4f362b3da08558c9..5758a366fa08c37730a9e23805e2634c6d24af0f 100644 (file)
@@ -3081,7 +3081,6 @@ arbitrary_messages:  !!omap
 - DONT_UNDERSTAND: 'I''m afraid I don''t understand.'
 - HAND_PASSTHROUGH: 'Your hand passes through it as though it weren''t there.'
 - BREAK_MIRROR: 'You strike the mirror a resounding blow, whereupon it shatters into a\nmyriad tiny fragments.'
-- BREAK_VASE: 'You have taken the vase and hurled it delicately to the ground.'
 - PROD_DWARF: 'You prod the nearest dwarf, who wakes up grumpily, takes one look at\nyou, curses, and grabs for his axe.'
 - THIS_ACCEPTABLE: 'Is this acceptable?'
 # This message is not currently used
@@ -3678,6 +3677,10 @@ objects: !!omap
     - [VASE_RESTING, 'The vase is now resting, delicately, on a velvet pillow.']
     - [VASE_BROKEN, 'The floor is littered with worthless shards of pottery.']
     - [VASE_DROPS, 'The ming vase drops with a delicate crash.']
+    changes:
+    - ''
+    - ''
+    - 'You have taken the vase and hurled it delicately to the ground.'
 - EMERALD:
     words: ['emera']
     inventory: 'Egg-sized emerald'
index a7a55f1785a2799f0a5f48f0f7a53313470338b2..be71aa232e124dca580c220964084443c03f44b3 100644 (file)
@@ -70,7 +70,7 @@ savecheck: savegames
        advent -l / < pitfall.log > /tmp/coverage_advent_logfail 2>&1 || exit 1
        $(ECHO) "TEST advent: Test -r with valid input"
        advent -r thousand_saves.adv < pitfall.log > /tmp/coverage_advent_readfail 2>&1 || exit 1
-       rm -f scratch.tmp /tmp/coverage*
+       rm -f /tmp/coverage*
 
 # General regression testing of commands and output; look at the *.log and
 # corresponding *.chk files to see which tests this runs.
@@ -82,6 +82,6 @@ regress:
            then diff --text -u $${file}.chk /tmp/regress$$$$ || exit 1; \
            else echo "*** Nonzero return status on $${file}!"; exit 1; fi \
        done; \
-       rm -f /tmp/regress$$$$
+       rm -f scratch.tmp /tmp/regress$$$$
 
 # end