aboutsummaryrefslogtreecommitdiff
path: root/engines/saga/script.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'engines/saga/script.cpp')
-rw-r--r--engines/saga/script.cpp12
1 files changed, 12 insertions, 0 deletions
diff --git a/engines/saga/script.cpp b/engines/saga/script.cpp
index cd10522dfc..ecd3c8a82f 100644
--- a/engines/saga/script.cpp
+++ b/engines/saga/script.cpp
@@ -827,6 +827,18 @@ void Script::whichObject(const Point& mousePoint) {
hitZoneIndex = _vm->_scene->_objectMap->hitTest(pickPoint);
+ // WORKAROUND for an incorrect hitzone which exists in IHNM
+ // In Gorrister's chapter, in the toilet screen, the hitzone of the exit is
+ // placed over the place where Gorrister sits to examine the graffiti on the wall
+ // to the left, which makes him exit the screen when the graffiti is examined.
+ // We effectively change the left side of the hitzone here so that it starts from
+ // pixel 301 onwards. The same workaround is applied in Actor::handleActions
+ if (_vm->getGameType() == GType_IHNM) {
+ if (_vm->_scene->currentChapterNumber() == 1 && _vm->_scene->currentSceneNumber() == 22)
+ if (hitZoneIndex == 8 && pickPoint.x <= 300)
+ hitZoneIndex = -1;
+ }
+
if ((hitZoneIndex != -1)) {
hitZone = _vm->_scene->_objectMap->getHitZone(hitZoneIndex);
objectId = hitZone->getHitZoneId();