diff options
author | Eugene Sandulenko | 2014-01-05 14:46:41 +0200 |
---|---|---|
committer | Eugene Sandulenko | 2014-01-05 17:13:31 +0200 |
commit | f615eb489847bb376fd6efc8f2bde850871329f7 (patch) | |
tree | beddd5a4083d7fd3324e78c8fee3b6569e4d8913 | |
parent | 9fad45b7e62cd6c73950e3b15f7c559cea54167b (diff) | |
download | scummvm-rg350-f615eb489847bb376fd6efc8f2bde850871329f7.tar.gz scummvm-rg350-f615eb489847bb376fd6efc8f2bde850871329f7.tar.bz2 scummvm-rg350-f615eb489847bb376fd6efc8f2bde850871329f7.zip |
FULLPIPE: Implement sceneHandler25_enterTruba()
-rw-r--r-- | engines/fullpipe/constants.h | 3 | ||||
-rw-r--r-- | engines/fullpipe/scenes/scene25.cpp | 29 |
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() { |