diff options
Diffstat (limited to 'engines')
-rw-r--r-- | engines/fullpipe/constants.h | 4 | ||||
-rw-r--r-- | engines/fullpipe/scenes.cpp | 1 | ||||
-rw-r--r-- | engines/fullpipe/scenes.h | 1 | ||||
-rw-r--r-- | engines/fullpipe/scenes/scene26.cpp | 20 |
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) { |