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; | 
