From b033c5f605559854e92bda06ffd54ec132a3c22c Mon Sep 17 00:00:00 2001 From: Johannes Schickel Date: Fri, 28 Mar 2008 00:53:54 +0000 Subject: Implemented savegame loading via command line params -x/--save-slot. svn-id: r31281 --- engines/kyra/kyra_v1.cpp | 37 ++++++++++++++++++++++--------------- 1 file changed, 22 insertions(+), 15 deletions(-) (limited to 'engines/kyra/kyra_v1.cpp') 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() { -- cgit v1.2.3