[Scummvm-cvs-logs] SF.net SVN: scummvm: [29264] scummvm/trunk/engines/saga
thebluegr at users.sourceforge.net
thebluegr at users.sourceforge.net
Sat Oct 27 13:42:18 CEST 2007
Revision: 29264
http://scummvm.svn.sourceforge.net/scummvm/?rev=29264&view=rev
Author: thebluegr
Date: 2007-10-27 04:42:17 -0700 (Sat, 27 Oct 2007)
Log Message:
-----------
Added a workaround for an incorrect hitzone in IHNM, (Gorrister's chapter). Now, the graffiti to the left in the toilet screen can be examined correctly. Also, performed some clean-up
Modified Paths:
--------------
scummvm/trunk/engines/saga/actor_walk.cpp
scummvm/trunk/engines/saga/script.cpp
Modified: scummvm/trunk/engines/saga/actor_walk.cpp
===================================================================
--- scummvm/trunk/engines/saga/actor_walk.cpp 2007-10-26 20:35:06 UTC (rev 29263)
+++ scummvm/trunk/engines/saga/actor_walk.cpp 2007-10-27 11:42:17 UTC (rev 29264)
@@ -749,6 +749,18 @@
hitZone = _vm->_scene->_actionMap->getHitZone(hitZoneIndex);
}
+ // 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 Script::whichObject
+ if (_vm->getGameType() == GType_IHNM) {
+ if (_vm->_scene->currentChapterNumber() == 1 && _vm->_scene->currentSceneNumber() == 22)
+ if (hitPoint.x <= 300)
+ hitZone = NULL;
+ }
+
if (hitZone != actor->_lastZone) {
if (actor->_lastZone)
stepZoneAction(actor, actor->_lastZone, true, false);
@@ -757,9 +769,10 @@
// (room 51) for hitzone 24577 (the door with the copy protection) to avoid the glitch. This glitch
// happens because the copy protection is supposed to kick in at this point, but it's bypassed
// (with permission from Wyrmkeep Entertainment)
- if (hitZone &&
- !(_vm->getGameType() == GType_ITE && _vm->_scene->currentSceneNumber() == 51 && hitZone->getHitZoneId() == 24577))
- stepZoneAction(actor, hitZone, false, false);
+ if (!(_vm->getGameType() == GType_ITE && _vm->_scene->currentSceneNumber() == 51 && hitZone->getHitZoneId() == 24577)) {
+ if (hitZone)
+ stepZoneAction(actor, hitZone, false, false);
+ }
}
}
}
Modified: scummvm/trunk/engines/saga/script.cpp
===================================================================
--- scummvm/trunk/engines/saga/script.cpp 2007-10-26 20:35:06 UTC (rev 29263)
+++ scummvm/trunk/engines/saga/script.cpp 2007-10-27 11:42:17 UTC (rev 29264)
@@ -827,6 +827,18 @@
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();
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
More information about the Scummvm-git-logs
mailing list