aboutsummaryrefslogtreecommitdiff
path: root/engines/fullpipe
diff options
context:
space:
mode:
authorEugene Sandulenko2013-12-22 12:20:20 +0200
committerEugene Sandulenko2013-12-22 12:20:20 +0200
commit0d1876ef2e243b62b4754940b46a9a1096fbc298 (patch)
treefef9954e01238700f4b55a71fa6c2defb80cb2d1 /engines/fullpipe
parent24ca8ed2e76ca98b6704fb2c3514765af7b01051 (diff)
downloadscummvm-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.h1
-rw-r--r--engines/fullpipe/scenes/scene08.cpp49
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;