diff options
Diffstat (limited to 'engines/fullpipe')
-rw-r--r-- | engines/fullpipe/constants.h | 10 | ||||
-rw-r--r-- | engines/fullpipe/scenes/scene17.cpp | 22 |
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() { |