aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--engines/fullpipe/constants.h4
-rw-r--r--engines/fullpipe/scenes.cpp1
-rw-r--r--engines/fullpipe/scenes.h1
-rw-r--r--engines/fullpipe/scenes/scene18and19.cpp20
4 files changed, 26 insertions, 0 deletions
diff --git a/engines/fullpipe/constants.h b/engines/fullpipe/constants.h
index afa5218852..e2152003e7 100644
--- a/engines/fullpipe/constants.h
+++ b/engines/fullpipe/constants.h
@@ -877,6 +877,10 @@ namespace Fullpipe {
#define ANI_GIRL18 1484
#define ANI_KRESLO 1459
#define ANI_WHIRLIGIG_18 829
+#define PIC_SC18_DOMIN 5184
+#define PIC_SC18_LADDER1 1471
+#define PIC_SC18_LADDER2 1472
+#define PIC_SC18_LADDER3 3299
#define PIC_SC18_RTRUBA 1520
#define SND_18_006 3906
#define SND_18_010 4994
diff --git a/engines/fullpipe/scenes.cpp b/engines/fullpipe/scenes.cpp
index 07f7f76b50..aadbe38db7 100644
--- a/engines/fullpipe/scenes.cpp
+++ b/engines/fullpipe/scenes.cpp
@@ -281,6 +281,7 @@ Vars::Vars() {
scene18_var08 = 0;
scene18_var03 = false;
scene18_var21 = 0;
+ scene18_var11 = 0;
scene18_var12 = 0;
scene18_var22 = 1;
scene18_var23 = -1;
diff --git a/engines/fullpipe/scenes.h b/engines/fullpipe/scenes.h
index bc47831482..5d6856fefe 100644
--- a/engines/fullpipe/scenes.h
+++ b/engines/fullpipe/scenes.h
@@ -471,6 +471,7 @@ public:
int scene18_var08;
bool scene18_var03;
int scene18_var21;
+ int scene18_var11;
int scene18_var12;
int scene18_var22;
int scene18_var23;
diff --git a/engines/fullpipe/scenes/scene18and19.cpp b/engines/fullpipe/scenes/scene18and19.cpp
index 033d7052f7..4994a02b87 100644
--- a/engines/fullpipe/scenes/scene18and19.cpp
+++ b/engines/fullpipe/scenes/scene18and19.cpp
@@ -104,4 +104,24 @@ void scene19_initScene2() {
g_vars->scene19_var04 = 300;
}
+int scene18_updateCursor() {
+ if (g_vars->scene18_var15) {
+ g_fp->_cursorId = PIC_CSR_DEFAULT;
+ } else {
+ g_fp->updateCursorCommon();
+
+ if (g_fp->_cursorId == PIC_CSR_ITN) {
+ if (g_fp->_objectIdAtCursor == PIC_SC18_LADDER1) {
+ g_fp->_cursorId = (g_vars->scene18_var11 <= 250) ? PIC_CSR_GOD : PIC_CSR_GOU;
+ } else if (g_fp->_objectIdAtCursor == PIC_SC18_LADDER2 || g_fp->_objectIdAtCursor == PIC_SC18_LADDER3) {
+ g_fp->_cursorId = PIC_CSR_GOU;
+ }
+ } else if (g_fp->_cursorId == PIC_CSR_DEFAULT && g_fp->_objectIdAtCursor == PIC_SC18_DOMIN && g_vars->scene18_domino && (g_vars->scene18_domino->_flags & 4)) {
+ g_fp->_cursorId = PIC_CSR_ITN;
+ }
+ }
+
+ return g_fp->_cursorId;
+}
+
} // End of namespace Fullpipe