diff options
author | Robert Göffringmann | 2003-07-14 10:05:32 +0000 |
---|---|---|
committer | Robert Göffringmann | 2003-07-14 10:05:32 +0000 |
commit | ffb65a9e042eee2a6c51988a237a36bee29e0497 (patch) | |
tree | 1a55697d0f934eeb2589dc19258acef0ccbfb442 /sky | |
parent | 4ae380102a533a8a332e46a4daea2a273f3930a1 (diff) | |
download | scummvm-rg350-ffb65a9e042eee2a6c51988a237a36bee29e0497.tar.gz scummvm-rg350-ffb65a9e042eee2a6c51988a237a36bee29e0497.tar.bz2 scummvm-rg350-ffb65a9e042eee2a6c51988a237a36bee29e0497.zip |
fix bug #770784: Talking characters stay at last frame
svn-id: r9010
Diffstat (limited to 'sky')
-rw-r--r-- | sky/logic.cpp | 13 |
1 files changed, 5 insertions, 8 deletions
diff --git a/sky/logic.cpp b/sky/logic.cpp index 33aa45f7d8..eddb74c449 100644 --- a/sky/logic.cpp +++ b/sky/logic.cpp @@ -521,18 +521,15 @@ void SkyLogic::talk() { uint16 *graphixProg = _compact->grafixProg; // no anim file? if (graphixProg) { - if (*graphixProg) { + if ((*graphixProg) && ((_compact->extCompact->spTime != 3) || (!_skySound->speechFinished()))) { // we will force the animation to finish 3 game cycles // before the speech actually finishes - because it looks good. - if ((_compact->extCompact->spTime != 3) || (!_skySound->speechFinished())) { - _compact->frame = *(graphixProg + 2) + _compact->offset; - graphixProg += 3; - _compact->grafixProg = graphixProg; - } + _compact->frame = *(graphixProg + 2) + _compact->offset; + graphixProg += 3; + _compact->grafixProg = graphixProg; } else { - // we ran out of frames, let actor stand still. - // TODO: we should improve this and simply restart animation. + // we ran out of frames or finished speech, let actor stand still. _compact->frame = _compact->getToFlag; _compact->grafixProg = 0; } |