diff options
Diffstat (limited to 'engines/fullpipe/scenes/scene14.cpp')
-rw-r--r-- | engines/fullpipe/scenes/scene14.cpp | 32 |
1 files changed, 27 insertions, 5 deletions
diff --git a/engines/fullpipe/scenes/scene14.cpp b/engines/fullpipe/scenes/scene14.cpp index c4b7acb4a0..82af3b1056 100644 --- a/engines/fullpipe/scenes/scene14.cpp +++ b/engines/fullpipe/scenes/scene14.cpp @@ -409,7 +409,19 @@ bool sceneHandler14_sub04(ExCommand *cmd) { } void sceneHandler14_sub08() { - warning("STUB: sceneHandler14_sub08()"); + g_vars->scene14_grandma->changeStatics2(ST_GMA_SIT); + + MessageQueue *mq = new MessageQueue; + ExCommand *ex = new ExCommand(ANI_GRANDMA, 2, 30, 0, 0, 0, 1, 0, 0, 0); + + ex->_excFlags |= 2; + mq->addExCommandToEnd(ex); + + ex = new ExCommand(ANI_GRANDMA, 1, MV_GMA_THROW, 0, 0, 0, 1, 0, 0, 0); + ex->_excFlags |= 2; + mq->addExCommandToEnd(ex); + + mq->chain(0); } void sceneHandler14_sub07() { @@ -436,14 +448,24 @@ void sceneHandler14_sub07() { sceneHandler14_sub08(); } -void sceneHandler14_sub09() { - warning("STUB: sceneHandler14_sub09()"); -} - void sceneHandler14_sub10() { warning("STUB: sceneHandler14_sub10()"); } +void sceneHandler14_sub09() { + if (!g_fp->_aniMan->_movement || g_fp->_aniMan->_movement->_id != MV_MAN14_FALL) { + sceneHandler14_sub06(); + + g_fp->_aniMan->changeStatics2(ST_MAN_RIGHT|0x4000); + g_fp->_aniMan->startAnim(MV_MAN14_FALL, 0, -1); + g_vars->scene14_var10->stopAnim_maybe(); + g_vars->scene14_var10->hide(); + + sceneHandler14_sub10(); + } + ++g_vars->scene14_var24; +} + void sceneHandler14_sub11() { warning("STUB: sceneHandler14_sub11()"); } |