projects
/
open-adventure.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Address Gitlanb issue #54: listen command not showing all sounds
[open-adventure.git]
/
actions.c
diff --git
a/actions.c
b/actions.c
index d5cb410bcd8df4db87d5d8ec7a10aa69587053d9..09f7836b616fa9727ee7235c0338ff645e1bdc77 100644
(file)
--- a/
actions.c
+++ b/
actions.c
@@
-925,12
+925,13
@@
static phase_codes_t light(verb_t verb, obj_t obj)
static phase_codes_t listen(void)
/* Listen. Intransitive only. Print stuff based on object sound proprties. */
{
static phase_codes_t listen(void)
/* Listen. Intransitive only. Print stuff based on object sound proprties. */
{
+ bool soundlatch = false;
vocab_t sound = locations[game.loc].sound;
if (sound != SILENT) {
rspeak(sound);
if (!locations[game.loc].loud)
rspeak(NO_MESSAGE);
vocab_t sound = locations[game.loc].sound;
if (sound != SILENT) {
rspeak(sound);
if (!locations[game.loc].loud)
rspeak(NO_MESSAGE);
-
return GO_CLEAROBJ
;
+
soundlatch = true
;
}
for (obj_t i = 1; i <= NOBJECTS; i++) {
if (!HERE(i) ||
}
for (obj_t i = 1; i <= NOBJECTS; i++) {
if (!HERE(i) ||
@@
-949,9
+950,10
@@
static phase_codes_t listen(void)
rspeak(NO_MESSAGE);
if (i == BIRD && mi == BIRD_ENDSTATE)
DESTROY(BIRD);
rspeak(NO_MESSAGE);
if (i == BIRD && mi == BIRD_ENDSTATE)
DESTROY(BIRD);
-
return GO_CLEAROBJ
;
+
soundlatch = true
;
}
}
- rspeak(ALL_SILENT);
+ if (!soundlatch)
+ rspeak(ALL_SILENT);
return GO_CLEAROBJ;
}
return GO_CLEAROBJ;
}