aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--engines/fullpipe/constants.h12
-rw-r--r--engines/fullpipe/module.mk1
-rw-r--r--engines/fullpipe/scenes.cpp16
-rw-r--r--engines/fullpipe/scenes.h16
-rw-r--r--engines/fullpipe/scenes/scene16.cpp31
5 files changed, 61 insertions, 15 deletions
diff --git a/engines/fullpipe/constants.h b/engines/fullpipe/constants.h
index 849e70e09e..1b7d8ea60d 100644
--- a/engines/fullpipe/constants.h
+++ b/engines/fullpipe/constants.h
@@ -640,6 +640,18 @@ namespace Fullpipe {
#define ST_GMS_BOOT 1270
#define ST_GMS_BOOTLESS2 3316
+// Scene 16
+#define ANI_BEARDED_CMN 3420
+#define ANI_BOOT_16 3285
+#define ANI_BOY 1327
+#define ANI_GIRL 1328
+#define ANI_JETTIE 1392
+#define ANI_MUG 1296
+#define ANI_WIRE16 1344
+#define MV_GRL_LAUGH_POPA 3278
+#define SND_16_034 3854
+#define ST_MUG_EMPTY 1298
+
// Scene 24
#define ANI_DROP_24 3505
#define ANI_JET24 1837
diff --git a/engines/fullpipe/module.mk b/engines/fullpipe/module.mk
index f73a82d3a3..b9a82fa415 100644
--- a/engines/fullpipe/module.mk
+++ b/engines/fullpipe/module.mk
@@ -38,6 +38,7 @@ MODULE_OBJS = \
scenes/scene13.o \
scenes/scene14.o \
scenes/scene15.o \
+ scenes/scene16.o \
scenes/scene24.o \
scenes/sceneDbg.o \
scenes/sceneIntro.o
diff --git a/engines/fullpipe/scenes.cpp b/engines/fullpipe/scenes.cpp
index 0df58dbee9..9ab3328448 100644
--- a/engines/fullpipe/scenes.cpp
+++ b/engines/fullpipe/scenes.cpp
@@ -227,6 +227,22 @@ Vars::Vars() {
scene15_ladder = 0;
scene15_boot = 0;
+ scene16_var01 = 0;
+ scene16_var02 = 0;
+ scene16_var03 = 0;
+ scene16_var04 = 0;
+ scene16_var05.clear();
+ scene16_var06 = 0;
+ scene16_var07 = 0;
+ scene16_var08 = 0;
+ scene16_wire = 0;
+ scene16_mug = 0;
+ scene16_jettie = 0;
+ scene16_boot = 0;
+ scene16_var09 = 0;
+ scene16_sound = 0;
+ scene16_var10 = 0;
+
scene24_jetIsOn = false;
scene24_flowIsLow = false;
scene24_waterIsOn = false;
diff --git a/engines/fullpipe/scenes.h b/engines/fullpipe/scenes.h
index 664eb745dd..d8dcf8918a 100644
--- a/engines/fullpipe/scenes.h
+++ b/engines/fullpipe/scenes.h
@@ -304,6 +304,22 @@ public:
PictureObject *scene15_ladder;
StaticANIObject *scene15_boot;
+ int scene16_var01;
+ int scene16_var02;
+ int scene16_var03;
+ int scene16_var04;
+ Common::List<StaticANIObject *> scene16_var05;
+ int scene16_var06;
+ int scene16_var07;
+ int scene16_var08;
+ StaticANIObject *scene16_wire;
+ StaticANIObject *scene16_mug;
+ StaticANIObject *scene16_jettie;
+ StaticANIObject *scene16_boot;
+ int scene16_var09;
+ int scene16_sound;
+ int scene16_var10;
+
bool scene24_jetIsOn;
bool scene24_flowIsLow;
bool scene24_waterIsOn;
diff --git a/engines/fullpipe/scenes/scene16.cpp b/engines/fullpipe/scenes/scene16.cpp
index cafe4d3fca..9b952ec29c 100644
--- a/engines/fullpipe/scenes/scene16.cpp
+++ b/engines/fullpipe/scenes/scene16.cpp
@@ -55,41 +55,42 @@ void scene16_initScene(Scene *sc) {
if (g_fp->getObjectState(sO_Bridge) == g_fp->getObjectEnumState(sO_Bridge, sO_Convoluted)) {
g_vars->scene16_var10 = 1;
- StaticANIObject *boy = sc->getStaticANIObject1ById(ANI_BOY, -1);
- boy->loadMovementsPixelData();
+ StaticANIObject *boy[2];
+ boy[0] = sc->getStaticANIObject1ById(ANI_BOY, -1);
+ boy[0]->loadMovementsPixelData();
- StaticANIObject *newboy = new StaticANIObject(boy);
- sc->addStaticANIObject(boy, 1);
+ boy[1] = new StaticANIObject(boy[0]);
+ sc->addStaticANIObject(boy[1], 1);
- int phase = 0;
+ int idx = 0;
for (int i = 0; i < 3; i++) {
- g_vars->scene16_var05.push_back(*(&boy + phase));
+ g_vars->scene16_var05.push_back(boy[idx]);
- phase++;
+ idx++;
- if (phase >= 2)
- phase = 0;
+ if (idx >= 2)
+ idx = 0;
}
g_vars->scene16_var05.push_back(sc->getStaticANIObject1ById(ANI_GIRL, -1));
for (int i = 0; i < 4; i++) {
- g_vars->scene16_var05.push_back(*(&boy + phase));
+ g_vars->scene16_var05.push_back(boy[idx]);
- phase++;
+ idx++;
- if (phase >= 2)
- phase = 0;
+ if (idx >= 2)
+ idx = 0;
}
} else {
g_fp->setObjectState(sO_Girl, g_fp->getObjectEnumState(sO_Girl, sO_IsSwinging));
g_vars->scene16_var10 = 0;
- StaticANIObject *ani = new StaticANIObject(accessScene(SC_COMMON)->getStaticANIObject1ById(ANI_BEARDED_CMN, -1));
+ StaticANIObject *ani = new StaticANIObject(g_fp->accessScene(SC_COMMON)->getStaticANIObject1ById(ANI_BEARDED_CMN, -1));
ani->_movement = 0;
- ani->_statics = ani->_staticsList[0];
+ ani->_statics = (Statics *)ani->_staticsList[0];
sc->addStaticANIObject(ani, 1);
}