diff options
Diffstat (limited to 'engines')
-rw-r--r-- | engines/fullpipe/scenes/scene33.cpp | 13 |
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); |