aboutsummaryrefslogtreecommitdiff
path: root/scumm/sound.cpp
diff options
context:
space:
mode:
authorMax Horn2003-12-27 15:22:59 +0000
committerMax Horn2003-12-27 15:22:59 +0000
commit17c189d1f9c40e79ccddcea1a1d972b2642abe99 (patch)
tree95c851577a1acbffd338c447a85a47c7c76c48cb /scumm/sound.cpp
parenta567b741e7f0711909bbcaf001b4adaa7ebc54b6 (diff)
downloadscummvm-rg350-17c189d1f9c40e79ccddcea1a1d972b2642abe99.tar.gz
scummvm-rg350-17c189d1f9c40e79ccddcea1a1d972b2642abe99.tar.bz2
scummvm-rg350-17c189d1f9c40e79ccddcea1a1d972b2642abe99.zip
get rid of _noSubtitles, use ConfigManager directly instead; clean up some IMuseDigital oddities
svn-id: r11966
Diffstat (limited to 'scumm/sound.cpp')
-rw-r--r--scumm/sound.cpp13
1 files changed, 5 insertions, 8 deletions
diff --git a/scumm/sound.cpp b/scumm/sound.cpp
index 13fa9cb31f..9b0abe5185 100644
--- a/scumm/sound.cpp
+++ b/scumm/sound.cpp
@@ -559,7 +559,8 @@ void Sound::startTalkSound(uint32 offset, uint32 b, int mode, PlayingSoundHandle
_mouthSyncMode = true;
}
- startSfxSound(_sfxFile, size, handle, id);
+ if (!_soundsPaused && _scumm->_mixer->isReady())
+ startSfxSound(_sfxFile, size, handle, id);
}
void Sound::stopTalkSound() {
@@ -794,9 +795,6 @@ void Sound::pauseSounds(bool pause) {
void Sound::startSfxSound(File *file, int file_size, PlayingSoundHandle *handle, int id) {
- if (_soundsPaused || !_scumm->_mixer->isReady())
- return;
-
if (file_size > 0) {
if (_vorbis_mode) {
#ifdef USE_VORBIS
@@ -815,9 +813,7 @@ void Sound::startSfxSound(File *file, int file_size, PlayingSoundHandle *handle,
byte *data = loadVOCFile(_sfxFile, size, rate);
if (_scumm->_imuseDigital) {
- _scumm->_imuseDigital->setVocVoice(data, size, rate);
- _scumm->_imuseDigital->startSound(kTalkSoundID);
- free(data);
+ _scumm->_imuseDigital->startSound(kTalkSoundID, data, size, rate);
} else {
_scumm->_mixer->playRaw(handle, data, size, rate, SoundMixer::FLAG_AUTOFREE | SoundMixer::FLAG_UNSIGNED, id);
}
@@ -832,7 +828,8 @@ File *Sound::openSfxFile() {
* same directory */
offset_table = NULL;
- // for now until better streaming will be, ft voice can't not be compressed
+ // FIXME / TODO / HACK: for FT voice can only be loaded from original .sou
+ // files, not .so3 or .sog. This will be so until IMuseDigital gets fixed.
if (_scumm->_imuseDigital) {
sprintf(buf, "%s.sou", _scumm->getGameName());
if (!file->open(buf, _scumm->getGameDataPath())) {