aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--engines/fullpipe/constants.h3
-rw-r--r--engines/fullpipe/scenes/scene11.cpp35
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() {