aboutsummaryrefslogtreecommitdiff
path: root/engines/scumm/object.cpp
diff options
context:
space:
mode:
authorWillem Jan Palenstijn2013-04-18 23:55:01 +0200
committerWillem Jan Palenstijn2013-05-08 20:47:44 +0200
commit102299630901d08a44ef3aec367fcbcae065b9fe (patch)
tree98db4bbe0c54176c0a43e2f5076f8b3d63b8065c /engines/scumm/object.cpp
parent583f9abaf98f64895546b75573e9442ca47426e3 (diff)
parent78ba3210a57094086d44b25d5a8507c33ce9bef3 (diff)
downloadscummvm-rg350-102299630901d08a44ef3aec367fcbcae065b9fe.tar.gz
scummvm-rg350-102299630901d08a44ef3aec367fcbcae065b9fe.tar.bz2
scummvm-rg350-102299630901d08a44ef3aec367fcbcae065b9fe.zip
Merge branch 'master'
Diffstat (limited to 'engines/scumm/object.cpp')
-rw-r--r--engines/scumm/object.cpp12
1 files changed, 8 insertions, 4 deletions
diff --git a/engines/scumm/object.cpp b/engines/scumm/object.cpp
index 77c75c4ad6..ed77a863cd 100644
--- a/engines/scumm/object.cpp
+++ b/engines/scumm/object.cpp
@@ -433,10 +433,14 @@ void ScummEngine::getObjectXYPos(int object, int &x, int &y, int &dir) {
y = od.y_pos + (int16)READ_LE_UINT16(&imhd->old.hotspot[state].y);
}
} else if (_game.version <= 2) {
- if (od.actordir) {
- x = od.walk_x;
- y = od.walk_y;
- } else {
+ x = od.walk_x;
+ y = od.walk_y;
+
+ // Adjust x, y when no actor direction is set, but only perform this
+ // adjustment for V0 games (e.g. MM C64), otherwise certain scenes in
+ // newer games are affected as well (e.g. the interior of the Shuttle
+ // Bus scene in Zak V2, where no actor is present). Refer to bug #3526089.
+ if (!od.actordir && _game.version == 0) {
x = od.x_pos + od.width / 2;
y = od.y_pos + od.height / 2;
}