aboutsummaryrefslogtreecommitdiff
path: root/engines/mohawk
diff options
context:
space:
mode:
authorCameron Cawley2018-05-24 17:22:15 +0100
committerCameron Cawley2018-05-24 17:22:15 +0100
commit8f1d1836f3f8330b9aa26dcc14d87a3bde36b2d9 (patch)
tree16cef276bafb8eb812604ececcce623c4d40b94e /engines/mohawk
parentcee4d6b8531453c9db921bb987be88995ce86586 (diff)
downloadscummvm-rg350-8f1d1836f3f8330b9aa26dcc14d87a3bde36b2d9.tar.gz
scummvm-rg350-8f1d1836f3f8330b9aa26dcc14d87a3bde36b2d9.tar.bz2
scummvm-rg350-8f1d1836f3f8330b9aa26dcc14d87a3bde36b2d9.zip
MOHAWK: Fix decoding sounds with 16 bit samples
Diffstat (limited to 'engines/mohawk')
-rw-r--r--engines/mohawk/sound.cpp7
1 files changed, 6 insertions, 1 deletions
diff --git a/engines/mohawk/sound.cpp b/engines/mohawk/sound.cpp
index c46594000d..7bd6c63539 100644
--- a/engines/mohawk/sound.cpp
+++ b/engines/mohawk/sound.cpp
@@ -158,11 +158,16 @@ Audio::RewindableAudioStream *makeMohawkWaveStream(Common::SeekableReadStream *s
// The sound in the CD version of Riven is encoded in Intel DVI ADPCM
// The sound in the DVD version of Riven is encoded in MPEG-2 Layer II or Intel DVI ADPCM
if (dataChunk.encoding == kCodecRaw) {
- byte flags = Audio::FLAG_UNSIGNED;
+ byte flags = 0;
if (dataChunk.channels == 2)
flags |= Audio::FLAG_STEREO;
+ if (dataChunk.bitsPerSample == 16)
+ flags |= Audio::FLAG_16BITS;
+ else
+ flags |= Audio::FLAG_UNSIGNED;
+
return Audio::makeRawStream(dataChunk.audioData, dataChunk.sampleRate, flags);
} else if (dataChunk.encoding == kCodecADPCM) {
uint32 blockAlign = dataChunk.channels * dataChunk.bitsPerSample / 8;