diff options
-rw-r--r-- | engines/fullpipe/constants.h | 1 | ||||
-rw-r--r-- | engines/fullpipe/scenes/scene11.cpp | 22 |
2 files changed, 20 insertions, 3 deletions
diff --git a/engines/fullpipe/constants.h b/engines/fullpipe/constants.h index 06b5f35544..f9c96611e2 100644 --- a/engines/fullpipe/constants.h +++ b/engines/fullpipe/constants.h @@ -514,6 +514,7 @@ namespace Fullpipe { #define QU_SC11_PUTBOOT1 2709 #define QU_SC11_PUTBOOT2 2710 #define QU_SC11_RESTARTMAN 1134 +#define QU_SWR_JUMPDOWN 1123 #define SND_11_022 3706 #define SND_11_024 3708 #define ST_BTS11_2 2707 diff --git a/engines/fullpipe/scenes/scene11.cpp b/engines/fullpipe/scenes/scene11.cpp index ead3777339..804a66b9d2 100644 --- a/engines/fullpipe/scenes/scene11.cpp +++ b/engines/fullpipe/scenes/scene11.cpp @@ -504,8 +504,23 @@ void sceneHandler11_sub06() { } } -void sceneHandler11_sub07() { - warning("STUB: sceneHandler11_sub07()"); +void sceneHandler11_swingerJumpDown() { + MessageQueue *mq = new MessageQueue(g_fp->_currentScene->getMessageQueueById(QU_SWR_JUMPDOWN), 0, 0); + + mq->setFlags(mq->getFlags() | 1); + + if (!mq->chain(g_vars->scene11_swingie)) + delete mq; + + g_vars->scene11_var19 = 0; + g_vars->scene11_var20 = 1; + g_vars->scene11_var06 = g_fp->_sceneRect.left; + + getCurrSceneSc2MotionController()->enableLinks(sO_CloseThing1, 0); + getCurrSceneSc2MotionController()->enableLinks(sO_CloseThing2, 1); + getCurrSceneSc2MotionController()->enableLinks(sO_CloseThing3, 0); + + getCurrSceneSc2MotionController()->replaceNodeX(905, 805); } void sceneHandler11_winArcade() { @@ -629,7 +644,8 @@ int sceneHandler11(ExCommand *cmd) { && g_vars->scene11_var19)) { if (!g_vars->scene11_swingie->_movement) { if ((g_vars->scene11_boots->_flags & 4) && g_vars->scene11_boots->_statics->_staticsId == ST_BTS11_2) { - sceneHandler11_sub07(); + sceneHandler11_swingerJumpDown(); + g_fp->_behaviorManager->updateBehaviors(); g_fp->startSceneTrack(); return res; |