diff options
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) |