aboutsummaryrefslogtreecommitdiff
path: root/engines/fullpipe
diff options
context:
space:
mode:
Diffstat (limited to 'engines/fullpipe')
-rw-r--r--engines/fullpipe/constants.h10
-rw-r--r--engines/fullpipe/scenes/scene17.cpp22
2 files changed, 27 insertions, 5 deletions
diff --git a/engines/fullpipe/constants.h b/engines/fullpipe/constants.h
index a292be0d33..2ef2b5448c 100644
--- a/engines/fullpipe/constants.h
+++ b/engines/fullpipe/constants.h
@@ -690,6 +690,9 @@ namespace Fullpipe {
// Scene 17
#define ANI_HAND17 1446
+#define ANI_INV_SUGAR 1410
+#define ANI_JET_17 2746
+#define ANI_MUG_17 2737
#define MSG_SC17_DROP 3414
#define MSG_SC17_FILLBOTTLE 1436
#define MSG_SC17_HIDESUGAR 1417
@@ -702,7 +705,13 @@ namespace Fullpipe {
#define QU_HND17_ASK 1456
#define QU_HND17_ATTRACT 1455
#define QU_HND17_TOCYCLE 1454
+#define QU_JET17_DROP 3295
+#define QU_SC17_FILLMUG_DROP 3415
+#define QU_SC17_SHOWBOTTLE 1429
+#define QU_SC17_SHOWSUGAR 1415
+#define ST_HND17_ATTRACT 1451
#define ST_HND17_EMPTY 1448
+#define ST_MUG17_EMPTY 2739
// Scene 24
#define ANI_DROP_24 3505
@@ -719,7 +728,6 @@ namespace Fullpipe {
#define SND_24_006 4041
#define SND_24_007 4042
#define ST_DRP24_EMPTY 3507
-#define ST_HND17_ATTRACT 1451
#define ST_WTR24_FLOWLOWER 1843
// Debug scene
diff --git a/engines/fullpipe/scenes/scene17.cpp b/engines/fullpipe/scenes/scene17.cpp
index e08299bbee..d7cd25bd6b 100644
--- a/engines/fullpipe/scenes/scene17.cpp
+++ b/engines/fullpipe/scenes/scene17.cpp
@@ -49,7 +49,16 @@ void scene17_initScene(Scene *sc) {
}
void sceneHandler17_drop() {
- warning("STUB: sceneHandler17_drop()");
+ StaticANIObject *mug = g_fp->_currentScene->getStaticANIObject1ById(ANI_MUG_17, -1);
+ StaticANIObject *jet = g_fp->_currentScene->getStaticANIObject1ById(ANI_JET_17, -1);
+
+ if (mug && mug->_flags & 4) {
+ mug->changeStatics2(ST_MUG17_EMPTY);
+ chainQueue(QU_SC17_FILLMUG_DROP, 0);
+ } else if (jet) {
+ jet->queueMessageQueue(0);
+ chainQueue(QU_JET17_DROP, 0);
+ }
}
void sceneHandler17_fillBottle() {
@@ -61,15 +70,20 @@ void sceneHandler17_testTruba() {
}
void sceneHandler17_showBottle() {
- warning("STUB: sceneHandler17_showBottle()");
+ chainQueue(QU_SC17_SHOWBOTTLE, 0);
}
void sceneHandler17_hideSugar() {
- warning("STUB: sceneHandler17_hideSugar()");
+ StaticANIObject *sugar = g_fp->_currentScene->getStaticANIObject1ById(ANI_INV_SUGAR, -1);
+
+ if (sugar)
+ sugar->hide();
}
void sceneHandler17_showSugar() {
- warning("STUB: sceneHandler17_showSugar()");
+ chainQueue(QU_SC17_SHOWSUGAR, 0);
+
+ g_vars->scene17_var06 = 1;
}
void sceneHandler17_moonshineFill() {