diff options
author | Eugene Sandulenko | 2014-01-05 15:12:34 +0200 |
---|---|---|
committer | Eugene Sandulenko | 2014-01-05 17:13:31 +0200 |
commit | ee242f3e8186c51f7731e948ddd8a21a5a9cf05f (patch) | |
tree | d53d7d54f5395f65b5d43c9775744077bbae324a /engines/fullpipe | |
parent | 634fd658c9e547f55449e0f2b40ce899946094b9 (diff) | |
download | scummvm-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.h | 3 | ||||
-rw-r--r-- | engines/fullpipe/scenes/scene25.cpp | 44 |
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() { |