aboutsummaryrefslogtreecommitdiff
path: root/engines/fullpipe
diff options
context:
space:
mode:
authorEugene Sandulenko2014-01-05 01:16:10 +0200
committerEugene Sandulenko2014-01-05 01:30:12 +0200
commitb0a85a9f94117d8a31b0e11999f6175a0acfda43 (patch)
tree742fc1758723cf415eb1800f8093ddfef59c0a81 /engines/fullpipe
parente601797377cea6a5af5006d6861696831704df67 (diff)
downloadscummvm-rg350-b0a85a9f94117d8a31b0e11999f6175a0acfda43.tar.gz
scummvm-rg350-b0a85a9f94117d8a31b0e11999f6175a0acfda43.tar.bz2
scummvm-rg350-b0a85a9f94117d8a31b0e11999f6175a0acfda43.zip
FULLPIPE: Implement sceneHandler23_spinWheel1() and sendClick()
Diffstat (limited to 'engines/fullpipe')
-rw-r--r--engines/fullpipe/constants.h19
-rw-r--r--engines/fullpipe/scenes/scene23.cpp62
2 files changed, 75 insertions, 6 deletions
diff --git a/engines/fullpipe/constants.h b/engines/fullpipe/constants.h
index 2e2d216858..a8d3de986a 100644
--- a/engines/fullpipe/constants.h
+++ b/engines/fullpipe/constants.h
@@ -795,6 +795,16 @@ namespace Fullpipe {
#define MSG_SC23_SPINWHEEL2 1741
#define MSG_SC23_SPINWHEEL3 1742
#define MSG_SC23_SPINWHEEL4 1743
+#define MV_CND_0_1 1703
+#define MV_CND_1_2 1706
+#define MV_CND_2_3 1708
+#define MV_CND_3_4 1710
+#define MV_CND_4_5 1712
+#define MV_CND_5_6 1714
+#define MV_CND_6_7 1716
+#define MV_CND_7_8 1718
+#define MV_CND_8_9 1720
+#define MV_CND_9_0 1722
#define PIC_SC23_BOXCLOSED 1728
#define PIC_SC23_BOXOPEN 1723
#define PIC_SC23_BTN1 1729
@@ -808,7 +818,16 @@ namespace Fullpipe {
#define QU_SC23_FROMCALENDAREXIT 1735
#define QU_SC23_SHOWSTOOL 3335
#define QU_SC23_STARTKISS 1822
+#define ST_CND_0 1704
+#define ST_CND_1 1705
+#define ST_CND_2 1707
+#define ST_CND_3 1709
+#define ST_CND_4 1711
#define ST_CND_5 1713
+#define ST_CND_6 1715
+#define ST_CND_7 1717
+#define ST_CND_8 1719
+#define ST_CND_9 1721
#define ST_GRFG_BALD 1675
#define ST_GRFG_EMPTY 1674
#define ST_GRFU_KISS 1681
diff --git a/engines/fullpipe/scenes/scene23.cpp b/engines/fullpipe/scenes/scene23.cpp
index 29680d40e7..8989a48536 100644
--- a/engines/fullpipe/scenes/scene23.cpp
+++ b/engines/fullpipe/scenes/scene23.cpp
@@ -167,8 +167,41 @@ void sceneHandler23_hideStool() {
g_fp->_currentScene->getStaticANIObject1ById(ANI_TABURETTE, -1)->hide();
}
+void sceneHandler23_startKiss() {
+ g_vars->scene23_giraffeTop->changeStatics2(ST_GRFU_UP);
+ g_vars->scene23_giraffeTop->startMQIfIdle(QU_SC23_STARTKISS, 0);
+}
+
void sceneHandler23_spinWheel1() {
- warning("STUB: sceneHandler23_spinWheel1()");
+ int mv = 0;
+
+ switch (g_vars->scene23_calend0->_statics->_staticsId) {
+ case ST_CND_0:
+ mv = MV_CND_0_1;
+ break;
+
+ case ST_CND_1:
+ mv = MV_CND_1_2;
+ break;
+
+ case ST_CND_2:
+ mv = MV_CND_2_3;
+ break;
+
+ case ST_CND_3:
+ g_vars->scene23_calend0->changeStatics2(ST_CND_9);
+ mv = MV_CND_9_0;
+ break;
+
+ default:
+ break;
+ }
+
+ if (mv)
+ g_vars->scene23_calend0->startAnim(mv, 0, -1);
+
+ if (sceneHandler23_testCalendar())
+ sceneHandler23_startKiss();
}
void sceneHandler23_spinWheel2() {
@@ -188,13 +221,30 @@ void sceneHandler23_pushButton(ExCommand *cmd) {
}
void sceneHandler23_sendClick(StaticANIObject *ani) {
- warning("STUB: sceneHandler23_sendClick(ani)");
-}
+ int msg = 0;
+ switch (ani->_okeyCode) {
+ case 0:
+ msg = MSG_SC23_CLICKBTN1;
+ break;
+ case 1:
+ msg = MSG_SC23_CLICKBTN2;
+ break;
+ case 2:
+ msg = MSG_SC23_CLICKBTN3;
+ break;
+ case 3:
+ msg = MSG_SC23_CLICKBTN4;
+ break;
+ default:
+ break;
+ }
-void sceneHandler23_startKiss() {
- g_vars->scene23_giraffeTop->changeStatics2(ST_GRFU_UP);
- g_vars->scene23_giraffeTop->startMQIfIdle(QU_SC23_STARTKISS, 0);
+ ExCommand *ex = new ExCommand(0, 17, msg, 0, 0, 0, 1, 0, 0, 0);
+ ex->_excFlags |= 3;
+
+ ex->postMessage();
}
+
void sceneHandler23_checkReachingTop() {
if (g_fp->_aniMan->_movement || g_fp->_aniMan->_statics->_staticsId != ST_MAN_STANDLADDER
|| g_fp->_aniMan->_ox != 405 || g_fp->_aniMan->_oy != 220)