diff options
author | Filippos Karapetis | 2007-07-05 21:19:47 +0000 |
---|---|---|
committer | Filippos Karapetis | 2007-07-05 21:19:47 +0000 |
commit | 51458026fe8dfeea337994914a13bbcc7981f129 (patch) | |
tree | 598b7c6ced59d15d8d0526eef8d21dc8d8c651ac | |
parent | 8e35049c9eff4eb1dc326e9d7f9c2805bc1e4a4c (diff) | |
download | scummvm-rg350-51458026fe8dfeea337994914a13bbcc7981f129.tar.gz scummvm-rg350-51458026fe8dfeea337994914a13bbcc7981f129.tar.bz2 scummvm-rg350-51458026fe8dfeea337994914a13bbcc7981f129.zip |
The prisoners at the entrance of the prison in Nimdok's chapter are displayed correctly now
svn-id: r27931
-rw-r--r-- | engines/saga/animation.cpp | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/engines/saga/animation.cpp b/engines/saga/animation.cpp index 59c3339c9b..d29fc6ebe6 100644 --- a/engines/saga/animation.cpp +++ b/engines/saga/animation.cpp @@ -445,6 +445,18 @@ void Anim::play(uint16 animId, int vectorTime, bool playing) { if (anim->completed < anim->cycles) { frame = anim->currentFrame; + + // WORKAROUND for a buggy animation in IHNM. Animation 0 in scene 67 (the mob of angry prisoners) should + // start from frame 0, not frame 1. Frame 0 is the background of the animation (the mob of prisoners), whereas + // the rest of the frames are their animated arms. Therefore, in order for the prisoners to appear correctly, + // frame 0 should be displayed as the first frame, but anim->currentframe is set to 1, which means that the + // prisoners will never be shown. In the original, the prisoners (first frame in the animation) are shown a + // bit after the animation is started (which is wrong again, but not that apparent), whereas in ScummVM the + // first frame is never shown. Therefore, make sure that for this animation, frame 0 is shown first + if (_vm->getGameType() == GType_IHNM && _vm->_scene->currentChapterNumber() == 4 && + _vm->_scene->currentSceneNumber() == 67 && animId == 0 && anim->completed == 1) + frame = 0; + // FIXME: if start > 0, then this works incorrectly decodeFrame(anim, anim->frameOffsets[frame], displayBuffer, _vm->getDisplayWidth() * _vm->getDisplayHeight()); _vm->_frameCount++; |