aboutsummaryrefslogtreecommitdiff
path: root/engines/fullpipe/scenes/scene14.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'engines/fullpipe/scenes/scene14.cpp')
-rw-r--r--engines/fullpipe/scenes/scene14.cpp28
1 files changed, 24 insertions, 4 deletions
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()");
}