diff options
author | Eugene Sandulenko | 2013-08-29 14:01:35 +0300 |
---|---|---|
committer | Eugene Sandulenko | 2013-09-06 14:51:21 +0300 |
commit | 638bd3014ef4fb4f33e6520263aa2e6471b0f70a (patch) | |
tree | 5167f8600bca3f5c6ffd7eeedcc43a0c3392010b | |
parent | cac623a8219e17a84e032a9c3415538741a65d9e (diff) | |
download | scummvm-rg350-638bd3014ef4fb4f33e6520263aa2e6471b0f70a.tar.gz scummvm-rg350-638bd3014ef4fb4f33e6520263aa2e6471b0f70a.tar.bz2 scummvm-rg350-638bd3014ef4fb4f33e6520263aa2e6471b0f70a.zip |
FULLPIPE: Fix bugs in Movement::updateCurrDynamicPhase()
-rw-r--r-- | engines/fullpipe/gfx.cpp | 3 | ||||
-rw-r--r-- | engines/fullpipe/statics.cpp | 15 |
2 files changed, 14 insertions, 4 deletions
diff --git a/engines/fullpipe/gfx.cpp b/engines/fullpipe/gfx.cpp index e368c4b262..6627e35a85 100644 --- a/engines/fullpipe/gfx.cpp +++ b/engines/fullpipe/gfx.cpp @@ -1054,6 +1054,9 @@ DynamicPhase *Shadows::findSize(int width, int height) { int idx = 0; int min = 1000; + if (!_items.size()) + return 0; + for (uint i = 0; i < _items.size(); i++) { int w = abs(width - _items[i].width); if (w < min) { diff --git a/engines/fullpipe/statics.cpp b/engines/fullpipe/statics.cpp index ad51b8fa4c..4d13f2908a 100644 --- a/engines/fullpipe/statics.cpp +++ b/engines/fullpipe/statics.cpp @@ -1279,11 +1279,18 @@ void Movement::initStatics(StaticANIObject *ani) { } void Movement::updateCurrDynamicPhase() { - if (_dynamicPhases.size() == 0) - return; + if (_currMovement) { + if (_currMovement->_dynamicPhases.size() == 0) + return; + + if (_currMovement->_dynamicPhases[_currDynamicPhaseIndex]) + _currDynamicPhase = (DynamicPhase *)_currMovement->_dynamicPhases[_currDynamicPhaseIndex]; + } else { + if (_dynamicPhases.size() == 0) + return; - if (_dynamicPhases[_currDynamicPhaseIndex]) { - _currDynamicPhase = (DynamicPhase *)_dynamicPhases[_currDynamicPhaseIndex]; + if (_dynamicPhases[_currDynamicPhaseIndex]) + _currDynamicPhase = (DynamicPhase *)_dynamicPhases[_currDynamicPhaseIndex]; } } |