aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEugene Sandulenko2014-01-07 16:50:52 +0200
committerEugene Sandulenko2014-01-07 16:50:52 +0200
commitae5389af8bd3b248b3bbbcbf8fd62284586b0d22 (patch)
tree067bb1f139d24b0f270b2f5f2820df5ee4bb234b
parent7292a08b8a96fba418249db65614f5898c9f25c5 (diff)
downloadscummvm-rg350-ae5389af8bd3b248b3bbbcbf8fd62284586b0d22.tar.gz
scummvm-rg350-ae5389af8bd3b248b3bbbcbf8fd62284586b0d22.tar.bz2
scummvm-rg350-ae5389af8bd3b248b3bbbcbf8fd62284586b0d22.zip
FULLPIPE: Implement sceneHandler32_ladderLogic()
-rw-r--r--engines/fullpipe/constants.h1
-rw-r--r--engines/fullpipe/scenes/scene32.cpp16
2 files changed, 16 insertions, 1 deletions
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) {