From 5114398e979bdb7145932be854eb770c66bd1dd7 Mon Sep 17 00:00:00 2001 From: Eugene Sandulenko Date: Fri, 10 Jan 2014 00:20:38 +0200 Subject: FULLPIPE: Implement sceneHandler33_pour() --- engines/fullpipe/constants.h | 5 +++++ engines/fullpipe/scenes.cpp | 1 + engines/fullpipe/scenes.h | 1 + engines/fullpipe/scenes/scene33.cpp | 28 +++++++++++++++++++++++++++- 4 files changed, 34 insertions(+), 1 deletion(-) (limited to 'engines') diff --git a/engines/fullpipe/constants.h b/engines/fullpipe/constants.h index 5381d0a8bf..93d8fda6df 100644 --- a/engines/fullpipe/constants.h +++ b/engines/fullpipe/constants.h @@ -1115,6 +1115,9 @@ namespace Fullpipe { #define MSG_SC33_TESTMUG 5185 #define MSG_SC33_TRYKUBIK 4980 #define MSG_SC33_UPDATEKUBIK 5346 +#define MV_JTI33_FLOW 2628 +#define MV_JTI33_POUR 2630 +#define MV_JTI33_POURFULL 4455 #define MV_VNT33_TURND 2638 #define MV_VNT33_TURNR 2641 #define PIC_SC33_LTRUBA 2618 @@ -1122,6 +1125,8 @@ namespace Fullpipe { #define QU_KBK33_GO 4978 #define QU_KBK33_START 4983 #define QU_SC33_STARTWATER 2644 +#define ST_MUG33_EMPTY 2625 +#define ST_MUG33_FULL 2626 #define ST_VNT33_DOWN 2640 #define ST_VNT33_RIGHT 2639 diff --git a/engines/fullpipe/scenes.cpp b/engines/fullpipe/scenes.cpp index 67e51cc47d..db43909f55 100644 --- a/engines/fullpipe/scenes.cpp +++ b/engines/fullpipe/scenes.cpp @@ -337,6 +337,7 @@ Vars::Vars() { scene33_var09 = 0; for (int i = 0; i < 9; i++) { + scene33_var06[i] = 0; scene33_ventsX[i] = 0; scene33_ventsState[i] = 0; } diff --git a/engines/fullpipe/scenes.h b/engines/fullpipe/scenes.h index d32af4aae9..7ed5338699 100644 --- a/engines/fullpipe/scenes.h +++ b/engines/fullpipe/scenes.h @@ -471,6 +471,7 @@ public: StaticANIObject *scene33_mug; StaticANIObject *scene33_jettie; StaticANIObject *scene33_var07; + int scene33_var06[9]; int scene33_var08; int scene33_var09; int scene33_ventsX[9]; diff --git a/engines/fullpipe/scenes/scene33.cpp b/engines/fullpipe/scenes/scene33.cpp index e6b526ea14..ed9d9c67ef 100644 --- a/engines/fullpipe/scenes/scene33.cpp +++ b/engines/fullpipe/scenes/scene33.cpp @@ -108,7 +108,33 @@ void sceneHandler33_tryCube() { } void sceneHandler33_pour() { - warning("STUB: sceneHandler33_pour("); + bool solved = true; + + for (int i = 0; i < 9; i++) + if (g_vars->scene33_ventsState[i] != g_vars->scene33_var06[i]) + solved = false; + + if (solved) { + if ((g_vars->scene33_mug->_flags & 4) && g_vars->scene33_mug->_statics->_staticsId == ST_MUG33_EMPTY) { + g_vars->scene33_jettie->startAnim(MV_JTI33_POUR, 0, -1); + + g_vars->scene33_var09 = 0; + + return; + } + + if ((g_vars->scene33_mug->_flags & 4) && g_vars->scene33_mug->_statics->_staticsId == ST_MUG33_FULL) { + g_vars->scene33_jettie->startAnim(MV_JTI33_POURFULL, 0, -1); + + g_vars->scene33_var09 = 0; + + return; + } + + g_vars->scene33_jettie->startAnim(MV_JTI33_FLOW, 0, -1); + } + + g_vars->scene33_var09 = 0; } void sceneHandler33_handleDown() { -- cgit v1.2.3