aboutsummaryrefslogtreecommitdiff
path: root/engines/scumm
diff options
context:
space:
mode:
authorTravis Howell2009-11-26 00:59:57 +0000
committerTravis Howell2009-11-26 00:59:57 +0000
commit1c4408f59378b6bc996f29283f0d6416d4154478 (patch)
tree2edb2593a032aab8657ee74f62c6f2a73a397166 /engines/scumm
parent74abd8de64b8f1be4615cd763a7a9af3cb157076 (diff)
downloadscummvm-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.cpp13
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);
}