diff options
author | Eugene Sandulenko | 2013-12-15 14:59:16 +0200 |
---|---|---|
committer | Eugene Sandulenko | 2013-12-15 14:59:31 +0200 |
commit | 8b278d1cdd8f83483afef38b2115f5a25e37c603 (patch) | |
tree | 8f7e5dc570a17c5daedd409d1ccb271fe152aee9 /engines/fullpipe/scenes | |
parent | 29a8bb5dbcd1754c3821ed81856249ec9fff2082 (diff) | |
download | scummvm-rg350-8b278d1cdd8f83483afef38b2115f5a25e37c603.tar.gz scummvm-rg350-8b278d1cdd8f83483afef38b2115f5a25e37c603.tar.bz2 scummvm-rg350-8b278d1cdd8f83483afef38b2115f5a25e37c603.zip |
FULLPIPE: Implement sceneHandler05_makeWackoFeedback()
Diffstat (limited to 'engines/fullpipe/scenes')
-rw-r--r-- | engines/fullpipe/scenes/scene05.cpp | 39 |
1 files changed, 35 insertions, 4 deletions
diff --git a/engines/fullpipe/scenes/scene05.cpp b/engines/fullpipe/scenes/scene05.cpp index 0e7731163c..4b61f5b187 100644 --- a/engines/fullpipe/scenes/scene05.cpp +++ b/engines/fullpipe/scenes/scene05.cpp @@ -86,8 +86,39 @@ void sceneHandler05_makeManFlight() { mq->chain(0); } -void sceneHandler05_makeOtmFeedback() { - warning("STUB: sceneHandler05_makeOtmFeedback()"); +void sceneHandler05_makeWackoFeedback() { + int staticsId1; + int staticsId2; + + if (g_fullpipe->getObjectState(sO_WeirdWacko) == g_fullpipe->getObjectEnumState(sO_WeirdWacko, sO_InGlasses)) { + staticsId1 = ST_OTM_GLS_LEFT; + staticsId2 = (g_vars->scene05_handle->_statics->_staticsId == ST_HDL_DOWN) ? MV_OTM_HANDLEUP : MV_OTM_HANDLEDOWN; + } else if (g_fullpipe->getObjectState(sO_WeirdWacko) != g_fullpipe->getObjectEnumState(sO_WeirdWacko, sO_WithDrawer)) { + return; + } else { + staticsId1 = ST_OTM_BOX_LEFT; + staticsId2 = (g_vars->scene05_handle->_statics->_staticsId == ST_HDL_DOWN) ? MV_OTM_BOXHANDLEUP : MV_OTM_BOXHANDLEDOWN; + } + + if (g_vars->scene05_wacko->_movement) + g_vars->scene05_wacko->changeStatics2(g_vars->scene05_wacko->_movement->_staticsObj2->_staticsId); + + if (staticsId1 == g_vars->scene05_wacko->_statics->_staticsId) { + g_vars->scene05_wacko->startAnim(staticsId2, 0, -1); + } else { + MessageQueue *mq = g_vars->scene05_wacko->changeStatics1(staticsId1); + + if (mq) { + mq->setFlags(mq->getFlags() | 1); + + ExCommand *ex = new ExCommand(0, 17, MSG_SC5_MAKEOTMFEEDBACK, 0, 0, 0, 1, 0, 0, 0); + + ex->_excFlags |= 2; + + mq->addExCommandToEnd(ex); + mq->_isFinished = 0; + } + } } void sceneHandler05_showHandle() { @@ -131,7 +162,7 @@ int sceneHandler05(ExCommand *ex) { case MSG_SC5_MAKEOTMFEEDBACK: if (!g_fullpipe->_aniMan->_movement || (g_fullpipe->_aniMan->_movement->_id != MV_MANHDL_HANDLEUP && g_fullpipe->_aniMan->_movement->_id != MV_MANHDL_HANDLEDOWN)) { - sceneHandler05_makeOtmFeedback(); + sceneHandler05_makeWackoFeedback(); g_vars->scene05_var01 = 0; } break; @@ -176,7 +207,7 @@ int sceneHandler05(ExCommand *ex) { if (!g_fullpipe->_aniMan->_movement || (g_fullpipe->_aniMan->_movement->_id != MV_MANHDL_HANDLEUP && g_fullpipe->_aniMan->_movement->_id != MV_MANHDL_HANDLEDOWN)) { if (g_vars->scene05_var02 % 2) - sceneHandler05_makeOtmFeedback(); + sceneHandler05_makeWackoFeedback(); g_vars->scene05_var01 = 0; |