aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEugene Sandulenko2014-01-05 14:46:41 +0200
committerEugene Sandulenko2014-01-05 17:13:31 +0200
commitf615eb489847bb376fd6efc8f2bde850871329f7 (patch)
treebeddd5a4083d7fd3324e78c8fee3b6569e4d8913
parent9fad45b7e62cd6c73950e3b15f7c559cea54167b (diff)
downloadscummvm-rg350-f615eb489847bb376fd6efc8f2bde850871329f7.tar.gz
scummvm-rg350-f615eb489847bb376fd6efc8f2bde850871329f7.tar.bz2
scummvm-rg350-f615eb489847bb376fd6efc8f2bde850871329f7.zip
FULLPIPE: Implement sceneHandler25_enterTruba()
-rw-r--r--engines/fullpipe/constants.h3
-rw-r--r--engines/fullpipe/scenes/scene25.cpp29
2 files changed, 31 insertions, 1 deletions
diff --git a/engines/fullpipe/constants.h b/engines/fullpipe/constants.h
index aa256a8d2d..91d73e7cd5 100644
--- a/engines/fullpipe/constants.h
+++ b/engines/fullpipe/constants.h
@@ -890,6 +890,8 @@ namespace Fullpipe {
#define QU_SC25_ENTERUP_FLOOR 1904
#define QU_SC25_ENTERUP_WATER 1895
#define QU_SC25_LADDERUP 1925
+#define QU_SC25_MANTOTRUBA 1905
+#define QU_SC25_MANTOTRUBA_R 4218
#define QU_SC25_PUTBOARD 1896
#define QU_SC25_TRYWATER 1906
#define SND_25_006 4059
@@ -899,6 +901,7 @@ namespace Fullpipe {
#define SND_25_029 5174
#define ST_DRP25_EMPTY 3501
#define ST_MAN_LADDERDOWN_R 3419
+#define ST_MAN25_ONBOARD 1879
// Scene 30
#define ANI_LEG 2322
diff --git a/engines/fullpipe/scenes/scene25.cpp b/engines/fullpipe/scenes/scene25.cpp
index db58bff651..ba84fef22c 100644
--- a/engines/fullpipe/scenes/scene25.cpp
+++ b/engines/fullpipe/scenes/scene25.cpp
@@ -147,7 +147,34 @@ void sceneHandler25_enterMan() {
}
void sceneHandler25_enterTruba() {
- warning("STUB: sceneHandler25_enterTruba()");
+ PicAniInfo info;
+
+ g_fp->_aniMan->getPicAniInfo(&info);
+ g_fp->_aniMan->_messageQueueId = 0;
+ g_fp->_aniMan->changeStatics2(g_fp->_aniMan->_statics->_staticsId);
+
+ int x = g_fp->_aniMan->_ox;
+ int y = g_fp->_aniMan->_oy;
+
+ g_fp->_aniMan->setPicAniInfo(&info);
+
+ int id = g_fp->_aniMan->_statics->_staticsId;
+ int qid = 0;
+
+ if (id == ST_MAN25_ONBOARD && x == 634 && y == 502) {
+ g_fp->_aniMan->changeStatics2(ST_MAN25_ONBOARD);
+
+ qid = QU_SC25_MANTOTRUBA;
+ } else if (id == (ST_MAN25_ONBOARD|0x4000) && x == 632 && y == 502) {
+ g_fp->_aniMan->changeStatics2(ST_MAN25_ONBOARD|0x4000);
+
+ qid = QU_SC25_MANTOTRUBA_R;
+ }
+
+ if (qid)
+ chainQueue(qid, 1);
+
+ g_vars->scene25_var12 = 0;
}
void sceneHandler25_toLadder() {