aboutsummaryrefslogtreecommitdiff
path: root/engines
diff options
context:
space:
mode:
Diffstat (limited to 'engines')
-rw-r--r--engines/fullpipe/constants.h4
-rw-r--r--engines/fullpipe/module.mk1
-rw-r--r--engines/fullpipe/scenes.cpp15
-rw-r--r--engines/fullpipe/scenes.h12
-rw-r--r--engines/fullpipe/scenes/scene33.cpp20
5 files changed, 43 insertions, 9 deletions
diff --git a/engines/fullpipe/constants.h b/engines/fullpipe/constants.h
index aba3c613ee..fe54a1874a 100644
--- a/engines/fullpipe/constants.h
+++ b/engines/fullpipe/constants.h
@@ -1106,7 +1106,11 @@ namespace Fullpipe {
#define ST_MAN32_SIT 2277
// Scene 33
+#define ANI_JETTIE_FLOW 2627
+#define ANI_MUG_33 2623
+#define ANI_VENT_33 2637
#define MSG_SC33_TRYKUBIK 4980
+#define QU_KBK33_START 4983
// Scene 36
#define ANI_SCISSORS_36 2647
diff --git a/engines/fullpipe/module.mk b/engines/fullpipe/module.mk
index a81ee36948..e90283ab41 100644
--- a/engines/fullpipe/module.mk
+++ b/engines/fullpipe/module.mk
@@ -52,6 +52,7 @@ MODULE_OBJS = \
scenes/scene30.o \
scenes/scene31.o \
scenes/scene32.o \
+ scenes/scene33.o \
scenes/scene36.o \
scenes/sceneDbg.o
diff --git a/engines/fullpipe/scenes.cpp b/engines/fullpipe/scenes.cpp
index 08b3a0e844..0a727df843 100644
--- a/engines/fullpipe/scenes.cpp
+++ b/engines/fullpipe/scenes.cpp
@@ -326,6 +326,21 @@ Vars::Vars() {
scene32_massGreen = 0;
scene32_button = 0;
+ scene33_var01 = 0;
+ scene33_var02 = 0;
+ scene33_var03 = 0;
+ scene33_var04 = 0;
+ scene33_mug = 0;
+ scene33_jettie = 0;
+ scene33_var07 = 0;
+ scene33_var08 = -1;
+ scene33_var09 = 0;
+
+ for (int i = 0; i < 9; i++) {
+ scene33_ventsX[i] = 0;
+ scene33_ventsState[i] = 0;
+ }
+
scene36_rotohrust = 0;
scene36_scissors = 0;
diff --git a/engines/fullpipe/scenes.h b/engines/fullpipe/scenes.h
index ec3602eed5..acdcc36b34 100644
--- a/engines/fullpipe/scenes.h
+++ b/engines/fullpipe/scenes.h
@@ -459,6 +459,18 @@ public:
StaticANIObject *scene32_massGreen;
StaticANIObject *scene32_button;
+ int scene33_var01;
+ int scene33_var02;
+ int scene33_var03;
+ int scene33_var04;
+ StaticANIObject *scene33_mug;
+ StaticANIObject *scene33_jettie;
+ int scene33_var07;
+ int scene33_var08;
+ int scene33_var09;
+ int scene33_ventsX[9];
+ int scene33_ventsState[9];
+
StaticANIObject *scene36_rotohrust;
StaticANIObject *scene36_scissors;
diff --git a/engines/fullpipe/scenes/scene33.cpp b/engines/fullpipe/scenes/scene33.cpp
index 734b5ee2ff..1adf39f989 100644
--- a/engines/fullpipe/scenes/scene33.cpp
+++ b/engines/fullpipe/scenes/scene33.cpp
@@ -36,31 +36,33 @@
namespace Fullpipe {
+const int ventsInit[9] = { 0, 0, 1, 0, 0, 1, 0, 0, 1 };
+
void scene33_initScene(Scene *sc) {
g_vars->scene33_var01 = 200;
g_vars->scene33_var02 = 200;
g_vars->scene33_var03 = 300;
g_vars->scene33_var04 = 300;
- g_vars->scene33_mug = Scene_getStaticANIObject1ById(sc, ANI_MUG_33, -1);
-
- memcpy(g_vars->scene33_ventsState, g_vars->scene33_var06, 36u);
-
- g_vars->scene33_jettie = Scene_getStaticANIObject1ById(sc, ANI_JETTIE_FLOW, -1);
+ g_vars->scene33_mug = sc->getStaticANIObject1ById(ANI_MUG_33, -1);
+ g_vars->scene33_jettie = sc->getStaticANIObject1ById(ANI_JETTIE_FLOW, -1);
g_vars->scene33_var07 = 0;
g_vars->scene33_var08 = -1;
g_vars->scene33_var09 = 0;
- if (getObjectState("Кубик") == getObjectEnumState("Кубик", "В_33")) {
+ if (g_fp->getObjectState(sO_Cube) == g_fp->getObjectEnumState(sO_Cube, sO_In_33)) {
MessageQueue *mq = new MessageQueue(sc->getMessageQueueById(QU_KBK33_START), 0, 0);
mq->sendNextCommand();
}
- for (i = 0; i < 9; i++)
- g_vars->scene33_ventsX[i] = sc->getStaticANIObject1ById(sc, ANI_VENT_33, i)->_ox;
+ for (int i = 0; i < 9; i++) {
+ g_vars->scene33_ventsX[i] = sc->getStaticANIObject1ById(ANI_VENT_33, i)->_ox;
+
+ g_vars->scene33_ventsState[i] = ventsInit[i];
+ }
- initArcadeKeys("SC_33");
+ g_fp->initArcadeKeys("SC_33");
}
} // End of namespace Fullpipe