From 1c4408f59378b6bc996f29283f0d6416d4154478 Mon Sep 17 00:00:00 2001 From: Travis Howell Date: Thu, 26 Nov 2009 00:59:57 +0000 Subject: Add patch #2857016 - MM C64: meteor landing as work around, with the explaination. svn-id: r46149 --- engines/scumm/actor.cpp | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) (limited to 'engines/scumm') 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); } -- cgit v1.2.3