aboutsummaryrefslogtreecommitdiff
path: root/engines/fullpipe
diff options
context:
space:
mode:
authorEugene Sandulenko2014-01-05 15:12:34 +0200
committerEugene Sandulenko2014-01-05 17:13:31 +0200
commitee242f3e8186c51f7731e948ddd8a21a5a9cf05f (patch)
treed53d7d54f5395f65b5d43c9775744077bbae324a /engines/fullpipe
parent634fd658c9e547f55449e0f2b40ce899946094b9 (diff)
downloadscummvm-rg350-ee242f3e8186c51f7731e948ddd8a21a5a9cf05f.tar.gz
scummvm-rg350-ee242f3e8186c51f7731e948ddd8a21a5a9cf05f.tar.bz2
scummvm-rg350-ee242f3e8186c51f7731e948ddd8a21a5a9cf05f.zip
FULLPIPE: Implement sceneHandler25_rowShovel()
Diffstat (limited to 'engines/fullpipe')
-rw-r--r--engines/fullpipe/constants.h3
-rw-r--r--engines/fullpipe/scenes/scene25.cpp44
2 files changed, 40 insertions, 7 deletions
diff --git a/engines/fullpipe/constants.h b/engines/fullpipe/constants.h
index 7b943790db..0b1aae7207 100644
--- a/engines/fullpipe/constants.h
+++ b/engines/fullpipe/constants.h
@@ -893,6 +893,8 @@ namespace Fullpipe {
#define QU_SC25_MANTOTRUBA 1905
#define QU_SC25_MANTOTRUBA_R 4218
#define QU_SC25_PUTBOARD 1896
+#define QU_SC25_ROWTOLADDER 1910
+#define QU_SC25_ROWTOTRUBA 1897
#define QU_SC25_TRYROWHAND 3493
#define QU_SC25_TRYROWHAND_R 3494
#define QU_SC25_TRYWATER 1906
@@ -901,6 +903,7 @@ namespace Fullpipe {
#define SND_25_026 4875
#define SND_25_027 4876
#define SND_25_029 5174
+#define SND_25_030 5175
#define ST_DRP25_EMPTY 3501
#define ST_MAN_LADDERDOWN_R 3419
#define ST_MAN25_ONBOARD 1879
diff --git a/engines/fullpipe/scenes/scene25.cpp b/engines/fullpipe/scenes/scene25.cpp
index 10cd18a282..83ff7e5649 100644
--- a/engines/fullpipe/scenes/scene25.cpp
+++ b/engines/fullpipe/scenes/scene25.cpp
@@ -171,10 +171,10 @@ void sceneHandler25_enterTruba() {
qid = QU_SC25_MANTOTRUBA_R;
}
- if (qid)
+ if (qid) {
chainQueue(qid, 1);
-
- g_vars->scene25_var12 = 0;
+ g_vars->scene25_var12 = 0;
+ }
}
void sceneHandler25_toLadder() {
@@ -216,7 +216,37 @@ void sceneHandler25_sneeze() {
}
void sceneHandler25_rowShovel() {
- warning("STUB: sceneHandler25_rowShovel()");
+ 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 == 370 && y == 502) {
+ g_fp->_aniMan->changeStatics2(ST_MAN25_ONBOARD);
+
+ qid = QU_SC25_ROWTOTRUBA;
+ } else if (id == (ST_MAN25_ONBOARD|0x4000) && x == 632 && y == 502) {
+ g_fp->_aniMan->changeStatics2(ST_MAN25_ONBOARD|0x4000);
+
+ qid = QU_SC25_ROWTOLADDER;
+
+ g_fp->playSound(SND_25_030, 0);
+ }
+
+ if (qid) {
+ chainQueue(qid, 1);
+
+ g_vars->scene25_var12 = 0;
+ }
}
void sceneHandler25_rowHand() {
@@ -244,10 +274,10 @@ void sceneHandler25_rowHand() {
qid = QU_SC25_TRYROWHAND_R;
}
- if (qid)
+ if (qid) {
chainObjQueue(g_fp->_aniMan, qid, 1);
-
- g_vars->scene25_var12 = 0;
+ g_vars->scene25_var12 = 0;
+ }
}
void sceneHandler25_putBoard() {