aboutsummaryrefslogtreecommitdiff
path: root/engines/sherlock/scalpel/scalpel.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'engines/sherlock/scalpel/scalpel.cpp')
-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;
}