diff options
author | Eugene Sandulenko | 2014-02-03 21:14:24 +0200 |
---|---|---|
committer | Eugene Sandulenko | 2014-02-03 21:14:24 +0200 |
commit | bdd282efe7a09e8b5278e4db04d39799b6ff9773 (patch) | |
tree | b25fa141263429fd8d0691df460aa8e54d389c88 | |
parent | b128b8cacb1cd57d4245d0bbb31db5a66be78aff (diff) | |
download | scummvm-rg350-bdd282efe7a09e8b5278e4db04d39799b6ff9773.tar.gz scummvm-rg350-bdd282efe7a09e8b5278e4db04d39799b6ff9773.tar.bz2 scummvm-rg350-bdd282efe7a09e8b5278e4db04d39799b6ff9773.zip |
FULLPIPE: Implement sceneHandler27_clickBat()
-rw-r--r-- | engines/fullpipe/scenes/scene27.cpp | 26 |
1 files changed, 22 insertions, 4 deletions
diff --git a/engines/fullpipe/scenes/scene27.cpp b/engines/fullpipe/scenes/scene27.cpp index 63b4964fc5..529e0d6c1e 100644 --- a/engines/fullpipe/scenes/scene27.cpp +++ b/engines/fullpipe/scenes/scene27.cpp @@ -180,8 +180,26 @@ void sceneHandler27_showNextBat() { warning("STUB: sceneHandler27_showNextBat()"); } +void sceneHandler27_throwBat() { + warning("STUB: sceneHandler27_throwBat()"); +} + void sceneHandler27_clickBat(ExCommand *cmd) { - warning("STUB: sceneHandler27_clickBat()"); + int bx = g_vars->scene27_bat->_ox - 5; + int by = g_vars->scene27_bat->_oy - 71; + + if (ABS(bx - g_fp->_aniMan->_ox) > 1 || ABS(by - g_fp->_aniMan->_oy) > 1 + || g_fp->_aniMan->_movement || g_fp->_aniMan->_statics->_staticsId != ST_MAN_RIGHT) { + MessageQueue *mq = getCurrSceneSc2MotionController()->method34(g_fp->_aniMan, bx, by, 1, ST_MAN_RIGHT); + + if (mq) { + mq->addExCommandToEnd(cmd->createClone()); + + postExCommand(g_fp->_aniMan->_id, 2, bx, by, 0, -1); + } + } else { + sceneHandler27_throwBat(); + } } void sceneHandler27_startBat(StaticANIObject *bat) { @@ -226,8 +244,8 @@ void sceneHandler27_aimDude() { g_fp->_aniMan->_movement->setDynamicPhaseIndex(phase); } -void sceneHandler27_throwBat() { - warning("STUB: sceneHandler27_throwBat()"); +void sceneHandler27_sub07() { + warning("STUB: sceneHandler27_sub07()"); } void sceneHandler27_animateBats() { @@ -302,7 +320,7 @@ int sceneHandler27(ExCommand *cmd) { sceneHandler27_aimDude(); if (g_vars->scene27_var10) { - sceneHandler27_throwBat(); + sceneHandler27_sub07(); if (!g_fp->_aniMan->_movement && g_fp->_aniMan->_statics->_staticsId == ST_MAN_RIGHT) g_fp->_aniMan->startAnim(MV_MAN27_FLOW, 0, -1); |