static int listen(void)
/* Listen. Intransitive only. Print stuff based on objsnd/locsnd. */
{
- int k;
+ long k;
int spk = ALL_SILENT;
- k = LOCSND[game.loc];
- if (k != 0) {
- rspeak(labs(k));
- if (k < 0) return GO_CLEAROBJ;
- spk = NO_MESSAGE;
+ k = locations[game.loc].sound;
+ if (k != SILENT) {
+ rspeak(k);
+ if (locations[game.loc].loud)
+ return GO_CLEAROBJ;
+ else
+ spk = NO_MESSAGE;
}
for (int i = 1; i <= NOBJECTS; i++) {
if (!HERE(i) || OBJSND[i] == 0 || game.prop[i] < 0)