aboutsummaryrefslogtreecommitdiff
path: root/engines/fullpipe
diff options
context:
space:
mode:
authorEugene Sandulenko2014-03-28 23:27:21 +0200
committerEugene Sandulenko2014-03-28 23:27:38 +0200
commit620411bfebe72fb0f60c4d8f64558be088cff58d (patch)
tree4ca55886e0d2b37bb5d71f19d8e9c68e05ccf1e7 /engines/fullpipe
parentb8aca5c202012dd6121598f06aca6715cbd365ca (diff)
downloadscummvm-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.h3
-rw-r--r--engines/fullpipe/scenes/scene29.cpp25
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() {