diff options
author | Eugene Sandulenko | 2014-03-28 23:27:21 +0200 |
---|---|---|
committer | Eugene Sandulenko | 2014-03-28 23:27:38 +0200 |
commit | 620411bfebe72fb0f60c4d8f64558be088cff58d (patch) | |
tree | 4ca55886e0d2b37bb5d71f19d8e9c68e05ccf1e7 /engines/fullpipe | |
parent | b8aca5c202012dd6121598f06aca6715cbd365ca (diff) | |
download | scummvm-rg350-620411bfebe72fb0f60c4d8f64558be088cff58d.tar.gz scummvm-rg350-620411bfebe72fb0f60c4d8f64558be088cff58d.tar.bz2 scummvm-rg350-620411bfebe72fb0f60c4d8f64558be088cff58d.zip |
FULLPIPE: Implement sceneHandler29_shootersEscape()
Diffstat (limited to 'engines/fullpipe')
-rw-r--r-- | engines/fullpipe/constants.h | 3 | ||||
-rw-r--r-- | engines/fullpipe/scenes/scene29.cpp | 25 |
2 files changed, 27 insertions, 1 deletions
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() { |