aboutsummaryrefslogtreecommitdiff
path: root/engines
diff options
context:
space:
mode:
Diffstat (limited to 'engines')
-rw-r--r--engines/sci/sound/soundcmd.cpp10
1 files changed, 8 insertions, 2 deletions
diff --git a/engines/sci/sound/soundcmd.cpp b/engines/sci/sound/soundcmd.cpp
index a91b103214..b4776b30f2 100644
--- a/engines/sci/sound/soundcmd.cpp
+++ b/engines/sci/sound/soundcmd.cpp
@@ -81,8 +81,14 @@ void SoundCommandParser::initSoundResource(MusicEntry *newSound) {
// on soundblaster. FIXME: check, why this is
if (checkAudioResource && _resMan->testResource(ResourceId(kResourceTypeAudio, newSound->resourceId))) {
- // Found a relevant audio resource, create an audio stream
- if (_bMultiMidi || !newSound->soundRes) {
+ // Found a relevant audio resource, create an audio stream if there is
+ // no associated sound resource, or if both resources exist and the
+ // user wants the digital version. In SCI2 and later games, this check
+ // doesn't apply - there was always only one version of each sound
+ // effect or digital music track (e.g. the menu music in GK1 - there is
+ // a sound effect with the same resource number, but it's totally
+ // unrelated to the menu music).
+ if (_bMultiMidi || !newSound->soundRes || getSciVersion() >= SCI_VERSION_2) {
int sampleLen;
newSound->pStreamAud = _audio->getAudioStream(newSound->resourceId, 65535, &sampleLen);
newSound->soundType = Audio::Mixer::kSpeechSoundType;