aboutsummaryrefslogtreecommitdiff
path: root/engines
diff options
context:
space:
mode:
authorPaul Gilbert2015-09-13 16:46:22 -0400
committerPaul Gilbert2015-09-13 16:46:22 -0400
commitfcbf84455ea3ced2335fbcb4b6b44f99d4232f28 (patch)
tree8b42c0c394bc3a3d5028d7237bdd23ce7674b77b /engines
parentdff7941db7d44935bd8c6443783fe025a3c92732 (diff)
downloadscummvm-rg350-fcbf84455ea3ced2335fbcb4b6b44f99d4232f28.tar.gz
scummvm-rg350-fcbf84455ea3ced2335fbcb4b6b44f99d4232f28.tar.bz2
scummvm-rg350-fcbf84455ea3ced2335fbcb4b6b44f99d4232f28.zip
SHERLOCK: 3DO: Fix refreshing scene after showing portrait video
Diffstat (limited to 'engines')
-rw-r--r--engines/sherlock/scalpel/scalpel.cpp8
1 files changed, 5 insertions, 3 deletions
diff --git a/engines/sherlock/scalpel/scalpel.cpp b/engines/sherlock/scalpel/scalpel.cpp
index 9019dc0bcd..ebf4cdea2a 100644
--- a/engines/sherlock/scalpel/scalpel.cpp
+++ b/engines/sherlock/scalpel/scalpel.cpp
@@ -1264,6 +1264,7 @@ void ScalpelEngine::showScummVMRestoreDialog() {
}
bool ScalpelEngine::play3doMovie(const Common::String &filename, const Common::Point &pos, bool halfSize) {
+ Scalpel3DOScreen &screen = *(Scalpel3DOScreen *)_screen;
Scalpel3DOMovieDecoder *videoDecoder = new Scalpel3DOMovieDecoder();
Graphics::Surface tempSurface;
@@ -1277,8 +1278,6 @@ bool ScalpelEngine::play3doMovie(const Common::String &filename, const Common::P
return false;
}
- _screen->_backBuffer1.blitFrom(*_screen); // save into backbuffer 1
-
if (halfSize) {
// only for portrait videos, not for EA intro logo and such
if ((framePos.x >= 8) && (framePos.y >= 8)) { // safety check
@@ -1413,7 +1412,10 @@ bool ScalpelEngine::play3doMovie(const Common::String &filename, const Common::P
delete frameImage;
}
- _screen->blitFrom(_screen->_backBuffer1);
+ // Restore scene
+ screen._backBuffer1.blitFrom(screen._backBuffer2);
+ _scene->updateBackground();
+ screen.slamArea(0, 0, screen.w(), CONTROLS_Y);
return !skipVideo;
}