diff options
author | Eugene Sandulenko | 2014-01-16 23:37:11 +0200 |
---|---|---|
committer | Eugene Sandulenko | 2014-01-16 23:39:06 +0200 |
commit | 5ccec11d5263ef0596126ff6168e0263e6c8816e (patch) | |
tree | 2d6783dabe9f88b28d165c479ab7c0c9a8bb71aa /engines/fullpipe/scenes/scene35.cpp | |
parent | 0bb98d68767fd0d1f480ea820eed07b02fd5d04c (diff) | |
download | scummvm-rg350-5ccec11d5263ef0596126ff6168e0263e6c8816e.tar.gz scummvm-rg350-5ccec11d5263ef0596126ff6168e0263e6c8816e.tar.bz2 scummvm-rg350-5ccec11d5263ef0596126ff6168e0263e6c8816e.zip |
FULLPIPE: Implement sceneHandler35_startFlow()
Diffstat (limited to 'engines/fullpipe/scenes/scene35.cpp')
-rw-r--r-- | engines/fullpipe/scenes/scene35.cpp | 36 |
1 files changed, 35 insertions, 1 deletions
diff --git a/engines/fullpipe/scenes/scene35.cpp b/engines/fullpipe/scenes/scene35.cpp index b6453fa84a..4cf7fb45d1 100644 --- a/engines/fullpipe/scenes/scene35.cpp +++ b/engines/fullpipe/scenes/scene35.cpp @@ -86,7 +86,41 @@ void sceneHandler35_shrink() { } void sceneHandler35_startFlow() { - warning("STUB: sceneHandler35_startFlow()"); + if (g_fp->getObjectState(sO_Valve_35) == g_fp->getObjectEnumState(sO_Valve_35, sO_TurnedOn)) { + if ((g_vars->scene35_hose->_flags & 4) && g_vars->scene35_hose->_statics->_staticsId == ST_HZE_NORM) { + g_fp->_behaviorManager->setBehaviorEnabled(g_vars->scene35_bellyInflater, ST_PDV_SMALL, QU_PDV_SML_BLINK, 0); + g_fp->_behaviorManager->setBehaviorEnabled(g_vars->scene35_bellyInflater, ST_PDV_SMALL, QU_PDV_SML_TRY, 0); + + g_vars->scene35_bellyInflater->changeStatics2(ST_PDV_SMALL); + g_vars->scene35_bellyInflater->_flags &= 0xFEFF; + + MessageQueue *mq = new MessageQueue(g_fp->_currentScene->getMessageQueueById(QU_SC35_EATHOZE), 0, 0); + + mq->setFlags(mq->getFlags() | 1); + + ExCommand *cmd = new ExCommand(g_vars->scene35_bellyInflater->_id, 34, 256, 0, 0, 0, 1, 0, 0, 0); + + cmd->_excFlags |= 3; + cmd->_field_14 = 256; + cmd->_messageNum = 0; + + mq->addExCommandToEnd(cmd); + + if (!mq->chain(g_vars->scene35_bellyInflater)) + delete mq; + + g_vars->scene35_bellyInflater->_flags |= 1; + + getCurrSceneSc2MotionController()->enableLinks(sO_CloseThing, 1); + + g_fp->playSound(SND_35_012, 1); + } else { + if (!g_vars->scene35_var05) + g_vars->scene35_var05 = 98; + + g_fp->playSound(SND_35_011, 1); + } + } } void sceneHandler35_genFlies() { |