diff options
Diffstat (limited to 'engines')
-rw-r--r-- | engines/sci/engine/ksound.cpp | 7 | ||||
-rw-r--r-- | engines/sci/sfx/audio.h | 2 |
2 files changed, 7 insertions, 2 deletions
diff --git a/engines/sci/engine/ksound.cpp b/engines/sci/engine/ksound.cpp index 4b5471659c..d70b23c13f 100644 --- a/engines/sci/engine/ksound.cpp +++ b/engines/sci/engine/ksound.cpp @@ -131,9 +131,12 @@ reg_t kDoAudio(EngineState *s, int argc, reg_t *argv) { case kSciAudioRate: s->_audio->setAudioRate(argv[1].toUint16()); break; - case kSciAudioVolume: - mixer->setVolumeForSoundType(Audio::Mixer::kSpeechSoundType, argv[1].toUint16()); + case kSciAudioVolume: { + int16 volume = argv[1].toUint16(); + volume = CLIP<int16>(volume, 0, AUDIO_VOLUME_MAX); + mixer->setVolumeForSoundType(Audio::Mixer::kSpeechSoundType, volume * 2); break; + } case kSciAudioLanguage: // In SCI1.1: tests for digital audio support if (getSciVersion() == SCI_VERSION_1_1) diff --git a/engines/sci/sfx/audio.h b/engines/sci/sfx/audio.h index febe77cefc..f71cabc735 100644 --- a/engines/sci/sfx/audio.h +++ b/engines/sci/sfx/audio.h @@ -51,6 +51,8 @@ enum AudioSyncCommands { kSciAudioSyncStop = 2 }; +#define AUDIO_VOLUME_MAX 127 + class Resource; class ResourceId; class ResourceManager; |