diff options
Diffstat (limited to 'engines')
-rw-r--r-- | engines/sci/engine/ksound.cpp | 9 |
1 files changed, 3 insertions, 6 deletions
diff --git a/engines/sci/engine/ksound.cpp b/engines/sci/engine/ksound.cpp index a5b30d13b2..f1d8ab7e45 100644 --- a/engines/sci/engine/ksound.cpp +++ b/engines/sci/engine/ksound.cpp @@ -999,6 +999,9 @@ reg_t kDoAudio(EngineState *s, int funct_nr, int argc, reg_t *argv) { Audio::Mixer *mixer = g_system->getMixer(); int sampleLen = 0; + if (!s->sound.audioResource) + s->sound.audioResource = new AudioResource(); + switch (UKPV(0)) { case kSci1AudioWPlay: case kSci1AudioPlay: { @@ -1039,13 +1042,7 @@ reg_t kDoAudio(EngineState *s, int funct_nr, int argc, reg_t *argv) { mixer->setVolumeForSoundType(Audio::Mixer::kSpeechSoundType, UKPV(1)); break; case kSci1AudioLanguage: - if (s->sound.audioResource) - delete s->sound.audioResource; - - // The audio resource is freed when freeing all resources - s->sound.audioResource = new AudioResource(); s->sound.audioResource->setAudioLang(SKPV(1)); - break; default: warning("kDoAudio: Unhandled case %d", UKPV(0)); |