aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sky/sound.cpp6
1 files changed, 4 insertions, 2 deletions
diff --git a/sky/sound.cpp b/sky/sound.cpp
index 3739b69bf8..acad413f9a 100644
--- a/sky/sound.cpp
+++ b/sky/sound.cpp
@@ -1083,8 +1083,10 @@ void SkySound::loadSection(uint8 pSection) {
_sampleRates = _soundData + sRateTabOfs;
_sfxInfo = _soundData + _sfxBaseOfs;
- for (uint8 cnt = 0; cnt < 4; cnt++)
- _sfxQueue[cnt].count = 0;
+ // if we just restored a savegame, the sfxqueue holds the sound we need to restart
+ if (!(SkyState::_systemVars.systemFlags & SF_GAME_RESTORED))
+ for (uint8 cnt = 0; cnt < 4; cnt++)
+ _sfxQueue[cnt].count = 0;
}
void SkySound::playSound(uint16 sound, uint16 volume, uint8 channel) {