diff options
author | Eugene Sandulenko | 2013-12-31 22:18:35 +0200 |
---|---|---|
committer | Eugene Sandulenko | 2013-12-31 22:18:35 +0200 |
commit | 62aaa56dbd2f59924f9edd1a918fe3adf0d32295 (patch) | |
tree | 2e09bec2fce789662fb0eb216616dcafa68015fe | |
parent | 9d5f46c3660465f845f64b9e2643fdba79943c4d (diff) | |
download | scummvm-rg350-62aaa56dbd2f59924f9edd1a918fe3adf0d32295.tar.gz scummvm-rg350-62aaa56dbd2f59924f9edd1a918fe3adf0d32295.tar.bz2 scummvm-rg350-62aaa56dbd2f59924f9edd1a918fe3adf0d32295.zip |
FULLPIPE: Implement sceneHandler14_showBallMan()
-rw-r--r-- | engines/fullpipe/scenes/scene14.cpp | 63 |
1 files changed, 44 insertions, 19 deletions
diff --git a/engines/fullpipe/scenes/scene14.cpp b/engines/fullpipe/scenes/scene14.cpp index 96abf3538d..f5ed3e0db3 100644 --- a/engines/fullpipe/scenes/scene14.cpp +++ b/engines/fullpipe/scenes/scene14.cpp @@ -160,8 +160,51 @@ void sceneHandler14_showBallGrandmaHit() { } } +void sceneHandler14_sub13() { + g_vars->scene14_var03 = 0; + + if (g_fp->_aniMan->_movement) + g_fp->_aniMan->_movement->gotoLastFrame(); + + g_fp->_aniMan->stopAnim_maybe(); + + handleObjectInteraction(g_fp->_aniMan, g_fp->_currentScene->getPictureObjectById(PIC_SC14_RTRUBA, 0), 0); + + g_vars->scene14_grandma->changeStatics2(ST_GMA_SIT); + + chainQueue(QU_SC14_ENDARCADE, 0); + + getGameLoaderInteractionController()->disableFlag24(); + getCurrSceneSc2MotionController()->clearEnabled(); +} + void sceneHandler14_showBallMan() { - warning("STUB: sceneHandler14_showBallMan()"); + if (g_vars->scene14_var10) { + g_vars->scene14_var10->show1(g_vars->scene14_var14 - 166, g_vars->scene14_var15 + 40, MV_BAL14_TOGMA, 0); + g_vars->scene14_var10->_priority = 27; + + MessageQueue *mq = new MessageQueue(g_fp->_globalMessageQueueList->compact()); + ExCommand *ex = new ExCommand(ANI_BALL14, 1, MV_BAL14_TOGMA, 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_var10->startAnim(MV_BAL14_TOGMA, 0, -1); + + g_vars->scene14_var11.push_back(g_vars->scene14_var10); + g_vars->scene14_var10 = 0; + + if (g_vars->scene14_var14 >= 1300) + sceneHandler14_sub13(); + } } void sceneHandler14_manKickBall() { @@ -361,24 +404,6 @@ void sceneHandler14_sub12() { g_fp->_aniMan2 = g_vars->scene14_grandma; } -void sceneHandler14_sub13() { - g_vars->scene14_var03 = 0; - - if (g_fp->_aniMan->_movement) - g_fp->_aniMan->_movement->gotoLastFrame(); - - g_fp->_aniMan->stopAnim_maybe(); - - handleObjectInteraction(g_fp->_aniMan, g_fp->_currentScene->getPictureObjectById(PIC_SC14_RTRUBA, 0), 0); - - g_vars->scene14_grandma->changeStatics2(ST_GMA_SIT); - - chainQueue(QU_SC14_ENDARCADE, 0); - - getGameLoaderInteractionController()->disableFlag24(); - getCurrSceneSc2MotionController()->clearEnabled(); -} - int sceneHandler14(ExCommand *cmd) { if (cmd->_messageKind != 17) return 0; |