diff options
author | Travis Howell | 2009-11-26 00:59:57 +0000 |
---|---|---|
committer | Travis Howell | 2009-11-26 00:59:57 +0000 |
commit | 1c4408f59378b6bc996f29283f0d6416d4154478 (patch) | |
tree | 2edb2593a032aab8657ee74f62c6f2a73a397166 /engines/scumm | |
parent | 74abd8de64b8f1be4615cd763a7a9af3cb157076 (diff) | |
download | scummvm-rg350-1c4408f59378b6bc996f29283f0d6416d4154478.tar.gz scummvm-rg350-1c4408f59378b6bc996f29283f0d6416d4154478.tar.bz2 scummvm-rg350-1c4408f59378b6bc996f29283f0d6416d4154478.zip |
Add patch #2857016 - MM C64: meteor landing as work around, with the explaination.
svn-id: r46149
Diffstat (limited to 'engines/scumm')
-rw-r--r-- | engines/scumm/actor.cpp | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/engines/scumm/actor.cpp b/engines/scumm/actor.cpp index 4b7e45c00c..0ebe378996 100644 --- a/engines/scumm/actor.cpp +++ b/engines/scumm/actor.cpp @@ -572,8 +572,17 @@ void Actor_v2::walkActor() { _walkdata.curbox = next_box; - getClosestPtOnBox(_vm->getBoxCoordinates(_walkdata.curbox), _pos.x, _pos.y, tmp.x, tmp.y); - getClosestPtOnBox(_vm->getBoxCoordinates(_walkbox), tmp.x, tmp.y, foundPath.x, foundPath.y); + // WORKAROUND: The route of the meteor landing in the introduction isn't correct. + // MM V0 in contrast to MM V2 uses two walkboxes instead of just one. Hence a route + // from walkbox 1 to 0 is calculated first. This causes the meteor to fly on a + // horizontal line to walkbox 0 then vertically to the ground. + // To fix this problem, the box-to-box routing has been disabled in room 33. + if (_vm->_game.version == 0 && _vm->_currentRoom == 33) { + foundPath = _walkdata.dest; + } else { + getClosestPtOnBox(_vm->getBoxCoordinates(_walkdata.curbox), _pos.x, _pos.y, tmp.x, tmp.y); + getClosestPtOnBox(_vm->getBoxCoordinates(_walkbox), tmp.x, tmp.y, foundPath.x, foundPath.y); + } } calcMovementFactor(foundPath); } |