diff options
author | Eugene Sandulenko | 2006-11-25 09:28:00 +0000 |
---|---|---|
committer | Eugene Sandulenko | 2006-11-25 09:28:00 +0000 |
commit | 8fddc1258118ff5b32fc594dc9892f76244af474 (patch) | |
tree | d56e7cd2d702dae6fd0dd46e7376931d85d2dbef /engines/cine/cine.cpp | |
parent | 8b00f19f3112af7a73bb2fcf9f483f6ccf49c4cd (diff) | |
download | scummvm-rg350-8fddc1258118ff5b32fc594dc9892f76244af474.tar.gz scummvm-rg350-8fddc1258118ff5b32fc594dc9892f76244af474.tar.bz2 scummvm-rg350-8fddc1258118ff5b32fc594dc9892f76244af474.zip |
Support loading saves from command line.
svn-id: r24787
Diffstat (limited to 'engines/cine/cine.cpp')
-rw-r--r-- | engines/cine/cine.cpp | 23 |
1 files changed, 17 insertions, 6 deletions
diff --git a/engines/cine/cine.cpp b/engines/cine/cine.cpp index 41cc95d0ad..375258a666 100644 --- a/engines/cine/cine.cpp +++ b/engines/cine/cine.cpp @@ -52,8 +52,6 @@ Common::SaveFileManager *g_saveFileMan; CineEngine *g_cine; -static void initialize(); - CineEngine::CineEngine(OSystem *syst) : Engine(syst) { Common::addSpecialDebugLevel(kCineDebugScript, "Script", "Script debug level"); @@ -115,7 +113,7 @@ int CineEngine::go() { } -static void initialize() { +void CineEngine::initialize() { uint16 i; setupOpcodes(); @@ -194,10 +192,23 @@ static void initialize() { freePrcLinkedList(); - loadPrc(BOOT_PRC_NAME); - strcpy(currentPrcName, BOOT_PRC_NAME); + _preLoad = false; + if (ConfMan.hasKey("save_slot")) { + char saveNameBuffer[256]; + + sprintf(saveNameBuffer, "%s.%1d", _targetName.c_str(), ConfMan.getInt("save_slot")); + + bool res = makeLoad(saveNameBuffer); - setMouseCursor(MOUSE_CURSOR_NORMAL); + if (res) + _preLoad = true; + } + + if (!_preLoad) { + loadPrc(BOOT_PRC_NAME); + strcpy(currentPrcName, BOOT_PRC_NAME); + setMouseCursor(MOUSE_CURSOR_NORMAL); + } } } // End of namespace Cine |