From 58ffa21c29b48a8950fe49811b817ad2a863ca37 Mon Sep 17 00:00:00 2001 From: Eugene Sandulenko Date: Mon, 30 Dec 2013 00:22:19 +0200 Subject: FULLPIPE: More code to scene13 --- engines/fullpipe/constants.h | 5 +++++ engines/fullpipe/scenes/scene13.cpp | 30 ++++++++++++++++++++++++------ 2 files changed, 29 insertions(+), 6 deletions(-) (limited to 'engines/fullpipe') diff --git a/engines/fullpipe/constants.h b/engines/fullpipe/constants.h index 6cb507c288..472943c12d 100644 --- a/engines/fullpipe/constants.h +++ b/engines/fullpipe/constants.h @@ -552,10 +552,15 @@ namespace Fullpipe { #define MV_BDG_CLOSE 1382 #define MV_BDG_OPEN 1379 #define MV_WHR13_SPIN 1384 +#define QU_SC13_SHOWGUM 1216 +#define QU_STR_CHEW 1190 #define SND_13_018 3763 +#define SND_13_033 4685 +#define SND_13_034 4686 #define SND_13_037 5335 #define ST_BDG_CLOSED 1380 #define ST_BDG_OPEN2 1381 +#define ST_STR_RIGHT 1174 // Scene 15 #define ANI_BOOT_15 4779 diff --git a/engines/fullpipe/scenes/scene13.cpp b/engines/fullpipe/scenes/scene13.cpp index d46f73b5e5..2080bb0f1b 100644 --- a/engines/fullpipe/scenes/scene13.cpp +++ b/engines/fullpipe/scenes/scene13.cpp @@ -113,19 +113,32 @@ void sceneHandler13_closeBridge() { } void sceneHandler13_closeFast() { - warning("STUB: sceneHandler13_closeFast()"); + g_vars->scene13_bridge->changeStatics2(ST_BDG_OPEN2); + g_vars->scene13_bridge->startAnim(MV_BDG_CLOSE, 0, -1); + g_vars->scene13_bridge->_movement->setDynamicPhaseIndex(21); } void sceneHandler13_stopWhirlgig() { - warning("STUB: sceneHandler13_stopWhirlgig()"); + g_vars->scene13_whirlgig->_callback2 = 0; + + g_fp->stopAllSoundInstances(SND_13_018); + g_fp->playSound(SND_13_033, 0); + g_fp->playSound(SND_13_037, 1); } void sceneHandler13_startWhirlgig() { - warning("STUB: sceneHandler13_startWhirlgig()"); + g_vars->scene13_whirlgig->_callback2 = 0; + + g_fp->playSound(SND_13_018, 1); + g_fp->playSound(SND_13_034, 0); + + g_fp->stopAllSoundInstances(SND_13_037); } void sceneHandler13_openFast() { - warning("STUB: sceneHandler13_openFast()"); + g_vars->scene13_bridge->changeStatics2(ST_BDG_CLOSED); + g_vars->scene13_bridge->startAnim(MV_BDG_OPEN, 0, -1); + g_vars->scene13_bridge->_movement->setDynamicPhaseIndex(15); } void sceneHandler13_uneatGum() { @@ -133,7 +146,12 @@ void sceneHandler13_uneatGum() { } void sceneHandler13_eatGum() { - warning("STUB: sceneHandler13_eatGum()"); + BehaviorEntryInfo *beh = g_fp->_behaviorManager->getBehaviorEntryInfoByMessageQueueDataId(g_vars->scene13_guard, ST_STR_RIGHT, QU_STR_CHEW); + + if (beh) { + beh->_percent = 10922; + beh->_delay = 0; + } } void sceneHandler13_updateBridge() { @@ -141,7 +159,7 @@ void sceneHandler13_updateBridge() { } void sceneHandler13_showGum() { - warning("STUB: sceneHandler13_showGum()"); + chainQueue(QU_SC13_SHOWGUM, 0); } void sceneHandler13_sub01(bool flag) { -- cgit v1.2.3