From 031b9b8ced1007545099e0e6285ea4bbe1d3e97f Mon Sep 17 00:00:00 2001 From: Martin Kiewitz Date: Sun, 26 Apr 2015 15:50:12 +0200 Subject: SCI: restore: clear screen when restoring primarily to clear kPortrait graphics in kq6 when restoring during portrait animation --- engines/sci/graphics/screen.cpp | 12 ++++++++++++ engines/sci/graphics/screen.h | 1 + 2 files changed, 13 insertions(+) (limited to 'engines/sci/graphics') diff --git a/engines/sci/graphics/screen.cpp b/engines/sci/graphics/screen.cpp index 5a3b30f7ef..dfcb5dbc14 100644 --- a/engines/sci/graphics/screen.cpp +++ b/engines/sci/graphics/screen.cpp @@ -251,6 +251,18 @@ GfxScreen::~GfxScreen() { free(_displayScreen); } +// should not used regulary, only meant for restore game +void GfxScreen::clear() { + // reset all screen data + memset(_visualScreen, 0, _pixels); + memset(_priorityScreen, 0, _pixels); + memset(_controlScreen, 0, _pixels); + memset(_displayScreen, 0, _displayPixels); + memset(&_ditheredPicColors, 0, sizeof(_ditheredPicColors)); + _fontIsUpscaled = false; + copyToScreen(); +} + void GfxScreen::copyToScreen() { g_system->copyRectToScreen(_activeScreen, _displayWidth, 0, 0, _displayWidth, _displayHeight); } diff --git a/engines/sci/graphics/screen.h b/engines/sci/graphics/screen.h index 766e32614a..587d2ef3bc 100644 --- a/engines/sci/graphics/screen.h +++ b/engines/sci/graphics/screen.h @@ -76,6 +76,7 @@ public: byte getColorWhite() { return _colorWhite; } byte getColorDefaultVectorData() { return _colorDefaultVectorData; } + void clear(); void copyToScreen(); void copyFromScreen(byte *buffer); void kernelSyncWithFramebuffer(); -- cgit v1.2.3