diff options
author | Eugene Sandulenko | 2014-01-01 00:12:50 +0200 |
---|---|---|
committer | Eugene Sandulenko | 2014-01-01 00:12:50 +0200 |
commit | 05efe75ebed62f855674724749228d0607cf9333 (patch) | |
tree | 7277833bc20f534d50809c35524c2bceda435c44 | |
parent | 07dfc7993cbf9bdc8fbb822a136235b7322761ec (diff) | |
download | scummvm-rg350-05efe75ebed62f855674724749228d0607cf9333.tar.gz scummvm-rg350-05efe75ebed62f855674724749228d0607cf9333.tar.bz2 scummvm-rg350-05efe75ebed62f855674724749228d0607cf9333.zip |
FULLPIPE: Implement sceneHandler14_sub11()
-rw-r--r-- | engines/fullpipe/constants.h | 3 | ||||
-rw-r--r-- | engines/fullpipe/scenes/scene14.cpp | 58 |
2 files changed, 57 insertions, 4 deletions
diff --git a/engines/fullpipe/constants.h b/engines/fullpipe/constants.h index 91b701e9d9..849e70e09e 100644 --- a/engines/fullpipe/constants.h +++ b/engines/fullpipe/constants.h @@ -599,6 +599,8 @@ namespace Fullpipe { #define MV_BAL14_FALL 1258 #define MV_BAL14_SPIN 1247 #define MV_BAL14_TOGMA 3214 +#define MV_GMA_BACKOFF 1233 +#define MV_GMA_BACKOFF2 3217 #define MV_GMA_JUMPFW 1230 #define MV_GMA_THROW 1232 #define MV_MAN14_DECLINE 1239 @@ -616,6 +618,7 @@ namespace Fullpipe { #define QU_SC14_ENTERLIFT 1225 #define QU_SC14_EXITLIFT 1226 #define QU_SC14_STARTARCADE 1390 +#define QU_SC14_WINARCADE 3247 // Scene 15 #define ANI_BOOT_15 4779 diff --git a/engines/fullpipe/scenes/scene14.cpp b/engines/fullpipe/scenes/scene14.cpp index ae14b6d54e..8ba7e1615e 100644 --- a/engines/fullpipe/scenes/scene14.cpp +++ b/engines/fullpipe/scenes/scene14.cpp @@ -487,10 +487,6 @@ void sceneHandler14_sub09() { ++g_vars->scene14_var24; } -void sceneHandler14_sub11() { - warning("STUB: sceneHandler14_sub11()"); -} - void sceneHandler14_sub12() { g_fp->_aniMan->changeStatics2(ST_MAN_RIGHT|0x4000); g_fp->_aniMan->startAnim(MV_MAN14_STEPFW, 0, -1); @@ -501,6 +497,60 @@ void sceneHandler14_sub12() { g_fp->_aniMan2 = g_vars->scene14_grandma; } +void sceneHandler14_sub11() { + g_vars->scene14_var10->stopAnim_maybe(); + g_vars->scene14_var10->hide(); + + if (g_vars->scene14_var04) + sceneHandler14_sub06(); + + if (g_vars->scene14_var24 <= 1) { + setInputDisabled(1); + + sceneHandler14_sub06(); + + g_vars->scene14_var06 = 0; + g_fp->_aniMan2 = 0; + + chainQueue(QU_SC14_WINARCADE, 1); + + --g_vars->scene14_var24; + } else { + ExCommand *ex; + + g_vars->scene14_grandma->changeStatics2(ST_GMA_SIT); + + if (g_vars->scene14_var24 != 3 || g_vars->scene14_pink) { + MessageQueue *mq = new MessageQueue(g_fp->_globalMessageQueueList->compact()); + + ex = new ExCommand(ANI_GRANDMA, 1, MV_GMA_BACKOFF, 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); + } else { + MessageQueue *mq = new MessageQueue(g_fp->_globalMessageQueueList->compact()); + + ex = new ExCommand(ANI_GRANDMA, 1, MV_GMA_BACKOFF2, 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); + } + + sceneHandler14_sub12(); + --g_vars->scene14_var24; + } +} + int sceneHandler14(ExCommand *cmd) { if (cmd->_messageKind != 17) return 0; |