diff options
-rw-r--r-- | engines/fullpipe/constants.h | 4 | ||||
-rw-r--r-- | engines/fullpipe/scenes/scene38.cpp | 18 |
2 files changed, 21 insertions, 1 deletions
diff --git a/engines/fullpipe/constants.h b/engines/fullpipe/constants.h index 4e40d116cf..1de35560b4 100644 --- a/engines/fullpipe/constants.h +++ b/engines/fullpipe/constants.h @@ -1311,7 +1311,11 @@ namespace Fullpipe { #define MSG_SC38_POSTHMRKICK 2256 #define MSG_SC38_PROPOSE 2287 #define MSG_SC38_TRYTAKEBOTTLE 3179 +#define MV_DMS_FOUR 3322 +#define MV_DMS_THREE 3321 #define MV_GLV_LOOKMAN 2167 +#define ST_DMS_3 3319 +#define ST_DMS_4 3320 #define ST_GLV_NOHAMMER 2159 #define ST_MLS_LEFT2 2291 #define QU_MLS_TURNR 2221 diff --git a/engines/fullpipe/scenes/scene38.cpp b/engines/fullpipe/scenes/scene38.cpp index a334b78d3c..f73aa7c782 100644 --- a/engines/fullpipe/scenes/scene38.cpp +++ b/engines/fullpipe/scenes/scene38.cpp @@ -110,7 +110,23 @@ void sceneHandler38_point() { } void sceneHandler38_hammerKick() { - warning("STUB: sceneHandler38_hammerKick()"); + if (!g_vars->scene38_shorty->_movement) { + if (g_vars->scene38_shorty->_flags & 4) { + if (!(g_vars->scene38_shorty->_flags & 2) && g_vars->scene38_var11 > 1 + && g_vars->scene38_shorty->_statics->_staticsId == ST_MLS_LEFT2 + && g_fp->_rnd->getRandomNumber(32767) < 3276) { + chainQueue(QU_MLS_TURNR, 0); + g_vars->scene38_var11 = 0; + } + } + } + + g_vars->scene38_domino1->setOXY(g_vars->scene38_domino1->_ox, g_vars->scene38_domino1->_oy - 2); + + if (g_vars->scene38_dominos->_statics->_staticsId == ST_DMS_3) + g_vars->scene38_dominos->startAnim(MV_DMS_THREE, 0, -1); + else if (g_vars->scene38_dominos->_statics->_staticsId == ST_DMS_4) + g_vars->scene38_dominos->startAnim(MV_DMS_FOUR, 0, -1); } void sceneHandler38_drink() { |