aboutsummaryrefslogtreecommitdiff
path: root/engines/fullpipe
diff options
context:
space:
mode:
Diffstat (limited to 'engines/fullpipe')
-rw-r--r--engines/fullpipe/constants.h4
-rw-r--r--engines/fullpipe/scenes/scene29.cpp16
2 files changed, 19 insertions, 1 deletions
diff --git a/engines/fullpipe/constants.h b/engines/fullpipe/constants.h
index 6dc368599b..53f5c87d0b 100644
--- a/engines/fullpipe/constants.h
+++ b/engines/fullpipe/constants.h
@@ -1302,6 +1302,8 @@ namespace Fullpipe {
#define MV_PTR_MOVEFAST 2102
#define MV_SHG_HITASS 2151
#define MV_SHR_HITASS 2152
+#define MV_STR1_SHOOT 2109
+#define MV_STR2_SHOOT 2112
#define PIC_SC29_LTRUBA 2081
#define QU_SC29_MANFROM_L 2101
#define QU_SC29_MANFROM_R 2104
@@ -1311,6 +1313,8 @@ namespace Fullpipe {
#define SND_29_029 4759
#define ST_ASS_NORM 2122
#define ST_MAN29_RUNR 2140
+#define ST_STR1_RIGHT 2143
+#define ST_STR2_RIGHT 2144
// Scene 30
#define ANI_LEG 2322
diff --git a/engines/fullpipe/scenes/scene29.cpp b/engines/fullpipe/scenes/scene29.cpp
index 5d885a5af1..0820f768b5 100644
--- a/engines/fullpipe/scenes/scene29.cpp
+++ b/engines/fullpipe/scenes/scene29.cpp
@@ -313,7 +313,21 @@ void sceneHandler29_assHitRed() {
}
void sceneHandler29_shoot() {
- warning("STUB: sceneHandler29_shoot()");
+ if (g_vars->scene29_var10 && g_vars->scene29_var20 < 1310) {
+ if (g_fp->_rnd->getRandomNumber(1) || g_vars->scene29_shooter1->_movement || g_vars->scene29_shooter1->_statics->_staticsId != ST_STR1_RIGHT) {
+ if (!g_vars->scene29_shooter2->_movement && g_vars->scene29_shooter2->_statics->_staticsId == ST_STR2_RIGHT) {
+ if (g_vars->scene29_shooter2->_flags & 4) {
+ g_vars->scene29_shooter2->startAnim(MV_STR2_SHOOT, 0, -1);
+
+ g_vars->scene29_var13 = 0;
+ }
+ }
+ } else {
+ g_vars->scene29_shooter1->startAnim(MV_STR1_SHOOT, 0, -1);
+
+ g_vars->scene29_var13 = 0;
+ }
+ }
}
void sceneHandler29_animBearded() {