diff options
-rw-r--r-- | engines/fullpipe/constants.h | 3 | ||||
-rw-r--r-- | engines/fullpipe/scenes/scene11.cpp | 35 |
2 files changed, 36 insertions, 2 deletions
diff --git a/engines/fullpipe/constants.h b/engines/fullpipe/constants.h index fa9b3c15b5..a6dc51dfe5 100644 --- a/engines/fullpipe/constants.h +++ b/engines/fullpipe/constants.h @@ -501,15 +501,16 @@ namespace Fullpipe { #define MSG_SC11_RESTARTMAN 1133 #define MSG_SC11_SHOWSWING 1124 #define MSG_SC11_SITSWINGER 5198 +#define MV_MAN11_SWING_0 1109 #define PIC_SC11_HINT 5170 #define QU_SC11_MANFALL 3017 #define ST_BTS11_2 2707 #define ST_KCH_STATIC 1122 +#define ST_MAN11_EMPTY 1110 #define ST_SWR_SIT 1147 #define ST_SWR_SITBALD 1153 #define ST_SWR_STAND3 3014 - // Scene 15 #define ANI_BOOT_15 4779 #define ANI_INV_BOOT 881 diff --git a/engines/fullpipe/scenes/scene11.cpp b/engines/fullpipe/scenes/scene11.cpp index 388421fc22..b3dc4a6de1 100644 --- a/engines/fullpipe/scenes/scene11.cpp +++ b/engines/fullpipe/scenes/scene11.cpp @@ -163,8 +163,41 @@ void sceneHandler11_hitMan() { } } +int sceneHandler11_updateScreenCallback() { + int res = g_fp->drawArcadeOverlay(g_vars->scene11_var02); + + if (!res) + g_fp->_updateScreenCallback = 0; + + return res; +} + void sceneHandler11_manToSwing() { - warning("STUB: sceneHandler11_manToSwing()"); + g_vars->scene11_var02 = 1; + + getCurrSceneSc2MotionController()->clearEnabled(); + getGameLoaderInteractionController()->disableFlag24(); + + g_fp->_aniMan2->hide(); + + g_vars->scene11_var15 = 0; + g_vars->scene11_var12 = 1.9849218; + + g_vars->scene11_dudeOnSwing->_flags &= 0xFFFB; + g_vars->scene11_dudeOnSwing = g_fp->_currentScene->getStaticANIObject1ById(ANI_MAN11, -1); + g_vars->scene11_dudeOnSwing->_statics = g_vars->scene11_dudeOnSwing->getStaticsById(ST_MAN11_EMPTY); + g_vars->scene11_dudeOnSwing->_movement = 0; + g_vars->scene11_dudeOnSwing->show1(690, 215, MV_MAN11_SWING_0, 0); + g_vars->scene11_dudeOnSwing->_priority = 20; + g_vars->scene11_dudeOnSwing->startAnim(MV_MAN11_SWING_0, 0, -1); + g_vars->scene11_dudeOnSwing->_movement->setDynamicPhaseIndex(45); + + g_vars->scene11_var01.addItem(g_fp->_aniMan->_id); + + g_fp->_currentScene->_x = 1400 - g_fp->_sceneRect.right; + + g_vars->scene11_var03 = 1; + g_fp->_updateScreenCallback = sceneHandler11_updateScreenCallback; } void sceneHandler11_putBoot() { |