aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEugene Sandulenko2013-12-28 11:48:57 +0200
committerEugene Sandulenko2013-12-28 14:17:49 +0200
commit08922cd3c46ba6a083baef02e146f8bf52ee5e1d (patch)
treeae238fb100274926ee9083ce38279a6b24f312cd
parent8b308be18a699237b61760b61afa1dbc0cd5bc7a (diff)
downloadscummvm-rg350-08922cd3c46ba6a083baef02e146f8bf52ee5e1d.tar.gz
scummvm-rg350-08922cd3c46ba6a083baef02e146f8bf52ee5e1d.tar.bz2
scummvm-rg350-08922cd3c46ba6a083baef02e146f8bf52ee5e1d.zip
FULLPIPE: Implement sceneHandler11_swingerJumpDown()
-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;