diff options
author | Eugene Sandulenko | 2013-08-08 01:14:24 +0300 |
---|---|---|
committer | Eugene Sandulenko | 2013-09-06 14:51:11 +0300 |
commit | 1d55aa0c6ecade00b1b31932a86dd2f97b377882 (patch) | |
tree | 2b26bf245f5fba5ff5d717e19817a998814f0a24 /engines/fullpipe/stateloader.cpp | |
parent | ea91b8f7998cc4a06f4f5d8732a1b9b0309d95d2 (diff) | |
download | scummvm-rg350-1d55aa0c6ecade00b1b31932a86dd2f97b377882.tar.gz scummvm-rg350-1d55aa0c6ecade00b1b31932a86dd2f97b377882.tar.bz2 scummvm-rg350-1d55aa0c6ecade00b1b31932a86dd2f97b377882.zip |
FULLPIPE: Attempt to fix crash on SC_1 startup. Domino is missing
Diffstat (limited to 'engines/fullpipe/stateloader.cpp')
-rw-r--r-- | engines/fullpipe/stateloader.cpp | 21 |
1 files changed, 13 insertions, 8 deletions
diff --git a/engines/fullpipe/stateloader.cpp b/engines/fullpipe/stateloader.cpp index cd931b136c..bdfeb92b36 100644 --- a/engines/fullpipe/stateloader.cpp +++ b/engines/fullpipe/stateloader.cpp @@ -35,7 +35,7 @@ namespace Fullpipe { -bool FullpipeEngine::loadGam(const char *fname) { +bool FullpipeEngine::loadGam(const char *fname, int scene) { _gameLoader = new CGameLoader(); if (!_gameLoader->loadFile(fname)) @@ -43,7 +43,7 @@ bool FullpipeEngine::loadGam(const char *fname) { _currSoundListCount = 0; initObjectStates(); - // set_g_messageQueueCallback1(messageQueueCallback1); + // set_g_messageQueueCallback1(messageQueueCallback1); // substituted with direct call addMessageHandlerByIndex(global_messageHandler1, 0, 4); @@ -57,7 +57,7 @@ bool FullpipeEngine::loadGam(const char *fname) { ((MemoryObject *)((PictureObject *)*p)->_picture)->load(); } - // _sceneSwitcher = sceneSwitcher; + // _sceneSwitcher = sceneSwitcher; // substituted with direct call // _preloadCallback = gameLoaderPreloadCallback // _readSavegameCallback = gameLoaderReadSavegameCallback; @@ -80,12 +80,17 @@ bool FullpipeEngine::loadGam(const char *fname) { setMusicAllowed(_gameLoader->_gameVar->getSubVarAsInt("MUSIC_ALLOWED")); - if (_flgPlayIntro) { - _gameLoader->loadScene(SC_INTRO1); - _gameLoader->gotoScene(SC_INTRO1, TrubaUp); + if (scene) { + _gameLoader->loadScene(scene); + _gameLoader->gotoScene(scene, TrubaLeft); } else { - _gameLoader->loadScene(SC_1); - _gameLoader->gotoScene(SC_1, TrubaLeft); + if (_flgPlayIntro) { + _gameLoader->loadScene(SC_INTRO1); + _gameLoader->gotoScene(SC_INTRO1, TrubaUp); + } else { + _gameLoader->loadScene(SC_1); + _gameLoader->gotoScene(SC_1, TrubaLeft); + } } if (!_currentScene) |