aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--engines/fullpipe/constants.h1
-rw-r--r--engines/fullpipe/scenes/scene14.cpp28
2 files changed, 25 insertions, 4 deletions
diff --git a/engines/fullpipe/constants.h b/engines/fullpipe/constants.h
index 36ef374e45..ff87b802db 100644
--- a/engines/fullpipe/constants.h
+++ b/engines/fullpipe/constants.h
@@ -596,6 +596,7 @@ namespace Fullpipe {
#define MSG_SC14_SHOWBALLLAST 3246
#define MSG_SC14_SHOWBALLMAN 1254
#define MSG_SC14_STARTARCADE 3252
+#define MV_BAL14_FALL 1258
#define MV_BAL14_SPIN 1247
#define MV_BAL14_TOGMA 3214
#define MV_MAN14_DECLINE 1239
diff --git a/engines/fullpipe/scenes/scene14.cpp b/engines/fullpipe/scenes/scene14.cpp
index f81bcceb54..c4b7acb4a0 100644
--- a/engines/fullpipe/scenes/scene14.cpp
+++ b/engines/fullpipe/scenes/scene14.cpp
@@ -408,14 +408,34 @@ bool sceneHandler14_sub04(ExCommand *cmd) {
return false;
}
-void sceneHandler14_sub07() {
- warning("STUB: sceneHandler14_sub07()");
-}
-
void sceneHandler14_sub08() {
warning("STUB: sceneHandler14_sub08()");
}
+void sceneHandler14_sub07() {
+ g_vars->scene14_var10->stopAnim_maybe();
+ g_vars->scene14_var10->_priority = 27;
+
+ MessageQueue *mq = new MessageQueue(g_fp->_globalMessageQueueList->compact());
+ ExCommand *ex = new ExCommand(ANI_BALL14, 1, MV_BAL14_FALL, 0, 0, 0, 1, 0, 0, 0);
+
+ ex->_keyCode = g_vars->scene14_var10->_okeyCode;
+ ex->_excFlags |= 2;
+ ex->_field_24 = 1;
+ mq->addExCommandToEnd(ex);
+
+ ex = new ExCommand(ANI_BALL14, 6, 0, 0, 0, 0, 1, 0, 0, 0);
+ ex->_keyCode = g_vars->scene14_var10->_okeyCode;
+ ex->_excFlags |= 3;
+ mq->addExCommandToEnd(ex);
+ mq->chain(0);
+
+ g_vars->scene14_var11.push_back(g_vars->scene14_var10);
+ g_vars->scene14_var10 = 0;
+
+ sceneHandler14_sub08();
+}
+
void sceneHandler14_sub09() {
warning("STUB: sceneHandler14_sub09()");
}