From 620411bfebe72fb0f60c4d8f64558be088cff58d Mon Sep 17 00:00:00 2001 From: Eugene Sandulenko Date: Fri, 28 Mar 2014 23:27:21 +0200 Subject: FULLPIPE: Implement sceneHandler29_shootersEscape() --- engines/fullpipe/constants.h | 3 +++ engines/fullpipe/scenes/scene29.cpp | 25 ++++++++++++++++++++++++- 2 files changed, 27 insertions(+), 1 deletion(-) (limited to 'engines/fullpipe') diff --git a/engines/fullpipe/constants.h b/engines/fullpipe/constants.h index 53f5c87d0b..e670645431 100644 --- a/engines/fullpipe/constants.h +++ b/engines/fullpipe/constants.h @@ -1305,6 +1305,7 @@ namespace Fullpipe { #define MV_STR1_SHOOT 2109 #define MV_STR2_SHOOT 2112 #define PIC_SC29_LTRUBA 2081 +#define QU_SC29_ESCAPE 2129 #define QU_SC29_MANFROM_L 2101 #define QU_SC29_MANFROM_R 2104 #define QU_SC29_MANTO_L 2103 @@ -1315,6 +1316,8 @@ namespace Fullpipe { #define ST_MAN29_RUNR 2140 #define ST_STR1_RIGHT 2143 #define ST_STR2_RIGHT 2144 +#define ST_STR1_STAND 2110 +#define ST_STR2_STAND 2113 // Scene 30 #define ANI_LEG 2322 diff --git a/engines/fullpipe/scenes/scene29.cpp b/engines/fullpipe/scenes/scene29.cpp index 910868608d..27fc09adce 100644 --- a/engines/fullpipe/scenes/scene29.cpp +++ b/engines/fullpipe/scenes/scene29.cpp @@ -330,7 +330,30 @@ void sceneHandler29_sub05() { } void sceneHandler29_shootersEscape() { - warning("STUB: sceneHandler29_shootersEscape()"); + if (g_vars->scene29_var10) { + g_vars->scene29_var20 += 2; + + g_fp->_aniMan->setOXY(g_vars->scene29_var20, g_vars->scene29_var21); + + if (g_vars->scene29_var20 > 1310 && !g_vars->scene29_shooter1->_movement && !g_vars->scene29_shooter2->_movement + && g_vars->scene29_shooter1->_statics->_staticsId == ST_STR1_RIGHT) { + g_vars->scene29_var13 = 0; + + g_vars->scene29_shooter1->changeStatics2(ST_STR1_STAND); + g_vars->scene29_shooter2->changeStatics2(ST_STR2_STAND); + + chainQueue(QU_SC29_ESCAPE, 1); + + g_vars->scene29_ass->queueMessageQueue(0); + g_vars->scene29_ass->hide(); + + g_fp->setObjectState(sO_LeftPipe_29, g_fp->getObjectEnumState(sO_LeftPipe_29, sO_IsOpened)); + } + } else if (g_vars->scene29_var09) { + g_vars->scene29_var20 -= 4; + + g_fp->_aniMan->setOXY(g_vars->scene29_var20, g_vars->scene29_var21); + } } void sceneHandler29_sub07() { -- cgit v1.2.3