aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEugene Sandulenko2014-01-05 15:00:55 +0200
committerEugene Sandulenko2014-01-05 17:13:31 +0200
commit634fd658c9e547f55449e0f2b40ce899946094b9 (patch)
tree53715de8b14cc9133659d911ce58703b07f925cb
parentf615eb489847bb376fd6efc8f2bde850871329f7 (diff)
downloadscummvm-rg350-634fd658c9e547f55449e0f2b40ce899946094b9.tar.gz
scummvm-rg350-634fd658c9e547f55449e0f2b40ce899946094b9.tar.bz2
scummvm-rg350-634fd658c9e547f55449e0f2b40ce899946094b9.zip
FULLPIPE: Implement sceneHandler25_rowHand()
-rw-r--r--engines/fullpipe/constants.h2
-rw-r--r--engines/fullpipe/scenes/scene25.cpp29
2 files changed, 30 insertions, 1 deletions
diff --git a/engines/fullpipe/constants.h b/engines/fullpipe/constants.h
index 91d73e7cd5..7b943790db 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_TRYROWHAND 3493
+#define QU_SC25_TRYROWHAND_R 3494
#define QU_SC25_TRYWATER 1906
#define SND_25_006 4059
#define SND_25_025 4874
diff --git a/engines/fullpipe/scenes/scene25.cpp b/engines/fullpipe/scenes/scene25.cpp
index ba84fef22c..10cd18a282 100644
--- a/engines/fullpipe/scenes/scene25.cpp
+++ b/engines/fullpipe/scenes/scene25.cpp
@@ -220,7 +220,34 @@ void sceneHandler25_rowShovel() {
}
void sceneHandler25_rowHand() {
- warning("STUB: sceneHandler25_rowHand()");
+ 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_TRYROWHAND;
+ } else if (id == (ST_MAN25_ONBOARD|0x4000) && x == 632 && y == 502) {
+ g_fp->_aniMan->changeStatics2(ST_MAN25_ONBOARD|0x4000);
+
+ qid = QU_SC25_TRYROWHAND_R;
+ }
+
+ if (qid)
+ chainObjQueue(g_fp->_aniMan, qid, 1);
+
+ g_vars->scene25_var12 = 0;
}
void sceneHandler25_putBoard() {