diff options
Diffstat (limited to 'engines/fullpipe')
-rw-r--r-- | engines/fullpipe/constants.h | 4 | ||||
-rw-r--r-- | engines/fullpipe/scenes/scene29.cpp | 16 |
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() { |