aboutsummaryrefslogtreecommitdiff
path: root/engines/fullpipe
diff options
context:
space:
mode:
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() {