From ae5389af8bd3b248b3bbbcbf8fd62284586b0d22 Mon Sep 17 00:00:00 2001 From: Eugene Sandulenko Date: Tue, 7 Jan 2014 16:50:52 +0200 Subject: FULLPIPE: Implement sceneHandler32_ladderLogic() --- engines/fullpipe/constants.h | 1 + engines/fullpipe/scenes/scene32.cpp | 16 +++++++++++++++- 2 files changed, 16 insertions(+), 1 deletion(-) (limited to 'engines/fullpipe') diff --git a/engines/fullpipe/constants.h b/engines/fullpipe/constants.h index 532cfdcdeb..21ae1d927d 100644 --- a/engines/fullpipe/constants.h +++ b/engines/fullpipe/constants.h @@ -1087,6 +1087,7 @@ namespace Fullpipe { #define QU_SC32_ENTERLIFT 2827 #define QU_SC32_EXITLIFT 2828 #define QU_SC32_FALLHANDLE 5351 +#define QU_SC32_FROMLADDER 4300 #define QU_SC32_SHOWHANDLE 2399 #define ST_BTN32_OFF 5349 #define ST_BTN32_ON 5350 diff --git a/engines/fullpipe/scenes/scene32.cpp b/engines/fullpipe/scenes/scene32.cpp index 38a29d31c3..ac26cf452c 100644 --- a/engines/fullpipe/scenes/scene32.cpp +++ b/engines/fullpipe/scenes/scene32.cpp @@ -172,7 +172,21 @@ void sceneHandler32_animateCactus() { } void sceneHandler32_ladderLogic(ExCommand *cmd) { - warning("STUB: sceneHandler32_ladderLogic(cmd)"); + MessageQueue *mq = new MessageQueue(g_fp->_currentScene->getMessageQueueById(QU_SC32_FROMLADDER), 0, 0); + + if (g_fp->_currentScene->getPictureObjectIdAtPos(cmd->_sceneClickX, cmd->_sceneClickY) != PIC_SC32_LADDER) + mq->addExCommandToEnd(cmd->createClone()); + + mq->setFlags(mq->getFlags() | 1); + + g_fp->_aniMan->changeStatics2(ST_MAN_STANDLADDER); + if (!mq->chain(g_fp->_aniMan)) + delete mq; + + g_vars->scene32_var09 = 0; + + getCurrSceneSc2MotionController()->setEnabled(); + getGameLoaderInteractionController()->enableFlag24(); } void sceneHandler32_potLogic(ExCommand *cmd) { -- cgit v1.2.3