aboutsummaryrefslogtreecommitdiff
path: root/engines/fullpipe/stateloader.cpp
diff options
context:
space:
mode:
authorEugene Sandulenko2013-08-08 01:14:24 +0300
committerEugene Sandulenko2013-09-06 14:51:11 +0300
commit1d55aa0c6ecade00b1b31932a86dd2f97b377882 (patch)
tree2b26bf245f5fba5ff5d717e19817a998814f0a24 /engines/fullpipe/stateloader.cpp
parentea91b8f7998cc4a06f4f5d8732a1b9b0309d95d2 (diff)
downloadscummvm-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.cpp21
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)