diff options
author | Eugene Sandulenko | 2013-12-22 12:20:20 +0200 |
---|---|---|
committer | Eugene Sandulenko | 2013-12-22 12:20:20 +0200 |
commit | 0d1876ef2e243b62b4754940b46a9a1096fbc298 (patch) | |
tree | fef9954e01238700f4b55a71fa6c2defb80cb2d1 /engines/fullpipe | |
parent | 24ca8ed2e76ca98b6704fb2c3514765af7b01051 (diff) | |
download | scummvm-rg350-0d1876ef2e243b62b4754940b46a9a1096fbc298.tar.gz scummvm-rg350-0d1876ef2e243b62b4754940b46a9a1096fbc298.tar.bz2 scummvm-rg350-0d1876ef2e243b62b4754940b46a9a1096fbc298.zip |
FULLPIPE: Implement sceneHandler08_jumpOff() and sceneHandler08_jumpLogic()
Diffstat (limited to 'engines/fullpipe')
-rw-r--r-- | engines/fullpipe/constants.h | 1 | ||||
-rw-r--r-- | engines/fullpipe/scenes/scene08.cpp | 49 |
2 files changed, 33 insertions, 17 deletions
diff --git a/engines/fullpipe/constants.h b/engines/fullpipe/constants.h index 9791aca8fb..6e68f97455 100644 --- a/engines/fullpipe/constants.h +++ b/engines/fullpipe/constants.h @@ -209,6 +209,7 @@ namespace Fullpipe { #define MV_MAN6_TAKEBALL 2691 #define MV_MAN6_THROWBALL 2692 #define MV_MAN8_BADLUCK 783 +#define MV_MAN8_JUMPOFF 2969 #define MV_MAN8_SITDOWN 2968 #define MV_MANHDL_HANDLEDOWN 630 #define MV_MANHDL_HANDLEUP 631 diff --git a/engines/fullpipe/scenes/scene08.cpp b/engines/fullpipe/scenes/scene08.cpp index e636b07df3..763e6f7582 100644 --- a/engines/fullpipe/scenes/scene08.cpp +++ b/engines/fullpipe/scenes/scene08.cpp @@ -183,14 +183,6 @@ void sceneHandler08_airMoves() { warning("STUB: sceneHandler08_airMoves()"); } -void sceneHandler08_jumpLogic(ExCommand *cmd) { - warning("STUB: sceneHandler08_jumpLogic(cmd)"); -} - -void sceneHandler08_calcFlight() { - warning("STUB: sceneHandler08_calcFlight()"); -} - void sceneHandler08_finishArcade() { g_vars->scene08_var06 = 0; @@ -198,6 +190,38 @@ void sceneHandler08_finishArcade() { getCurrSceneSc2MotionController()->setEnabled(); } +void sceneHandler08_jumpOff(ExCommand *cmd) { + MessageQueue *mq = new MessageQueue(g_fp->_globalMessageQueueList->compact()); + + mq->addExCommandToEnd(new ExCommand(cmd)); + mq->setFlags(mq->getFlags() | 1); + + g_fp->_globalMessageQueueList->addMessageQueue(mq); + + g_fp->_aniMan->startAnim(MV_MAN8_JUMPOFF, mq->_id, -1); + + sceneHandler08_finishArcade(); +} + +void sceneHandler08_standUp() { + chainQueue(QU_SC8_STANDUP, 1); + g_vars->scene08_var03 = 0; +} + +void sceneHandler08_jumpLogic(ExCommand *cmd) { + if (g_fp->_currentScene->getPictureObjectIdAtPos(cmd->_sceneClickX, cmd->_sceneClickY) == PIC_SC8_LADDERD) { + sceneHandler08_jumpOff(cmd); + + cmd->_messageKind = 0; + } else { + sceneHandler08_standUp(); + } +} + +void sceneHandler08_calcFlight() { + warning("STUB: sceneHandler08_calcFlight()"); +} + void sceneHandler08_checkEndArcade() { if (g_vars->scene08_var02) { int x = g_fp->_aniMan->_ox; @@ -247,10 +271,6 @@ void sceneHandler08_calcOffset() { warning("STUB: sceneHandler08_calcOffset()"); } -void sceneHandler08_jumpOff() { - warning("STUB: sceneHandler08_jumpOff()"); -} - void sceneHandler08_pushCallback(int *par) { warning("STUB: sceneHandler08_pushCallback()"); } @@ -268,11 +288,6 @@ void sceneHandler08_sitDown() { g_vars->scene08_var03 = 1; } -void sceneHandler08_standUp() { - chainQueue(QU_SC8_STANDUP, 1); - g_vars->scene08_var03 = 0; -} - int sceneHandler08_updateScreenCallback() { int res; |