From 2a81fb5e1e429f0fc2d6a1ad05fc814747a355f5 Mon Sep 17 00:00:00 2001 From: Eugene Sandulenko Date: Wed, 12 Mar 2014 23:27:33 +0200 Subject: FULLPIPE: Implement sceneHandler18_showManJumpTo() --- engines/fullpipe/constants.h | 4 ++++ engines/fullpipe/scenes/scene18and19.cpp | 38 +++++++++++++++++++++++++++++++- 2 files changed, 41 insertions(+), 1 deletion(-) (limited to 'engines/fullpipe') 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() { -- cgit v1.2.3