aboutsummaryrefslogtreecommitdiff
path: root/sky/control.cpp
diff options
context:
space:
mode:
authorRobert Göffringmann2003-07-12 05:26:23 +0000
committerRobert Göffringmann2003-07-12 05:26:23 +0000
commitcb48b4fca0b6a1fc816ba6cb49f497476ebcd534 (patch)
treec4d00b32183c1e6e2c7ed04dbfac1e6b5ea70870 /sky/control.cpp
parent8cc3d5e39c5b7eafca87366f6d4b9f70be9967f4 (diff)
downloadscummvm-rg350-cb48b4fca0b6a1fc816ba6cb49f497476ebcd534.tar.gz
scummvm-rg350-cb48b4fca0b6a1fc816ba6cb49f497476ebcd534.tar.bz2
scummvm-rg350-cb48b4fca0b6a1fc816ba6cb49f497476ebcd534.zip
implemented -x command line option
svn-id: r8926
Diffstat (limited to 'sky/control.cpp')
-rw-r--r--sky/control.cpp37
1 files changed, 36 insertions, 1 deletions
diff --git a/sky/control.cpp b/sky/control.cpp
index 0880a5b3c6..c398cb2ea5 100644
--- a/sky/control.cpp
+++ b/sky/control.cpp
@@ -1461,7 +1461,7 @@ uint16 SkyControl::restoreGameFromFile(bool autoSave) {
else
sprintf(fName, "SKY-VM%03d.ASD", SkyState::_systemVars.gameVersion);
} else
- sprintf(fName,"SKY-VM.%03d", _selectedGame);
+ sprintf(fName,"SKY-VM.%03d", _selectedGame);
File inf;
if (!inf.open(fName, _savePath)) {
@@ -1491,6 +1491,41 @@ uint16 SkyControl::restoreGameFromFile(bool autoSave) {
return res;
}
+uint16 SkyControl::quickXRestore(uint16 slot) {
+ uint16 result;
+ initPanel();
+ _mouseClicked = false;
+
+ _savedCharSet = _skyText->giveCurrentCharSet();
+ _skyText->fnSetFont(0);
+
+ if (SkyState::_systemVars.gameVersion < 331)
+ _skyScreen->setPalette(60509);
+ else
+ _skyScreen->setPalette(60510);
+
+ _savedMouse = _skyMouse->giveCurrentMouseType();
+ _skyMouse->spriteMouse(MOUSE_NORMAL,0,0);
+
+ if (slot == 0)
+ result = restoreGameFromFile(true);
+ else {
+ _selectedGame = slot - 1;
+ result = restoreGameFromFile(false);
+ }
+ if (result == GAME_RESTORED) {
+ memset(_skyScreen->giveCurrent(), 0, GAME_SCREEN_WIDTH * GAME_SCREEN_HEIGHT);
+ _skyScreen->showScreen(_skyScreen->giveCurrent());
+ _skyScreen->forceRefresh();
+ }
+ _skyScreen->setPaletteEndian((uint8 *)SkyState::fetchCompact(SkyState::_systemVars.currentPalette));
+ _skyMouse->spriteMouse(_savedMouse, 0, 0);
+ _skyText->fnSetFont(_savedCharSet);
+
+ removePanel();
+ return result;
+}
+
uint16 *SkyControl::lz77decode(uint16 *data) {
uint32 size = READ_LE_UINT32(data);
data += 2;