diff options
author | Eugene Sandulenko | 2014-01-02 22:43:51 +0200 |
---|---|---|
committer | Eugene Sandulenko | 2014-01-02 22:43:51 +0200 |
commit | 9ee4cf899b26e3bc757bf77c4cda3dd3c67f0fd0 (patch) | |
tree | c9b803c0342760d72da8de2a8756e5f05566e295 /engines/fullpipe/scenes/scene22.cpp | |
parent | 82367c9b4083b52288caece983413c373c84d9ed (diff) | |
download | scummvm-rg350-9ee4cf899b26e3bc757bf77c4cda3dd3c67f0fd0.tar.gz scummvm-rg350-9ee4cf899b26e3bc757bf77c4cda3dd3c67f0fd0.tar.bz2 scummvm-rg350-9ee4cf899b26e3bc757bf77c4cda3dd3c67f0fd0.zip |
FULLPIPE: Implement sceneHandler22_handleDown() and smaller ones
Diffstat (limited to 'engines/fullpipe/scenes/scene22.cpp')
-rw-r--r-- | engines/fullpipe/scenes/scene22.cpp | 42 |
1 files changed, 39 insertions, 3 deletions
diff --git a/engines/fullpipe/scenes/scene22.cpp b/engines/fullpipe/scenes/scene22.cpp index b57cf9399b..8e1cd9e9df 100644 --- a/engines/fullpipe/scenes/scene22.cpp +++ b/engines/fullpipe/scenes/scene22.cpp @@ -106,15 +106,51 @@ void scene22_setBagState() { } void sceneHandler22_showStool() { - warning("STUB: sceneHandler22_showStool()"); + chainQueue(QU_SC22_SHOWSTOOL, 0); } void sceneHandler22and23_hideStool() { - warning("STUB: sceneHandler22and23_hideStool()"); + g_fp->_currentScene->getStaticANIObject1ById(ANI_TABURETTE, -1)->hide(); } void sceneHandler22_handleDown() { - warning("STUB: sceneHandler22_handleDown()"); + if (g_vars->scene22_bag->_statics->_staticsId == ST_MSH_SIT) { + chainQueue(QU_MSH_CRANEOUT, 1); + g_vars->scene22_var08 = 0; + } else { + ++g_vars->scene22_var11; + + int qid; + + if (g_vars->scene22_var11 == 3) { + chainQueue(QU_SC22_FALLSACK_GMA, 1); + qid = QU_SC22_FALLBROOM; + } else { + qid = QU_SC22_FALLSACK; + } + + chainQueue(qid, 1); + + int state; + + if (g_vars->scene22_var11) { + if (g_vars->scene22_var11 == 1) { + state = g_fp->getObjectEnumState(sO_Bag_22, sO_FallenOnce); + } else if (g_vars->scene22_var11 == 2) { + state = g_fp->getObjectEnumState(sO_Bag_22, sO_FallenTwice); + } else { + state = g_fp->getObjectEnumState(sO_Bag_22, sO_BrushHasFallen); + } + } else { + state = g_fp->getObjectEnumState(sO_Bag_22, sO_NotFallen); + } + + g_fp->setObjectState(sO_Bag_22, state); + } + g_vars->scene22_var10 = 1; + + g_fp->_behaviorManager->setBehaviorEnabled(g_vars->scene22_bag, ST_MSH_SIT, QU_MSH_CRANEOUT, 1); + g_fp->_behaviorManager->setBehaviorEnabled(g_vars->scene22_bag, ST_MSH_SIT, QU_MSH_MOVE, 0); } void sceneHandler22_sub01(ExCommand *cmd) { |