aboutsummaryrefslogtreecommitdiff
path: root/engines/kyra/kyra_v1.cpp
diff options
context:
space:
mode:
authorJohannes Schickel2008-03-28 00:53:54 +0000
committerJohannes Schickel2008-03-28 00:53:54 +0000
commitb033c5f605559854e92bda06ffd54ec132a3c22c (patch)
treec6def4e073b4f54d926b10a66f7ce904836fe066 /engines/kyra/kyra_v1.cpp
parenta1ec44cef2284a285a17f22136ffd285a26af42f (diff)
downloadscummvm-rg350-b033c5f605559854e92bda06ffd54ec132a3c22c.tar.gz
scummvm-rg350-b033c5f605559854e92bda06ffd54ec132a3c22c.tar.bz2
scummvm-rg350-b033c5f605559854e92bda06ffd54ec132a3c22c.zip
Implemented savegame loading via command line params -x/--save-slot.
svn-id: r31281
Diffstat (limited to 'engines/kyra/kyra_v1.cpp')
-rw-r--r--engines/kyra/kyra_v1.cpp37
1 files changed, 22 insertions, 15 deletions
diff --git a/engines/kyra/kyra_v1.cpp b/engines/kyra/kyra_v1.cpp
index fa5c84c610..08fdd117cc 100644
--- a/engines/kyra/kyra_v1.cpp
+++ b/engines/kyra/kyra_v1.cpp
@@ -318,12 +318,14 @@ int KyraEngine_v1::go() {
} else {
setGameFlag(0xF3);
setGameFlag(0xFD);
- setGameFlag(0xEF);
- seq_intro();
- if (_quitFlag)
- return 0;
- if (_skipIntroFlag && _abortIntroFlag)
- resetGameFlag(0xEF);
+ if (_gameToLoad == -1) {
+ setGameFlag(0xEF);
+ seq_intro();
+ if (_quitFlag)
+ return 0;
+ if (_skipIntroFlag && _abortIntroFlag)
+ resetGameFlag(0xEF);
+ }
startup();
resetGameFlag(0xEF);
mainLoop();
@@ -398,16 +400,21 @@ void KyraEngine_v1::startup() {
error("Could not load \"_NPC.EMC\" script");
snd_playTheme(1);
- enterNewScene(_currentCharacter->sceneId, _currentCharacter->facing, 0, 0, 1);
+ if (_gameToLoad == -1) {
+ enterNewScene(_currentCharacter->sceneId, _currentCharacter->facing, 0, 0, 1);
- if (_abortIntroFlag && _skipIntroFlag) {
- _menuDirectlyToLoad = true;
- _screen->setMouseCursor(1, 1, _shapes[0]);
- _screen->showMouse();
- buttonMenuCallback(0);
- _menuDirectlyToLoad = false;
- } else
- saveGame(getSavegameFilename(0), "New game");
+ if (_abortIntroFlag && _skipIntroFlag) {
+ _menuDirectlyToLoad = true;
+ _screen->setMouseCursor(1, 1, _shapes[0]);
+ _screen->showMouse();
+ buttonMenuCallback(0);
+ _menuDirectlyToLoad = false;
+ } else
+ saveGame(getSavegameFilename(0), "New game");
+ } else {
+ loadGame(getSavegameFilename(_gameToLoad));
+ _gameToLoad = -1;
+ }
}
void KyraEngine_v1::mainLoop() {