diff options
author | Eugene Sandulenko | 2013-12-30 00:27:26 +0200 |
---|---|---|
committer | Eugene Sandulenko | 2013-12-30 00:27:26 +0200 |
commit | edb26cb56305f7cfec816ba57c0d18e860038ae1 (patch) | |
tree | d9cddd1dd206ce45c1b3dcba333c8acb5f086045 | |
parent | 58ffa21c29b48a8950fe49811b817ad2a863ca37 (diff) | |
download | scummvm-rg350-edb26cb56305f7cfec816ba57c0d18e860038ae1.tar.gz scummvm-rg350-edb26cb56305f7cfec816ba57c0d18e860038ae1.tar.bz2 scummvm-rg350-edb26cb56305f7cfec816ba57c0d18e860038ae1.zip |
FULLPIPE: Implement sceneHandler13_openBridge()
-rw-r--r-- | engines/fullpipe/scenes/scene13.cpp | 34 |
1 files changed, 26 insertions, 8 deletions
diff --git a/engines/fullpipe/scenes/scene13.cpp b/engines/fullpipe/scenes/scene13.cpp index 2080bb0f1b..e2d7f88551 100644 --- a/engines/fullpipe/scenes/scene13.cpp +++ b/engines/fullpipe/scenes/scene13.cpp @@ -81,7 +81,24 @@ void scene13_initScene(Scene *sc) { } void sceneHandler13_openBridge() { - warning("STUB: sceneHandler13_openBridge()"); + Movement *mov = g_vars->scene13_bridge->_movement; + + if (mov && mov->_id == MV_BDG_CLOSE) { + int sz; + + if (mov->_currMovement) + sz = mov->_currMovement->_dynamicPhases.size(); + else + sz = mov->_dynamicPhases.size(); + + g_vars->scene13_bridge->changeStatics2(ST_BDG_CLOSED); + g_vars->scene13_bridge->startAnim(MV_BDG_OPEN, 0, -1); + + mov->setDynamicPhaseIndex(sz - mov->_currDynamicPhaseIndex); + } else { + g_vars->scene13_bridge->changeStatics2(ST_BDG_CLOSED); + g_vars->scene13_bridge->startAnim(MV_BDG_OPEN, 0, -1); + } } void sceneHandler13_testClose() { @@ -93,19 +110,20 @@ void sceneHandler13_testOpen() { } void sceneHandler13_closeBridge() { - if (g_vars->scene13_bridge->_movement && g_vars->scene13_bridge->_movement->_id == MV_BDG_OPEN) { + Movement *mov = g_vars->scene13_bridge->_movement; + + if (mov && mov->_id == MV_BDG_OPEN) { int sz; - if (g_vars->scene13_bridge->_movement->_currMovement) - sz = g_vars->scene13_bridge->_movement->_currMovement->_dynamicPhases.size(); + if (mov->_currMovement) + sz = mov->_currMovement->_dynamicPhases.size(); else - sz = g_vars->scene13_bridge->_movement->_dynamicPhases.size(); - - int curIdx = g_vars->scene13_bridge->_movement->_currDynamicPhaseIndex; + sz = mov->_dynamicPhases.size(); g_vars->scene13_bridge->changeStatics2(ST_BDG_OPEN2); g_vars->scene13_bridge->startAnim(MV_BDG_CLOSE, 0, -1); - g_vars->scene13_bridge->_movement->setDynamicPhaseIndex(sz - curIdx); + + mov->setDynamicPhaseIndex(sz - mov->_currDynamicPhaseIndex); } else { g_vars->scene13_bridge->changeStatics2(ST_BDG_OPEN2); g_vars->scene13_bridge->startAnim(MV_BDG_CLOSE, 0, -1); |