From ac2111873626263ae5492bd2c18ec30f69e84158 Mon Sep 17 00:00:00 2001 From: abmyii <52673001+abmyii@users.noreply.github.com> Date: Sat, 12 Oct 2019 09:16:16 +0100 Subject: Fix #7703: Prevent sounds being produced by inactive industries (#7752) --- src/industry_cmd.cpp | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/src/industry_cmd.cpp b/src/industry_cmd.cpp index 38edc0835..dfc9cf222 100644 --- a/src/industry_cmd.cpp +++ b/src/industry_cmd.cpp @@ -1124,11 +1124,16 @@ static void ProduceIndustryGoods(Industry *i) /* play a sound? */ if ((i->counter & 0x3F) == 0) { uint32 r; - uint num; - if (Chance16R(1, 14, r) && (num = indsp->number_of_sounds) != 0 && _settings_client.sound.ambient) { - SndPlayTileFx( - (SoundFx)(indsp->random_sounds[((r >> 16) * num) >> 16]), - i->location.tile); + if (Chance16R(1, 14, r) && indsp->number_of_sounds != 0 && _settings_client.sound.ambient) { + for (size_t j = 0; j < lengthof(i->last_month_production); j++) { + if (i->last_month_production[j] > 0) { + /* Play sound since last month had production */ + SndPlayTileFx( + (SoundFx)(indsp->random_sounds[((r >> 16) * indsp->number_of_sounds) >> 16]), + i->location.tile); + break; + } + } } } -- cgit v1.2.3-70-g09d2