aboutsummaryrefslogtreecommitdiff
path: root/engines
diff options
context:
space:
mode:
Diffstat (limited to 'engines')
-rw-r--r--engines/fullpipe/scenes/scene33.cpp13
1 files changed, 9 insertions, 4 deletions
diff --git a/engines/fullpipe/scenes/scene33.cpp b/engines/fullpipe/scenes/scene33.cpp
index 9fe3810e8d..3efe8cccc4 100644
--- a/engines/fullpipe/scenes/scene33.cpp
+++ b/engines/fullpipe/scenes/scene33.cpp
@@ -99,10 +99,6 @@ void sceneHandler33_processJettie(ExCommand *cmd) {
}
}
-void sceneHandler33_processVents() {
- warning("STUB: sceneHandler33_processVents(");
-}
-
void sceneHandler33_switchVent(StaticANIObject *ani) {
int mv = 0;
@@ -118,6 +114,15 @@ void sceneHandler33_switchVent(StaticANIObject *ani) {
g_vars->scene33_ventsState[ani->_okeyCode] = !g_vars->scene33_ventsState[ani->_okeyCode];
}
+void sceneHandler33_processVents() {
+ for (int i = 0; i < 9; i++)
+ if ((g_vars->scene33_var08 - g_vars->scene33_ventsX[i] < 0 != g_vars->scene33_var07->_ox - g_vars->scene33_ventsX[i] < 0)
+ && g_vars->scene33_ventsState[i] != g_vars->scene33_var06[i])
+ sceneHandler33_switchVent(g_fp->_currentScene->getStaticANIObject1ById(ANI_VENT_33, i));
+
+ g_vars->scene33_var08 = g_vars->scene33_var07->_ox;
+}
+
void sceneHandler33_tryCube() {
if (g_fp->getObjectState(sO_Cube) == g_fp->getObjectEnumState(sO_Cube, sO_In_32))
chainQueue(QU_KBK33_GO, 0);