aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--engines/fullpipe/constants.h1
-rw-r--r--engines/fullpipe/scenes/scene11.cpp22
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;