aboutsummaryrefslogtreecommitdiff
path: root/engines
diff options
context:
space:
mode:
authorEugene Sandulenko2014-03-12 23:27:33 +0200
committerEugene Sandulenko2014-03-12 23:33:12 +0200
commit2a81fb5e1e429f0fc2d6a1ad05fc814747a355f5 (patch)
tree4f7129efae2acd50c48525a0f5b72c82856831ba /engines
parenta7f506967d8bac1d4e8b83895e77b5c59f136259 (diff)
downloadscummvm-rg350-2a81fb5e1e429f0fc2d6a1ad05fc814747a355f5.tar.gz
scummvm-rg350-2a81fb5e1e429f0fc2d6a1ad05fc814747a355f5.tar.bz2
scummvm-rg350-2a81fb5e1e429f0fc2d6a1ad05fc814747a355f5.zip
FULLPIPE: Implement sceneHandler18_showManJumpTo()
Diffstat (limited to 'engines')
-rw-r--r--engines/fullpipe/constants.h4
-rw-r--r--engines/fullpipe/scenes/scene18and19.cpp38
2 files changed, 41 insertions, 1 deletions
diff --git a/engines/fullpipe/constants.h b/engines/fullpipe/constants.h
index 62f344e6dd..9062fe949d 100644
--- a/engines/fullpipe/constants.h
+++ b/engines/fullpipe/constants.h
@@ -902,6 +902,7 @@ namespace Fullpipe {
#define MV_KSL_SWINGBOY 1462
#define MV_KSL_SWINGGIRL 1464
#define MV_KSL_SWINGMAN 1502
+#define MV_MAN18_JUMPTOTRUBA 1511
#define MV_MAN18_STANDKRESLO 1500
#define MV_WHR18_SPIN 1300
#define PIC_SC18_DOMIN 5184
@@ -909,6 +910,9 @@ namespace Fullpipe {
#define PIC_SC18_LADDER2 1472
#define PIC_SC18_LADDER3 3299
#define PIC_SC18_RTRUBA 1520
+#define QU_SC19_MANJUMP1 1516
+#define QU_SC19_MANJUMP2 1517
+#define QU_SC19_MANJUMP3 1518
#define SND_18_006 3906
#define SND_18_010 4994
#define ST_KSL_BOY 1463
diff --git a/engines/fullpipe/scenes/scene18and19.cpp b/engines/fullpipe/scenes/scene18and19.cpp
index 1fb0f2eaaf..76b118138b 100644
--- a/engines/fullpipe/scenes/scene18and19.cpp
+++ b/engines/fullpipe/scenes/scene18and19.cpp
@@ -408,7 +408,43 @@ void sceneHandler18and19_showManJump() {
}
void sceneHandler18_showManJumpTo() {
- warning("STUB: sceneHandler18_showManJumpTo()");
+ int x, y;
+
+ if (g_vars->scene18_var07[g_vars->scene18_var31]->ani->_movement) {
+ x = g_vars->scene18_var07[g_vars->scene18_var31]->ani->_movement->_ox;
+ y = g_vars->scene18_var07[g_vars->scene18_var31]->ani->_movement->_oy;
+ } else {
+ x = g_vars->scene18_var07[g_vars->scene18_var31]->ani->_ox;
+ y = g_vars->scene18_var07[g_vars->scene18_var31]->ani->_oy;
+ }
+
+ g_fp->_aniMan->show1(x + 62, y + 5, MV_MAN18_JUMPTOTRUBA, 0);
+ g_fp->_aniMan->_priority = 35;
+
+ int mqid = 0;
+
+ if (g_vars->scene18_var13 == 1) {
+ mqid = QU_SC19_MANJUMP1;
+ } else if (g_vars->scene18_var13 == 2) {
+ mqid = QU_SC19_MANJUMP2;
+ } else if (g_vars->scene18_var13 == 3) {
+ mqid = QU_SC19_MANJUMP3;
+ }
+
+ if (mqid) {
+ MessageQueue *mq = new MessageQueue(g_fp->_currentScene->getMessageQueueById(mqid), 0, 0);
+
+ g_fp->_aniMan2 = g_fp->_aniMan;
+ g_vars->scene18_var15 = 0;
+
+ mq->setFlags(mq->getFlags() | 1);
+ mq->chain(0);
+ }
+
+ g_vars->scene18_var07[g_vars->scene18_var31]->sflags = 1;
+
+ g_vars->scene18_var07[g_vars->scene18_var31]->ani->changeStatics2(ST_KSL_NORM);
+ g_vars->scene18_var07[g_vars->scene18_var31]->ani->_priority = 30;
}
void sceneHandler18and19_showGirlJumpTo() {