aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--scumm/sound.cpp9
1 files changed, 8 insertions, 1 deletions
diff --git a/scumm/sound.cpp b/scumm/sound.cpp
index 3b821774ab..b53417814a 100644
--- a/scumm/sound.cpp
+++ b/scumm/sound.cpp
@@ -1189,7 +1189,14 @@ int Sound::playBundleSound(char *sound) {
byte * final = (byte *)malloc(size);
memcpy(final, ptr, size);
- return _scumm->_mixer->playRaw(NULL, final, size, rate, SoundMixer::FLAG_UNSIGNED | SoundMixer::FLAG_AUTOFREE);
+ if (bits == 8) {
+ return _scumm->_mixer->playRaw(NULL, final, size, rate, SoundMixer::FLAG_UNSIGNED | SoundMixer::FLAG_AUTOFREE);
+ } else if (bits == 16){
+ return _scumm->_mixer->playRaw(NULL, final, size, rate, SoundMixer::FLAG_16BITS | SoundMixer::FLAG_AUTOFREE);
+ } else {
+ warning("Sound::playBundleSound() to do more options to playRaw...");
+ return -1;
+ }
}
int Sound::playSfxSound(void *sound, uint32 size, uint rate, bool isUnsigned) {