aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--engines/fullpipe/constants.h3
-rw-r--r--engines/fullpipe/scenes.cpp4
-rw-r--r--engines/fullpipe/scenes.h4
-rw-r--r--engines/fullpipe/scenes/scene24.cpp33
4 files changed, 31 insertions, 13 deletions
diff --git a/engines/fullpipe/constants.h b/engines/fullpipe/constants.h
index 53af8c6ff3..5f45ba02c4 100644
--- a/engines/fullpipe/constants.h
+++ b/engines/fullpipe/constants.h
@@ -555,6 +555,9 @@ namespace Fullpipe {
#define ANI_DROP_24 3505
#define ANI_JET24 1837
#define ANI_WATER24 1834
+#define MV_WTR24_FLOW 1835
+#define MV_WTR24_FLOWLOWER 1844
+#define MV_JET24_FLOW 1838
#define QU_DRP24_TOFLOOR 3510
#define QU_DRP24_TOWATER 3509
#define QU_DRP24_TOWATER2 4046
diff --git a/engines/fullpipe/scenes.cpp b/engines/fullpipe/scenes.cpp
index c3bddf5570..c744cd2ca6 100644
--- a/engines/fullpipe/scenes.cpp
+++ b/engines/fullpipe/scenes.cpp
@@ -195,10 +195,6 @@ Vars::Vars() {
scene15_ladder = 0;
scene15_boot = 0;
- scene24_var01 = 0;
- scene24_var02 = 0;
- scene24_var03 = 0;
- scene24_var04 = 0;
scene24_var05 = 0;
scene24_var06 = 0;
scene24_var07 = 0;
diff --git a/engines/fullpipe/scenes.h b/engines/fullpipe/scenes.h
index 9788a2e2d9..211dd072c0 100644
--- a/engines/fullpipe/scenes.h
+++ b/engines/fullpipe/scenes.h
@@ -259,10 +259,6 @@ public:
PictureObject *scene15_ladder;
StaticANIObject *scene15_boot;
- int scene24_var01;
- int scene24_var02;
- int scene24_var03;
- int scene24_var04;
int scene24_var05;
int scene24_var06;
int scene24_var07;
diff --git a/engines/fullpipe/scenes/scene24.cpp b/engines/fullpipe/scenes/scene24.cpp
index dc92044077..4b141a3db6 100644
--- a/engines/fullpipe/scenes/scene24.cpp
+++ b/engines/fullpipe/scenes/scene24.cpp
@@ -37,11 +37,6 @@
namespace Fullpipe {
void scene24_initScene(Scene *sc) {
- g_vars->scene24_var01 = 200;
- g_vars->scene24_var02 = 200;
- g_vars->scene24_var03 = 300;
- g_vars->scene24_var04 = 300;
-
g_vars->scene24_water = sc->getStaticANIObject1ById(ANI_WATER24, -1);
g_vars->scene24_jet = sc->getStaticANIObject1ById(ANI_JET24, -1);
g_vars->scene24_drop = sc->getStaticANIObject1ById(ANI_DROP_24, -1);
@@ -103,4 +98,32 @@ void scene24_setPoolState() {
}
}
+int sceneHandler24(ExCommand *cmd) {
+ if (cmd->_messageKind == 17 && cmd->_messageNum == 33) {
+ if (g_fp->_aniMan2) {
+ int x = g_fp->_aniMan2->_ox;
+
+ if (x < g_fp->_sceneRect.left + 200) {
+ g_fp->_currentScene->_x = x - 300 - g_fp->_sceneRect.left;
+ }
+ if (x > g_fp->_sceneRect.right - 200)
+ g_fp->_currentScene->_x = x + 300 - g_fp->_sceneRect.right;
+ }
+
+ if (g_vars->scene24_var07 && !g_vars->scene24_water->_movement) {
+ if (g_vars->scene24_var06)
+ g_vars->scene24_water->startAnim(MV_WTR24_FLOWLOWER, 0, -1);
+ else
+ g_vars->scene24_water->startAnim(MV_WTR24_FLOW, 0, -1);
+ }
+
+ if (g_vars->scene24_var05 && !g_vars->scene24_jet->_movement)
+ g_vars->scene24_jet->startAnim(MV_JET24_FLOW, 0, -1);
+
+ g_fp->_behaviorManager->updateBehaviors();
+ }
+
+ return 0;
+}
+
} // End of namespace Fullpipe