diff options
author | Max Horn | 2002-09-13 11:59:43 +0000 |
---|---|---|
committer | Max Horn | 2002-09-13 11:59:43 +0000 |
commit | ecdb98a0eea111bf0c464fbea3aefa8a102590fc (patch) | |
tree | ed889fe83fdaa7e322165fdac77a4378f095c8db | |
parent | 364806e4e474701a9f022b1b3290ce2edaf19d88 (diff) | |
download | scummvm-rg350-ecdb98a0eea111bf0c464fbea3aefa8a102590fc.tar.gz scummvm-rg350-ecdb98a0eea111bf0c464fbea3aefa8a102590fc.tar.bz2 scummvm-rg350-ecdb98a0eea111bf0c464fbea3aefa8a102590fc.zip |
patch #608226 (Sam & Max sound fix)
svn-id: r4926
-rw-r--r-- | scumm/sound.cpp | 21 | ||||
-rw-r--r-- | scumm/sound.h | 2 | ||||
-rw-r--r-- | scumm/string.cpp | 1 |
3 files changed, 15 insertions, 9 deletions
diff --git a/scumm/sound.cpp b/scumm/sound.cpp index 26b3839251..492bdcd1c8 100644 --- a/scumm/sound.cpp +++ b/scumm/sound.cpp @@ -382,10 +382,11 @@ void Sound::processSfxQueues() { bool b, finished; if (_talk_sound_mode != 0) { - if (_talk_sound_mode == 2) - _talkChannel = startTalkSound(_talk_sound_a, _talk_sound_b, _talk_sound_mode); - else - startTalkSound(_talk_sound_a, _talk_sound_b, _talk_sound_mode); + if (_talk_sound_mode & 1) + + startTalkSound(_talk_sound_a1, _talk_sound_b1, 1); + if (_talk_sound_mode & 2) + _talkChannel = startTalkSound(_talk_sound_a2, _talk_sound_b2, 2); _talk_sound_mode = 0; } @@ -623,10 +624,16 @@ void Sound::soundKludge(int16 * list) { } void Sound::talkSound(uint32 a, uint32 b, int mode, int frame) { - _talk_sound_a = a; - _talk_sound_b = b; - _talk_sound_mode = mode; + if (mode == 1) { + _talk_sound_a1 = a; + _talk_sound_b1 = b; + } else { + _talk_sound_a2 = a; + _talk_sound_b2 = b; + } + _talk_sound_frame = frame; + _talk_sound_mode |= mode; } /* The sound code currently only supports General Midi. diff --git a/scumm/sound.h b/scumm/sound.h index 39aba83778..773fc51787 100644 --- a/scumm/sound.h +++ b/scumm/sound.h @@ -54,7 +54,7 @@ enum { int _talkChannel; /* Mixer channel actor is talking on */ File *_sfxFile; - uint32 _talk_sound_a, _talk_sound_b; + uint32 _talk_sound_a1, _talk_sound_a2, _talk_sound_b1, _talk_sound_b2; byte _talk_sound_mode; int _talk_sound_frame; bool _mouthSyncMode; diff --git a/scumm/string.cpp b/scumm/string.cpp index 8c0a50f607..0c5922af21 100644 --- a/scumm/string.cpp +++ b/scumm/string.cpp @@ -294,7 +294,6 @@ void Scumm::CHARSET_1() } if (a && !string[0].no_talk_anim) { -// a->startAnimActor(a->talkFrame1); has_anim = true; _useTalkAnims = true; } |