diff options
author | Eugene Sandulenko | 2014-01-05 01:16:10 +0200 |
---|---|---|
committer | Eugene Sandulenko | 2014-01-05 01:30:12 +0200 |
commit | b0a85a9f94117d8a31b0e11999f6175a0acfda43 (patch) | |
tree | 742fc1758723cf415eb1800f8093ddfef59c0a81 /engines/fullpipe | |
parent | e601797377cea6a5af5006d6861696831704df67 (diff) | |
download | scummvm-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.h | 19 | ||||
-rw-r--r-- | engines/fullpipe/scenes/scene23.cpp | 62 |
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) |