diff options
-rw-r--r-- | engines/parallaction/walk.cpp | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/engines/parallaction/walk.cpp b/engines/parallaction/walk.cpp index a4f2a312c0..bd3d5945e0 100644 --- a/engines/parallaction/walk.cpp +++ b/engines/parallaction/walk.cpp @@ -420,11 +420,13 @@ uint16 checkDoor() { uint16 queryPath(uint16 x, uint16 y) { - byte _al = _buffer[y*40 + x/8]; - byte _dl = 1 << (x % 8); + // NOTE: a better solution would have us mirror each byte in the mask in the loading routine + // AmigaDisk::loadPath() instead of doing it here. - return _al & _dl; + byte _al = _buffer[y*40 + x/8]; + byte _dl = (_vm->getPlatform() == Common::kPlatformPC) ? (x & 7) : (7 - (x & 7)); + return _al & (1 << _dl); } void setPath(byte *path) { |