aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--engines/fullpipe/constants.h1
-rw-r--r--engines/fullpipe/scenes/scene27.cpp26
2 files changed, 26 insertions, 1 deletions
diff --git a/engines/fullpipe/constants.h b/engines/fullpipe/constants.h
index 10b2f134b8..561c1af20f 100644
--- a/engines/fullpipe/constants.h
+++ b/engines/fullpipe/constants.h
@@ -1096,6 +1096,7 @@ namespace Fullpipe {
#define MSG_SC27_STARTWIPE 2057
#define MSG_SC27_TAKEVENT 4584
#define MV_MAN27_FLOW 1990
+#define MV_MAN27_THROWBET 1989
#define PIC_SC27_HITZONE2 4756
#define SND_27_027 4128
#define SND_27_044 4687
diff --git a/engines/fullpipe/scenes/scene27.cpp b/engines/fullpipe/scenes/scene27.cpp
index 529e0d6c1e..24f2e50c59 100644
--- a/engines/fullpipe/scenes/scene27.cpp
+++ b/engines/fullpipe/scenes/scene27.cpp
@@ -180,8 +180,32 @@ void sceneHandler27_showNextBat() {
warning("STUB: sceneHandler27_showNextBat()");
}
+int sceneHandler27_updateScreenCallback() {
+ warning("STUB: sceneHandler27_updateScreenCallback()");
+
+ return 0;
+}
+
+void sceneHandler27_aniManCallback(int *arg) {
+ warning("STUB: sceneHandler27_aniManCallback()");
+}
+
void sceneHandler27_throwBat() {
- warning("STUB: sceneHandler27_throwBat()");
+ if (getGameLoaderInteractionController()->_flag24)
+ g_fp->_updateScreenCallback = sceneHandler27_updateScreenCallback;
+
+ g_fp->_aniMan->_callback2 = sceneHandler27_aniManCallback;
+
+ g_fp->_aniMan->startAnim(MV_MAN27_THROWBET, 0, -1);
+
+ getCurrSceneSc2MotionController()->clearEnabled();
+ getGameLoaderInteractionController()->disableFlag24();
+
+ g_fp->_behaviorManager->setFlagByStaticAniObject(g_fp->_aniMan, 0);
+
+ g_vars->scene27_var09 = 0;
+
+ g_vars->scene27_bat->hide();
}
void sceneHandler27_clickBat(ExCommand *cmd) {