diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/industry_cmd.cpp | 15 |
1 files 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; + } + } } } |