aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sky/control.cpp8
-rw-r--r--sky/mouse.cpp1
2 files changed, 9 insertions, 0 deletions
diff --git a/sky/control.cpp b/sky/control.cpp
index c398cb2ea5..72c5445e5e 100644
--- a/sky/control.cpp
+++ b/sky/control.cpp
@@ -1499,6 +1499,9 @@ uint16 SkyControl::quickXRestore(uint16 slot) {
_savedCharSet = _skyText->giveCurrentCharSet();
_skyText->fnSetFont(0);
+ _system->copy_rect(_screenBuf, GAME_SCREEN_WIDTH, 0, 0, FULL_SCREEN_WIDTH, FULL_SCREEN_HEIGHT);
+ _system->update_screen();
+
if (SkyState::_systemVars.gameVersion < 331)
_skyScreen->setPalette(60509);
else
@@ -1517,6 +1520,11 @@ uint16 SkyControl::quickXRestore(uint16 slot) {
memset(_skyScreen->giveCurrent(), 0, GAME_SCREEN_WIDTH * GAME_SCREEN_HEIGHT);
_skyScreen->showScreen(_skyScreen->giveCurrent());
_skyScreen->forceRefresh();
+ } else {
+ memset(_screenBuf, 0, FULL_SCREEN_WIDTH * FULL_SCREEN_HEIGHT);
+ _system->copy_rect(_screenBuf, GAME_SCREEN_WIDTH, 0, 0, GAME_SCREEN_WIDTH, FULL_SCREEN_HEIGHT);
+ _system->update_screen();
+ _skyScreen->showScreen(_skyScreen->giveCurrent());
}
_skyScreen->setPaletteEndian((uint8 *)SkyState::fetchCompact(SkyState::_systemVars.currentPalette));
_skyMouse->spriteMouse(_savedMouse, 0, 0);
diff --git a/sky/mouse.cpp b/sky/mouse.cpp
index 5252461d52..5b718e8d88 100644
--- a/sky/mouse.cpp
+++ b/sky/mouse.cpp
@@ -82,6 +82,7 @@ SkyMouse::SkyMouse(OSystem *system, SkyDisk *skyDisk) {
_skyDisk = skyDisk;
_system = system;
_mouseB = 0;
+ _currentCursor = 6;
_miceData = _skyDisk->loadFile(MICE_FILE, NULL);
fixMouseTransparency(_miceData, _skyDisk->_lastLoadedFileSize);