diff options
author | Paul Gilbert | 2015-09-14 19:54:47 -0400 |
---|---|---|
committer | Paul Gilbert | 2015-09-14 19:54:47 -0400 |
commit | e9efe9ab9065d43dcd55dbcebeb1c9b959200c61 (patch) | |
tree | 4ee33d60c04cec95d032e7bf81e15d033ed92929 | |
parent | fc7df50ed0e81aa694c7d6dbd97dbd962943702b (diff) | |
download | scummvm-rg350-e9efe9ab9065d43dcd55dbcebeb1c9b959200c61.tar.gz scummvm-rg350-e9efe9ab9065d43dcd55dbcebeb1c9b959200c61.tar.bz2 scummvm-rg350-e9efe9ab9065d43dcd55dbcebeb1c9b959200c61.zip |
SHERLOCK: 3DO: Fix introduction
-rw-r--r-- | engines/sherlock/animation.cpp | 9 | ||||
-rw-r--r-- | engines/sherlock/scalpel/scalpel.cpp | 12 |
2 files changed, 8 insertions, 13 deletions
diff --git a/engines/sherlock/animation.cpp b/engines/sherlock/animation.cpp index 468d61a7b2..681e71d0f6 100644 --- a/engines/sherlock/animation.cpp +++ b/engines/sherlock/animation.cpp @@ -201,12 +201,9 @@ bool Animation::play3DO(const Common::String &filename, bool intro, int minDelay // Draw the sprite. Note that we explicitly use the raw frame below, rather than the ImageFrame, // since we don't want the offsets in the image file to be used, just the explicit position we specify - if (!fadeActive) { - screen.transBlitFrom(images[imageFrame]._frame, pt); - } else { - // Fade active, blit to backbuffer1 - screen._backBuffer1.transBlitFrom(images[imageFrame]._frame, pt); - } + screen._backBuffer1.transBlitFrom(images[imageFrame]._frame, pt); + if (!fadeActive) + screen.slamArea(pt.x, pt.y, images[imageFrame]._frame.w, images[imageFrame]._frame.h); } else { // At this point, either the sprites for the frame has been complete, or there weren't any sprites // at all to draw for the frame diff --git a/engines/sherlock/scalpel/scalpel.cpp b/engines/sherlock/scalpel/scalpel.cpp index a76b73e109..a169b905b9 100644 --- a/engines/sherlock/scalpel/scalpel.cpp +++ b/engines/sherlock/scalpel/scalpel.cpp @@ -714,8 +714,7 @@ bool ScalpelEngine::showCityCutscene3DO() { } if (finished) { - screen._backBuffer1.blitFrom(*_screen); // save into backbuffer 1, used for fade - screen._backBuffer2.blitFrom(*_screen); // save into backbuffer 2, for restoring later + screen._backBuffer2.blitFrom(screen._backBuffer1); // "London, England" ImageFile3DO titleImage_London("title2a.cel", kImageFile3DOType_Cel); @@ -735,7 +734,8 @@ bool ScalpelEngine::showCityCutscene3DO() { if (finished) { // Restore screen - _screen->blitFrom(_screen->_backBuffer2); + _screen->_backBuffer1.blitFrom(screen._backBuffer2); + _screen->blitFrom(screen._backBuffer1); } } @@ -743,8 +743,6 @@ bool ScalpelEngine::showCityCutscene3DO() { finished = _animation->play3DO("26open2", true, 1, false, 2); if (finished) { - screen._backBuffer1.blitFrom(screen); // save into backbuffer 1, used for fade - // "Sherlock Holmes" (title) ImageFile3DO titleImage_SherlockHolmesTitle("title1ab.cel", kImageFile3DOType_Cel); screen._backBuffer1.transBlitFrom(titleImage_SherlockHolmesTitle[0]._frame, Common::Point(34, 5)); @@ -931,7 +929,7 @@ bool ScalpelEngine::showOfficeCutscene3DO() { // TODO: Brighten the image, possibly by doing a partial fade // to white. - _screen->_backBuffer1.blitFrom(*_screen); + _screen->_backBuffer2.blitFrom(_screen->_backBuffer1); for (int nr = 1; finished && nr <= 4; nr++) { char filename[15]; @@ -939,7 +937,7 @@ bool ScalpelEngine::showOfficeCutscene3DO() { ImageFile3DO *creditsImage = new ImageFile3DO(filename, kImageFile3DOType_Cel); ImageFrame *creditsFrame = &(*creditsImage)[0]; for (int i = 0; finished && i < 200 + creditsFrame->_height; i++) { - _screen->blitFrom(_screen->_backBuffer1); + _screen->blitFrom(_screen->_backBuffer2); _screen->transBlitFrom(creditsFrame->_frame, Common::Point((320 - creditsFrame->_width) / 2, 200 - i)); if (!_events->delay(70, true)) finished = false; |