diff options
-rw-r--r-- | engines/fullpipe/constants.h | 1 | ||||
-rw-r--r-- | engines/fullpipe/scenes/scene14.cpp | 28 |
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()"); } |