diff options
author | Eugene Sandulenko | 2014-01-05 15:38:28 +0200 |
---|---|---|
committer | Eugene Sandulenko | 2014-01-05 17:13:32 +0200 |
commit | 863a65dfbc178da69215bf2d2e9405f3f3f35202 (patch) | |
tree | 66f292d5842004a4c9fda564d9c42218ae555e4b | |
parent | 52d9bb8583d6001542b67eb1a9e1def44dd7119b (diff) | |
download | scummvm-rg350-863a65dfbc178da69215bf2d2e9405f3f3f35202.tar.gz scummvm-rg350-863a65dfbc178da69215bf2d2e9405f3f3f35202.tar.bz2 scummvm-rg350-863a65dfbc178da69215bf2d2e9405f3f3f35202.zip |
FULLPIPE: Implement sceneHandler25_tryRow()
-rw-r--r-- | engines/fullpipe/constants.h | 7 | ||||
-rw-r--r-- | engines/fullpipe/scenes/scene25.cpp | 56 |
2 files changed, 61 insertions, 2 deletions
diff --git a/engines/fullpipe/constants.h b/engines/fullpipe/constants.h index 074721f2af..ddb3c89786 100644 --- a/engines/fullpipe/constants.h +++ b/engines/fullpipe/constants.h @@ -901,15 +901,22 @@ namespace Fullpipe { #define QU_SC25_PUTBOARD 1896 #define QU_SC25_ROWTOLADDER 1910 #define QU_SC25_ROWTOTRUBA 1897 +#define QU_SC25_TRUBATOBOARD 1909 +#define QU_SC25_TRYBROOM 1912 +#define QU_SC25_TRYHAND 4219 #define QU_SC25_TRYROWHAND 3493 #define QU_SC25_TRYROWHAND_R 3494 +#define QU_SC25_TRYSPADE 3498 +#define QU_SC25_TRYSWAB 1913 #define QU_SC25_TRYWATER 1906 #define SND_25_006 4059 #define SND_25_025 4874 #define SND_25_026 4875 #define SND_25_027 4876 +#define SND_25_028 5173 #define SND_25_029 5174 #define SND_25_030 5175 +#define ST_BRD25_RIGHT2 1902 #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 927a6e4dd8..ae5cd7908d 100644 --- a/engines/fullpipe/scenes/scene25.cpp +++ b/engines/fullpipe/scenes/scene25.cpp @@ -350,8 +350,60 @@ void sceneHandler25_tryWater() { } } -void sceneHandler25_tryRow(int code) { - warning("STUB: sceneHandler25_tryRow()"); +void sceneHandler25_tryRow(int obj) { + PicAniInfo info; + + g_fp->_aniMan->getPicAniInfo(&info); + g_fp->_aniMan->_messageQueueId = 0; + g_fp->_aniMan->changeStatics2(ST_MAN_RIGHT|0x4000); + + int x = g_fp->_aniMan->_ox; + int y = g_fp->_aniMan->_oy; + + g_fp->_aniMan->setPicAniInfo(&info); + + int qid = 0; + + if (x == 788 && y == 468) { + if (g_vars->scene25_board->_statics->_staticsId == ST_BRD25_RIGHT2) { + if (obj == ANI_INV_BROOM) { + g_fp->_aniMan->changeStatics2(ST_MAN_RIGHT|0x4000); + + qid = QU_SC25_TRYBROOM; + } + if (obj == ANI_INV_LOPAT) { + g_fp->_aniMan->changeStatics2(ST_MAN_RIGHT|0x4000); + + qid = QU_SC25_TRYSPADE; + } + + if (qid) { + chainQueue(qid, 1); + + g_fp->playSound(SND_25_028, 0); + + return; + } + + if (obj == ANI_INV_SWAB) { + g_fp->_aniMan->changeStatics2(ST_MAN_RIGHT|0x4000); + + chainQueue(QU_SC25_TRYSWAB, 1); + } else if (!obj) { + g_fp->_aniMan->changeStatics2(ST_MAN_RIGHT|0x4000); + + chainObjQueue(g_fp->_aniMan, QU_SC25_TRYHAND, 1); + + g_fp->playSound(SND_25_028, 0); + } + } else if (g_vars->scene25_board->_statics->_staticsId == (ST_MAN_RIGHT|0x4000) && !obj) { + g_fp->_aniMan->changeStatics2(ST_MAN_RIGHT|0x4000); + + chainQueue(QU_SC25_TRUBATOBOARD, 1); + + g_vars->scene25_var05 = 1; + } + } } void sceneHandler25_ladderUp() { |