aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEugene Sandulenko2014-01-01 00:12:50 +0200
committerEugene Sandulenko2014-01-01 00:12:50 +0200
commit05efe75ebed62f855674724749228d0607cf9333 (patch)
tree7277833bc20f534d50809c35524c2bceda435c44
parent07dfc7993cbf9bdc8fbb822a136235b7322761ec (diff)
downloadscummvm-rg350-05efe75ebed62f855674724749228d0607cf9333.tar.gz
scummvm-rg350-05efe75ebed62f855674724749228d0607cf9333.tar.bz2
scummvm-rg350-05efe75ebed62f855674724749228d0607cf9333.zip
FULLPIPE: Implement sceneHandler14_sub11()
-rw-r--r--engines/fullpipe/constants.h3
-rw-r--r--engines/fullpipe/scenes/scene14.cpp58
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;