aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--engines/fullpipe/constants.h6
-rw-r--r--engines/fullpipe/init.cpp2
-rw-r--r--engines/fullpipe/module.mk1
-rw-r--r--engines/fullpipe/objectnames.h2
-rw-r--r--engines/fullpipe/scenes.cpp11
-rw-r--r--engines/fullpipe/scenes.h19
-rw-r--r--engines/fullpipe/scenes/scene15.cpp2
-rw-r--r--engines/fullpipe/scenes/scene37.cpp20
8 files changed, 47 insertions, 16 deletions
diff --git a/engines/fullpipe/constants.h b/engines/fullpipe/constants.h
index b3e06bb318..7d99393067 100644
--- a/engines/fullpipe/constants.h
+++ b/engines/fullpipe/constants.h
@@ -1284,6 +1284,12 @@ namespace Fullpipe {
#define PIC_SC36_MASK 5221
#define ST_RHT_OPEN 2362
+// Scene 37
+#define ANI_GUARD_37 2588
+#define ANI_RING 2604
+#define ST_RNG_CLOSED2 4865
+#define ST_RNG_OPEN 2606
+
// Debug scene
#define MSG_RESTARTGAME 4767
#define PIC_SCD_1 727
diff --git a/engines/fullpipe/init.cpp b/engines/fullpipe/init.cpp
index f661340665..8de37b5c9e 100644
--- a/engines/fullpipe/init.cpp
+++ b/engines/fullpipe/init.cpp
@@ -116,7 +116,7 @@ void FullpipeEngine::initObjectStates() {
setObjectState(sO_BellyInflater, getObjectEnumState(sO_BellyInflater, sO_WithCork));
setObjectState(sO_Jawcrucnher, getObjectEnumState(sO_Jawcrucnher, sO_WithoutCarpet));
setObjectState(sO_Guard_1, getObjectEnumState(sO_Guard_1, sO_On));
- setObjectState(sO_Gurad_2, getObjectEnumState(sO_Gurad_2, sO_On));
+ setObjectState(sO_Guard_2, getObjectEnumState(sO_Guard_2, sO_On));
setObjectState(sO_Guard_3, getObjectEnumState(sO_Guard_3, sO_On));
setObjectState(sO_Bottle_38, getObjectEnumState(sO_Bottle_38, sO_OnTheTable));
setObjectState(sO_Boss, getObjectEnumState(sO_Boss, sO_WithHammer));
diff --git a/engines/fullpipe/module.mk b/engines/fullpipe/module.mk
index 5f7d8a4244..a6924911bc 100644
--- a/engines/fullpipe/module.mk
+++ b/engines/fullpipe/module.mk
@@ -57,6 +57,7 @@ MODULE_OBJS = \
scenes/scene34.o \
scenes/scene35.o \
scenes/scene36.o \
+ scenes/scene37.o \
scenes/sceneDbg.o
# This module can be built as a plugin
diff --git a/engines/fullpipe/objectnames.h b/engines/fullpipe/objectnames.h
index 8939f44975..eafdb2a8e7 100644
--- a/engines/fullpipe/objectnames.h
+++ b/engines/fullpipe/objectnames.h
@@ -217,7 +217,7 @@ namespace Fullpipe {
#define sO_IsStandingInCorner "\xd1\xf2\xee\xe8\xf2 \xe2 \xf3\xe3\xeb\xf3" // "Стоит в углу"
#define sO_Guardian "\xd1\xf2\xee\xf0\xee\xe6" // "Сторож"
#define sO_Guard_1 "\xd1\xf2\xf0\xe0\xe6 1" // "Страж 1"
-#define sO_Gurad_2 "\xd1\xf2\xf0\xe0\xe6 2" // "Страж 2"
+#define sO_Guard_2 "\xd1\xf2\xf0\xe0\xe6 2" // "Страж 2"
#define sO_Guard_3 "\xd1\xf2\xf0\xe0\xe6 3" // "Страж 3"
#define sO_Stool_34 "\xd2\xe0\xe1\xf3\xf0\xe5\xf2_34" // "Табурет_34"
#define sO_Pipe_9 "\xd2\xf0\xf3\xe1\xe0_9" // "Труба_9"
diff --git a/engines/fullpipe/scenes.cpp b/engines/fullpipe/scenes.cpp
index c49b2fca13..de7ddfe154 100644
--- a/engines/fullpipe/scenes.cpp
+++ b/engines/fullpipe/scenes.cpp
@@ -356,6 +356,17 @@ Vars::Vars() {
scene36_rotohrust = 0;
scene36_scissors = 0;
+ scene37_var01 = 0;
+ scene37_var02 = 0;
+ scene37_var03 = 0;
+ scene37_var04 = 0;
+ scene37_var05.clear();
+ scene37_var06 = 0;
+ scene37_var07 = 0;
+ scene37_plusMinus1 = 0;
+ scene37_plusMinus2 = 0;
+ scene37_plusMinus3 = 0;
+
selector = 0;
}
diff --git a/engines/fullpipe/scenes.h b/engines/fullpipe/scenes.h
index 76f870b318..0137df3416 100644
--- a/engines/fullpipe/scenes.h
+++ b/engines/fullpipe/scenes.h
@@ -26,9 +26,10 @@
namespace Fullpipe {
struct BehaviorEntryInfo;
-class StaticANIObject;
-class MctlLadder;
class MGM;
+class MctlLadder;
+struct Ring;
+class StaticANIObject;
int defaultUpdateCursor();
@@ -502,6 +503,18 @@ public:
StaticANIObject *scene36_rotohrust;
StaticANIObject *scene36_scissors;
+ int scene37_var01;
+ int scene37_var02;
+ int scene37_var03;
+ int scene37_var04;
+ Common::Array<Ring *> scene37_var05;
+ int scene37_var06;
+ int scene37_var07;
+ StaticANIObject *scene37_plusMinus1;
+ StaticANIObject *scene37_plusMinus2;
+ StaticANIObject *scene37_plusMinus3;
+
+
PictureObject *selector;
};
@@ -510,7 +523,7 @@ struct Ring {
int x;
int y;
int numSubRings;
- int subRing[10];
+ int subRings[10];
bool state;
Ring();
diff --git a/engines/fullpipe/scenes/scene15.cpp b/engines/fullpipe/scenes/scene15.cpp
index fa8db64497..046e9c9adc 100644
--- a/engines/fullpipe/scenes/scene15.cpp
+++ b/engines/fullpipe/scenes/scene15.cpp
@@ -74,7 +74,7 @@ void scene15_initScene(Scene *sc) {
g_vars->scene15_plusminus = sc->getStaticANIObject1ById(ANI_PLUSMINUS, -1);
- if (g_fp->getObjectState(sO_Gurad_2) == g_fp->getObjectEnumState(sO_Gurad_2, sO_Off))
+ if (g_fp->getObjectState(sO_Guard_2) == g_fp->getObjectEnumState(sO_Guard_2, sO_Off))
g_vars->scene15_plusminus->_statics = g_vars->scene15_plusminus->getStaticsById(ST_PMS_MINUS);
else
g_vars->scene15_plusminus->_statics = g_vars->scene15_plusminus->getStaticsById(ST_PMS_PLUS);
diff --git a/engines/fullpipe/scenes/scene37.cpp b/engines/fullpipe/scenes/scene37.cpp
index e0c27b6c91..ed9ce0241f 100644
--- a/engines/fullpipe/scenes/scene37.cpp
+++ b/engines/fullpipe/scenes/scene37.cpp
@@ -43,7 +43,7 @@ Ring::Ring() {
numSubRings = 0;
for (int i = 0; i < 10; i++)
- subRing[i] = 0;
+ subRings[i] = 0;
state = false;
}
@@ -64,9 +64,9 @@ void scene37_initScene(Scene *sc) {
ring->x = ani->_ox - 40;
ring->y = ani->_ox + 40;
ring->numSubRings = 3;
- ring->subRing[0] = 1;
- ring->subRing[1] = 4;
- ring->subRing[2] = 8;
+ ring->subRings[0] = 1;
+ ring->subRings[1] = 4;
+ ring->subRings[2] = 8;
ring->state = false;
g_vars->scene37_var05.push_back(ring);
@@ -76,9 +76,9 @@ void scene37_initScene(Scene *sc) {
ring->x = ani->_ox - 40;
ring->y = ani->_ox + 40;
ring->numSubRings = 3;
- ring->subRing[0] = 2;
- ring->subRing[1] = 5;
- ring->subRing[2] = 9;
+ ring->subRings[0] = 2;
+ ring->subRings[1] = 5;
+ ring->subRings[2] = 9;
ring->state = false;
g_vars->scene37_var05.push_back(ring);
@@ -88,9 +88,9 @@ void scene37_initScene(Scene *sc) {
ring->x = ani->_ox - 40;
ring->y = ani->_ox + 40;
ring->numSubRings = 3;
- ring->subRing[0] = 3;
- ring->subRing[1] = 7;
- ring->subRing[2] = 11;
+ ring->subRings[0] = 3;
+ ring->subRings[1] = 7;
+ ring->subRings[2] = 11;
ring->state = false;
g_vars->scene37_var05.push_back(ring);