From 5391fa723aa82cb23dc809c8a42ecd18de72aeaa Mon Sep 17 00:00:00 2001 From: Eugene Sandulenko Date: Tue, 31 Dec 2013 23:53:32 +0200 Subject: FULLPIPE: Implement sceneHandler_sub07() --- engines/fullpipe/constants.h | 1 + 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()"); } -- cgit v1.2.3