aboutsummaryrefslogtreecommitdiff
path: root/engines/kyra/sequences_hof.cpp
diff options
context:
space:
mode:
authorFlorian Kagerer2008-05-17 17:44:23 +0000
committerFlorian Kagerer2008-05-17 17:44:23 +0000
commitbf35e95049cc5e89c59815e2a1a3f32dd3153f43 (patch)
tree4d60c699595c2fd4205ac2b18799c30f0918cb37 /engines/kyra/sequences_hof.cpp
parent56b894bb2dbc099c015c51442f56f43c1e2626f1 (diff)
downloadscummvm-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.cpp14
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++;