projects
/
open-adventure.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Change state of vase
[open-adventure.git]
/
actions.c
diff --git
a/actions.c
b/actions.c
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. */
{
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;
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)
}
static int brief(void)