diff options
author | Florian Kagerer | 2008-05-17 17:44:23 +0000 |
---|---|---|
committer | Florian Kagerer | 2008-05-17 17:44:23 +0000 |
commit | bf35e95049cc5e89c59815e2a1a3f32dd3153f43 (patch) | |
tree | 4d60c699595c2fd4205ac2b18799c30f0918cb37 /engines/kyra/sequences_hof.cpp | |
parent | 56b894bb2dbc099c015c51442f56f43c1e2626f1 (diff) | |
download | scummvm-rg350-bf35e95049cc5e89c59815e2a1a3f32dd3153f43.tar.gz scummvm-rg350-bf35e95049cc5e89c59815e2a1a3f32dd3153f43.tar.bz2 scummvm-rg350-bf35e95049cc5e89c59815e2a1a3f32dd3153f43.zip |
- fixes bug #1962601 at least for intro and outro
- add a mutex lock in sound_towns
svn-id: r32155
Diffstat (limited to 'engines/kyra/sequences_hof.cpp')
-rw-r--r-- | engines/kyra/sequences_hof.cpp | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/engines/kyra/sequences_hof.cpp b/engines/kyra/sequences_hof.cpp index fc011642e3..68bcd1ded2 100644 --- a/engines/kyra/sequences_hof.cpp +++ b/engines/kyra/sequences_hof.cpp @@ -855,8 +855,8 @@ int KyraEngine_HoF::seq_finaleFunters(WSAMovie_v2 *wsaObj, int x, int y, int frm seq_printCreditsString(81, 240, 70, _seqTextColorMap, 252); seq_printCreditsString(82, 240, 90, _seqTextColorMap, _seqTextColor[0]); _screen->copyPage(2, 12); - delay(endtime - _system->getMillis()); seq_playTalkText(_flags.isTalkie ? 28 : 24); + delay(endtime - _system->getMillis()); _seqTextColor[0] = 1; if (_flags.isTalkie) { @@ -2337,8 +2337,11 @@ void KyraEngine_HoF::seq_playWsaSyncDialogue(uint16 strIndex, uint16 vocIndex, i uint32 chatTimeout = _system->getMillis() + dur * _tickLength; int curframe = firstframe; - if (vocIndex && speechEnabled()) + if (vocIndex && speechEnabled()) { + while (_sound->voiceIsPlaying() && !skipFlag()) + delay(4); seq_playTalkText(vocIndex); + } while (_system->getMillis() < chatTimeout && !(_abortIntroFlag || skipFlag())) { if (lastframe < 0) { @@ -2377,11 +2380,8 @@ void KyraEngine_HoF::seq_playWsaSyncDialogue(uint16 strIndex, uint16 vocIndex, i if (_abortIntroFlag || skipFlag()) _sound->voiceStop(); - if (lastframe < 0) { - int t = ABS(lastframe); - if (t < curframe) - curframe = t; - } + if (ABS(lastframe) < curframe) + curframe = ABS(lastframe); if (curframe == firstframe) curframe++; |