aboutsummaryrefslogtreecommitdiff
path: root/engines
diff options
context:
space:
mode:
Diffstat (limited to 'engines')
-rw-r--r--engines/fullpipe/constants.h4
-rw-r--r--engines/fullpipe/scenes.cpp1
-rw-r--r--engines/fullpipe/scenes.h1
-rw-r--r--engines/fullpipe/scenes/scene26.cpp20
4 files changed, 22 insertions, 4 deletions
diff --git a/engines/fullpipe/constants.h b/engines/fullpipe/constants.h
index 8f6e956c9b..40809d4e49 100644
--- a/engines/fullpipe/constants.h
+++ b/engines/fullpipe/constants.h
@@ -943,7 +943,11 @@ namespace Fullpipe {
#define MSG_SC26_UPDATEPOOL 1956
#define PIC_SC26_LTRUBA 1864
#define PIC_SC26_SOCK 5312
+#define QU_CHI_HIDE 1965
+#define QU_CHI_SHOW 1964
#define SND_26_018 5340
+#define ST_CHI_EMPTY 1959
+#define ST_CHI_NORM 1960
// Scene 30
#define ANI_LEG 2322
diff --git a/engines/fullpipe/scenes.cpp b/engines/fullpipe/scenes.cpp
index 81dd7e19fe..cf40c6bbe3 100644
--- a/engines/fullpipe/scenes.cpp
+++ b/engines/fullpipe/scenes.cpp
@@ -300,6 +300,7 @@ Vars::Vars() {
scene26_var02 = 0;
scene26_var03 = 0;
scene26_var04 = 0;
+ scene26_var05 = 0;
scene30_leg = 0;
scene30_liftFlag = 1;
diff --git a/engines/fullpipe/scenes.h b/engines/fullpipe/scenes.h
index a568baf1c8..bdd2307241 100644
--- a/engines/fullpipe/scenes.h
+++ b/engines/fullpipe/scenes.h
@@ -419,6 +419,7 @@ public:
int scene26_var02;
int scene26_var03;
int scene26_var04;
+ StaticANIObject *scene26_var05;
StaticANIObject *scene30_leg;
int scene30_liftFlag;
diff --git a/engines/fullpipe/scenes/scene26.cpp b/engines/fullpipe/scenes/scene26.cpp
index a4f23b1210..841e1896bb 100644
--- a/engines/fullpipe/scenes/scene26.cpp
+++ b/engines/fullpipe/scenes/scene26.cpp
@@ -81,11 +81,20 @@ int scene26_updateCursor() {
}
void sceneHandler26_updateDrop() {
- warning("STUB: sceneHandler26_updateDrop()");
+ if (g_fp->getObjectState(sO_Valve5_26) == g_fp->getObjectEnumState(sO_Valve5_26, sO_Closed))
+ g_fp->_behaviorManager->setFlagByStaticAniObject(g_vars->scene26_drop, 0);
+ else
+ g_fp->_behaviorManager->setFlagByStaticAniObject(g_vars->scene26_drop, 1);
+}
+
+void scene26_setupDrop() {
+ sceneHandler26_updateDrop();
}
void sceneHandler26_showChi() {
- warning("STUB: sceneHandler26_showChi()");
+ g_vars->scene26_chhi->changeStatics2(ST_CHI_EMPTY);
+
+ chainQueue(QU_CHI_SHOW, 1);
}
void sceneHandler26_updatePool() {
@@ -93,7 +102,9 @@ void sceneHandler26_updatePool() {
}
void sceneHandler26_hideChi() {
- warning("STUB: sceneHandler26_hideChi()");
+ g_vars->scene26_chhi->changeStatics2(ST_CHI_NORM);
+
+ chainQueue(QU_CHI_HIDE, 1);
}
void sceneHandler26_testVent() {
@@ -105,7 +116,8 @@ void sceneHandler26_showVent() {
}
void sceneHandler26_hideVent() {
- warning("STUB: sceneHandler26_hideVent()");
+ if (g_vars->scene26_var05)
+ g_vars->scene26_var05->hide();
}
void sceneHandler26_clickVent(StaticANIObject *ani, ExCommand *cmd) {