aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--engines/fullpipe/fullpipe.cpp5
-rw-r--r--engines/fullpipe/fullpipe.h2
-rw-r--r--engines/fullpipe/gfx.cpp8
-rw-r--r--engines/fullpipe/scene.cpp2
-rw-r--r--engines/fullpipe/stateloader.cpp1
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);