diff options
-rw-r--r-- | engines/fullpipe/fullpipe.cpp | 5 | ||||
-rw-r--r-- | engines/fullpipe/fullpipe.h | 2 | ||||
-rw-r--r-- | engines/fullpipe/gfx.cpp | 8 | ||||
-rw-r--r-- | engines/fullpipe/scene.cpp | 2 | ||||
-rw-r--r-- | engines/fullpipe/stateloader.cpp | 1 |
5 files changed, 16 insertions, 2 deletions
diff --git a/engines/fullpipe/fullpipe.cpp b/engines/fullpipe/fullpipe.cpp index f49edc75d1..305443249f 100644 --- a/engines/fullpipe/fullpipe.cpp +++ b/engines/fullpipe/fullpipe.cpp @@ -56,6 +56,8 @@ FullpipeEngine::FullpipeEngine(OSystem *syst, const ADGameDescription *gameDesc) _soundEnabled = true; _flgSoundList = true; + _needQuit = false; + g_fullpipe = this; } @@ -94,6 +96,9 @@ void FullpipeEngine::updateEvents() { _mouseX = event.mouse.x; _mouseY = event.mouse.y; break; + case Common::EVENT_QUIT: + _needQuit = true; + break; default: break; } diff --git a/engines/fullpipe/fullpipe.h b/engines/fullpipe/fullpipe.h index bab7a72a4f..7e34e4e740 100644 --- a/engines/fullpipe/fullpipe.h +++ b/engines/fullpipe/fullpipe.h @@ -86,6 +86,8 @@ public: bool _soundEnabled; bool _flgSoundList; + bool _needQuit; + void initObjectStates(); void setLevelStates(); void setSwallowedEggsState(); diff --git a/engines/fullpipe/gfx.cpp b/engines/fullpipe/gfx.cpp index bc8ed26561..1e5bb28121 100644 --- a/engines/fullpipe/gfx.cpp +++ b/engines/fullpipe/gfx.cpp @@ -346,6 +346,12 @@ void Picture::drawRotated(int x, int y, int angle) { } void Picture::displayPicture() { + if (g_fullpipe->_needQuit) + return; + + if (0 && !Common::String(_memfilename).hasSuffix(".dib")) + return; + getData(); init(); @@ -354,7 +360,7 @@ void Picture::displayPicture() { draw(0, 0, 0, 0); - while (1) { + while (!g_fullpipe->_needQuit) { g_fullpipe->updateEvents(); g_fullpipe->_system->delayMillis(10); g_fullpipe->_system->updateScreen(); diff --git a/engines/fullpipe/scene.cpp b/engines/fullpipe/scene.cpp index fa144df2eb..37b35607f0 100644 --- a/engines/fullpipe/scene.cpp +++ b/engines/fullpipe/scene.cpp @@ -124,7 +124,7 @@ bool Scene::load(MfcArchive &file) { _sceneId = file.readUint16LE(); _scstringObj = file.readPascalString(); - debug(0, "scene: <%s>", transCyrillic((byte *)_scstringObj)); + debug(0, "scene: <%s> %d", transCyrillic((byte *)_scstringObj), _sceneId); int count = file.readUint16LE(); debug(7, "scene.ani: %d", count); diff --git a/engines/fullpipe/stateloader.cpp b/engines/fullpipe/stateloader.cpp index d1f9e00a6a..c4ea1cdd29 100644 --- a/engines/fullpipe/stateloader.cpp +++ b/engines/fullpipe/stateloader.cpp @@ -45,6 +45,7 @@ bool FullpipeEngine::loadGam(const char *fname) { _inventory->addItem(ANI_INV_MAP, 1); #if 1 + g_fullpipe->accessScene(302); g_fullpipe->accessScene(301); g_fullpipe->accessScene(302); g_fullpipe->accessScene(303); |