aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--engines/fullpipe/constants.h24
-rw-r--r--engines/fullpipe/module.mk1
-rw-r--r--engines/fullpipe/scenes.cpp14
-rw-r--r--engines/fullpipe/scenes.h14
-rw-r--r--engines/fullpipe/scenes/scene23.cpp16
5 files changed, 63 insertions, 6 deletions
diff --git a/engines/fullpipe/constants.h b/engines/fullpipe/constants.h
index d75aa3d363..b7ffcb8d20 100644
--- a/engines/fullpipe/constants.h
+++ b/engines/fullpipe/constants.h
@@ -776,6 +776,30 @@ namespace Fullpipe {
#define ST_GRFM_NORM 1983
#define ST_MSH_SIT 1756
+// Scene 23
+#define ANI_CALENDWHEEL 1702
+#define ANI_GIRAFFE_TOP 1645
+#define ANI_GIRAFFEE 1672
+#define ANI_HANDLE23 1978
+#define ANI_INV_LEVERHANDLE 1777
+#define ANI_LUK23_D 1813
+#define ANI_LUK23_U 1817
+#define PIC_SC23_BOXCLOSED 1728
+#define PIC_SC23_BOXOPEN 1723
+#define PIC_SC23_BTN1 1729
+#define PIC_SC23_BTN2 1730
+#define PIC_SC23_BTN3 1731
+#define PIC_SC23_BTN4 1732
+#define ST_CND_5 1713
+#define ST_GRFG_BALD 1675
+#define ST_GRFG_EMPTY 1674
+#define ST_GRFU_KISS 1681
+#define ST_GRFU_UP 1648
+#define ST_LUK23_OPEN 1816
+#define ST_LUK23_WHANDLE2 1977
+#define ST_LUK23U_CLOSED 1819
+#define ST_LUK23U_OPEN 1820
+
// Scene 24
#define ANI_DROP_24 3505
#define ANI_INV_HAMMER 884
diff --git a/engines/fullpipe/module.mk b/engines/fullpipe/module.mk
index 6562e9aa9e..5d426eeaf8 100644
--- a/engines/fullpipe/module.mk
+++ b/engines/fullpipe/module.mk
@@ -43,6 +43,7 @@ MODULE_OBJS = \
scenes/scene20.o \
scenes/scene21.o \
scenes/scene22.o \
+ scenes/scene23.o \
scenes/scene24.o \
scenes/scene30.o \
scenes/scene31.o \
diff --git a/engines/fullpipe/scenes.cpp b/engines/fullpipe/scenes.cpp
index 34a8de6b11..ba6f8873e7 100644
--- a/engines/fullpipe/scenes.cpp
+++ b/engines/fullpipe/scenes.cpp
@@ -264,6 +264,20 @@ Vars::Vars() {
scene22_craneIsOut = true;
scene22_numBagFalls = 1;
+ scene23_var01 = 0;
+ scene23_var02 = 0;
+ scene23_var03 = 0;
+ scene23_var04 = 0;
+ scene23_calend0 = 0;
+ scene23_calend1 = 0;
+ scene23_calend2 = 0;
+ scene23_calend3 = 0;
+ scene23_var05 = 0;
+ scene23_var06 = 0;
+ scene23_var07 = 0;
+ scene23_giraffeTop = 0;
+ scene23_giraffee = 0;
+
scene24_jetIsOn = false;
scene24_flowIsLow = false;
scene24_waterIsOn = false;
diff --git a/engines/fullpipe/scenes.h b/engines/fullpipe/scenes.h
index 7852d969db..e2c5696573 100644
--- a/engines/fullpipe/scenes.h
+++ b/engines/fullpipe/scenes.h
@@ -373,6 +373,20 @@ public:
bool scene22_craneIsOut;
int scene22_numBagFalls;
+ int scene23_var01;
+ int scene23_var02;
+ int scene23_var03;
+ int scene23_var04;
+ StaticANIObject *scene23_calend0;
+ StaticANIObject *scene23_calend1;
+ StaticANIObject *scene23_calend2;
+ StaticANIObject *scene23_calend3;
+ int scene23_var05;
+ int scene23_var06;
+ int scene23_var07;
+ StaticANIObject *scene23_giraffeTop;
+ StaticANIObject *scene23_giraffee;
+
bool scene24_jetIsOn;
bool scene24_flowIsLow;
bool scene24_waterIsOn;
diff --git a/engines/fullpipe/scenes/scene23.cpp b/engines/fullpipe/scenes/scene23.cpp
index 8898d5f9f1..5facd760bb 100644
--- a/engines/fullpipe/scenes/scene23.cpp
+++ b/engines/fullpipe/scenes/scene23.cpp
@@ -32,11 +32,17 @@
#include "fullpipe/interaction.h"
#include "fullpipe/behavior.h"
-
+#include "fullpipe/floaters.h"
namespace Fullpipe {
-void __thiscall scene23_initScene(Scene *sc) {
+bool sceneHandler23_testCalendar() {
+ warning("STUB: sceneHandler23_testCalendar()");
+
+ return false;
+}
+
+void scene23_initScene(Scene *sc) {
g_vars->scene23_var01 = 200;
g_vars->scene23_var02 = 200;
g_vars->scene23_var03 = 300;
@@ -51,7 +57,7 @@ void __thiscall scene23_initScene(Scene *sc) {
g_vars->scene23_giraffeTop = sc->getStaticANIObject1ById(ANI_GIRAFFE_TOP, -1);
g_vars->scene23_giraffee = sc->getStaticANIObject1ById(ANI_GIRAFFEE, -1);
- g_fp->_floaters->init(getGameLoaderGameVar()->getSubVarByName("SC_23"));
+ g_fp->_floaters->init(g_fp->getGameLoaderGameVar()->getSubVarByName("SC_23"));
Scene *oldsc = g_fp->_currentScene;
g_fp->_currentScene = sc;
@@ -111,7 +117,7 @@ void __thiscall scene23_initScene(Scene *sc) {
g_vars->scene23_calend1->_statics = g_vars->scene23_calend1->getStaticsById(ST_CND_5);
}
- sc->getStaticANIObject1ById(sc, ANI_LUK23_D, -1)->changeStatics2(ST_LUK23_OPEN);
+ sc->getStaticANIObject1ById(ANI_LUK23_D, -1)->changeStatics2(ST_LUK23_OPEN);
if (g_fp->getObjectState(sO_Lever_23) == g_fp->getObjectEnumState(sO_Lever_23, sO_Taken))
sc->getStaticANIObject1ById(ANI_INV_LEVERHANDLE, -1)->hide();
@@ -125,8 +131,6 @@ void __thiscall scene23_initScene(Scene *sc) {
sc->getStaticANIObject1ById(ANI_INV_LEVERHANDLE, -1)->hide();
}
- StaticANIObject_hide();
-
g_fp->_currentScene = oldsc;
}