aboutsummaryrefslogtreecommitdiff
path: root/engines
diff options
context:
space:
mode:
Diffstat (limited to 'engines')
-rw-r--r--engines/sci/engine/ksound.cpp7
-rw-r--r--engines/sci/sfx/audio.h2
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;