aboutsummaryrefslogtreecommitdiff
path: root/engines/fullpipe
diff options
context:
space:
mode:
authorEugene Sandulenko2013-12-30 00:22:19 +0200
committerEugene Sandulenko2013-12-30 00:22:19 +0200
commit58ffa21c29b48a8950fe49811b817ad2a863ca37 (patch)
tree6283470af7678a9b928dc0f0fb3417e881c0c919 /engines/fullpipe
parenta57e2428ecae767ac805e2264d54f0a74213fee5 (diff)
downloadscummvm-rg350-58ffa21c29b48a8950fe49811b817ad2a863ca37.tar.gz
scummvm-rg350-58ffa21c29b48a8950fe49811b817ad2a863ca37.tar.bz2
scummvm-rg350-58ffa21c29b48a8950fe49811b817ad2a863ca37.zip
FULLPIPE: More code to scene13
Diffstat (limited to 'engines/fullpipe')
-rw-r--r--engines/fullpipe/constants.h5
-rw-r--r--engines/fullpipe/scenes/scene13.cpp30
2 files changed, 29 insertions, 6 deletions
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) {