diff options
author | Paul Gilbert | 2014-12-04 22:40:09 -0500 |
---|---|---|
committer | Paul Gilbert | 2014-12-12 23:00:57 -0500 |
commit | 1f42800e0cd2b4ab08bba78edbe69f657dc89367 (patch) | |
tree | 899aae6bdc67fe0d2b83ff31bbc23f20a2bd15ed /engines/access | |
parent | 84ba0df9b2ce15d6c1d32a6c61794a1accb3fc99 (diff) | |
download | scummvm-rg350-1f42800e0cd2b4ab08bba78edbe69f657dc89367.tar.gz scummvm-rg350-1f42800e0cd2b4ab08bba78edbe69f657dc89367.tar.bz2 scummvm-rg350-1f42800e0cd2b4ab08bba78edbe69f657dc89367.zip |
ACCESS: Further cleanup of river obstacles checks
Diffstat (limited to 'engines/access')
-rw-r--r-- | engines/access/amazon/amazon_game.cpp | 3 | ||||
-rw-r--r-- | engines/access/amazon/amazon_logic.cpp | 21 | ||||
-rw-r--r-- | engines/access/amazon/amazon_resources.h | 2 |
3 files changed, 15 insertions, 11 deletions
diff --git a/engines/access/amazon/amazon_game.cpp b/engines/access/amazon/amazon_game.cpp index deb45ff4b1..79fca87b3f 100644 --- a/engines/access/amazon/amazon_game.cpp +++ b/engines/access/amazon/amazon_game.cpp @@ -627,6 +627,9 @@ void AmazonEngine::dead(int deathId) { _screen->forceFadeIn(); _sound->playSound(0); _screen->forceFadeOut(); + + if (shouldQuit()) + return; } freeCells(); diff --git a/engines/access/amazon/amazon_logic.cpp b/engines/access/amazon/amazon_logic.cpp index 428b85f969..a7ee432183 100644 --- a/engines/access/amazon/amazon_logic.cpp +++ b/engines/access/amazon/amazon_logic.cpp @@ -1635,8 +1635,9 @@ void River::moveCanoe2() { void River::updateObstacles() { RiverStruct *cur; for (cur = _topList; cur < RIVER_OBJECTS[_riverIndex][RIVER_END]; ++cur) { - int val = cur->_field1 + cur->_riverX - 1; + int val = cur->_riverX + cur->_width - 1; if (val < _screenVertX) + // Obstacle is not yet on-scren break; if (cur->_riverX < (_screenVertX + 319)) { @@ -1645,7 +1646,7 @@ void River::updateObstacles() { while (cur < RIVER_OBJECTS[_riverIndex][RIVER_END]) { ++cur; - val = cur->_field1 + cur->_riverX - 1; + val = cur->_riverX + cur->_width - 1; if (val < _screenVertX || (cur->_riverX >= (_screenVertX + 319))) break; @@ -1676,19 +1677,19 @@ bool River::checkRiverCollide() { _canoeVXPos = _screenVertX + 170; - for (RiverStruct *si = _topList; si <= _botList; ++si) { - if (si->_lane < _canoeLane) + for (RiverStruct *cur = _topList; cur <= _botList; ++cur) { + if (cur->_lane < _canoeLane) continue; - if ((si->_lane == _canoeLane) || (si->_lane == _canoeLane + 1)) { - if (si->_field1 + si->_riverX - 1 >= _canoeVXPos) { - if (_canoeVXPos + 124 >= si->_riverX) { - _vm->_sound->playSound(4); - return true; - } + if ((cur->_lane == _canoeLane) || (cur->_lane == _canoeLane + 1)) { + if ((cur->_riverX + cur->_width - 1) >= _canoeVXPos && + cur->_riverX < (_canoeVXPos + 124)) { + _vm->_sound->playSound(4); + return true; } } } + return false; } diff --git a/engines/access/amazon/amazon_resources.h b/engines/access/amazon/amazon_resources.h index b6b0dbbdce..777c579073 100644 --- a/engines/access/amazon/amazon_resources.h +++ b/engines/access/amazon/amazon_resources.h @@ -31,7 +31,7 @@ namespace Amazon { struct RiverStruct { int _id; - int _field1; + int _width; int _riverX; int _xp; int _lane; |