aboutsummaryrefslogtreecommitdiff
path: root/engines/fullpipe
diff options
context:
space:
mode:
Diffstat (limited to 'engines/fullpipe')
-rw-r--r--engines/fullpipe/constants.h2
-rw-r--r--engines/fullpipe/scenes.cpp1
-rw-r--r--engines/fullpipe/scenes.h1
-rw-r--r--engines/fullpipe/scenes/scene04.cpp51
4 files changed, 22 insertions, 33 deletions
diff --git a/engines/fullpipe/constants.h b/engines/fullpipe/constants.h
index b774c89ed0..c7969daf90 100644
--- a/engines/fullpipe/constants.h
+++ b/engines/fullpipe/constants.h
@@ -133,6 +133,7 @@ namespace Fullpipe {
#define MV_PNK_WEIGHTRIGHT 502
#define MV_SC4_COIN_default 1029
#define MV_SPK4_PLAY 3276
+#define MV_SPR_LOWER 543
#define PIC_CMN_EVAL 3468
#define PIC_CSR_DEFAULT 4891
#define PIC_CSR_DEFAULT_INV 4892
@@ -299,6 +300,7 @@ namespace Fullpipe {
#define ST_MAN_SIT 1164
#define ST_MAN_STANDLADDER 453
#define ST_PNK_WEIGHTLEFT 503
+#define ST_SPR_UP 544
#define TrubaDown 697
#define TrubaLeft 474
#define TrubaRight 696
diff --git a/engines/fullpipe/scenes.cpp b/engines/fullpipe/scenes.cpp
index 9dc4c74b15..e4998e78a1 100644
--- a/engines/fullpipe/scenes.cpp
+++ b/engines/fullpipe/scenes.cpp
@@ -99,6 +99,7 @@ Vars::Vars() {
scene04_var19 = 0;
scene04_var20 = 0;
scene04_var24 = 0;
+ scene04_var25 = 0;
scene04_bottleY = 0;
scene04_ladderOffset = 0;
diff --git a/engines/fullpipe/scenes.h b/engines/fullpipe/scenes.h
index e7960fe010..e3edebfc5a 100644
--- a/engines/fullpipe/scenes.h
+++ b/engines/fullpipe/scenes.h
@@ -129,6 +129,7 @@ public:
int scene04_var19;
int scene04_var20;
StaticANIObject *scene04_var24;
+ int scene04_var25;
PictureObject *selector;
};
diff --git a/engines/fullpipe/scenes/scene04.cpp b/engines/fullpipe/scenes/scene04.cpp
index 3c2c02298a..377ebd4c17 100644
--- a/engines/fullpipe/scenes/scene04.cpp
+++ b/engines/fullpipe/scenes/scene04.cpp
@@ -441,43 +441,39 @@ void sceneHandler04_walkKozyawka() {
}
}
+void sceneHandler04_bottleUpdateObjects(int off) {
+ for (Common::List<GameObject *>::iterator it = g_vars->scene04_bottleObjList.begin(); it != g_vars->scene04_bottleObjList.end(); ++it) {
+ GameObject *obj = *it;
+
+ obj->setOXY(obj->_field_8 + 20, off + obj->_field_8 + 24);
+ }
+}
+
void sceneHandler04_sub4() {
-#if 0
- int var20 = g_vars->scene04_var20;
int oldDynIndex = g_vars->scene04_dynamicPhaseIndex;
- v2 = g_vars->scene04_var20 + g_vars->scene04_dynamicPhaseIndex;
+ int v2 = g_vars->scene04_var20 + g_vars->scene04_dynamicPhaseIndex;
+
g_vars->scene04_dynamicPhaseIndex += g_vars->scene04_var20;
if (g_vars->scene04_var20 + g_vars->scene04_dynamicPhaseIndex < 0) {
v2 = 0;
- var20 = 0;
g_vars->scene04_dynamicPhaseIndex = 0;
g_vars->scene04_var20 = 0;
}
if (v2 > 14) {
v2 = 14;
- var20 = 0;
g_vars->scene04_dynamicPhaseIndex = 14;
g_vars->scene04_var20 = 0;
}
- v4 = __OFSUB__(g_vars->scene04_var06, v2);
- v3 = g_vars->scene04_var06 - v2 < 0;
-
- if (g_vars->scene04_var06 > v2) {
- ++var20;
- v4 = __OFSUB__(g_vars->scene04_var06, v2);
- v3 = g_vars->scene04_var06 - v2 < 0;
- g_vars->scene04_var20 = var20;
- }
+ if (g_vars->scene04_var06 > v2)
+ g_vars->scene04_var20++;
- if (v3 ^ v4) {
- --var20;
- g_vars->scene04_var20 = var20;
- }
+ if (g_vars->scene04_var06 < v2)
+ g_vars->scene04_var20--;
- if (oldDynIndex <= g_vars->scene04_var06)
+ if (oldDynIndex <= g_vars->scene04_var06) {
if (v2 <= g_vars->scene04_var06)
goto LABEL_16;
} else if (v2 > g_vars->scene04_var06) {
@@ -486,7 +482,7 @@ void sceneHandler04_sub4() {
g_vars->scene04_var25++;
- if (var20 && g_vars->scene04_var25 > 1) {
+ if (g_vars->scene04_var20 && g_vars->scene04_var25 > 1) {
g_vars->scene04_var25 = 0;
g_vars->scene04_var20--;
}
@@ -494,7 +490,7 @@ void sceneHandler04_sub4() {
Common::Point point;
- int curdelta = g_vars->scene04_spring->getCurrDimensions(&point)->y - g_vars->scene04_dynamicPhaseIndex;
+ int curdelta = g_vars->scene04_spring->getCurrDimensions(point)->y - g_vars->scene04_dynamicPhaseIndex;
if (g_vars->scene04_dynamicPhaseIndex) {
if (!g_vars->scene04_spring->_movement)
@@ -506,24 +502,13 @@ void sceneHandler04_sub4() {
}
if (g_vars->scene04_dynamicPhaseIndex != oldDynIndex)
- sceneHandler04_bottleUpdateObjects(curdelta - (g_vars->scene04_spring->getCurrDimensions(&point)->y - g_vars->scene04_dynamicPhaseIndex));
-#endif
-
- warning("STUB: sceneHandler04_sub4()");
+ sceneHandler04_bottleUpdateObjects(curdelta - (g_vars->scene04_spring->getCurrDimensions(point)->y - g_vars->scene04_dynamicPhaseIndex));
}
void sceneHandler04_sub5() {
warning("STUB: sceneHandler04_sub5()");
}
-void sceneHandler04_bottleUpdateObjects(int off) {
- for (Common::List<GameObject *>::iterator it = g_vars->scene04_bottleObjList.begin(); it != g_vars->scene04_bottleObjList.end(); ++it) {
- GameObject *obj = *it;
-
- obj->setOXY(obj->_field_8 + 20, off + obj->_field_8 + 24);
- }
-}
-
void sceneHandler04_liftBottle() {
int newy = g_vars->scene04_bottleY + g_vars->scene04_spring->_oy;