[Scummvm-cvs-logs] SF.net SVN: scummvm: [29477] scummvm/trunk/engines/saga

thebluegr at users.sourceforge.net thebluegr at users.sourceforge.net
Sun Nov 11 19:12:55 CET 2007


Revision: 29477
          http://scummvm.svn.sourceforge.net/scummvm/?rev=29477&view=rev
Author:   thebluegr
Date:     2007-11-11 10:12:55 -0800 (Sun, 11 Nov 2007)

Log Message:
-----------
Don't draw objects with negative x/y values. Now, "ghost" objects are no longer created in the top left corner of the screen when picked up/used. The creation of such ghost objects is a script bug which exists in the original interpreter of IHNM as well. Also, removed a relevant workaround for the note in the first screen of Gorrister's chapter, as it's no longer needed

Modified Paths:
--------------
    scummvm/trunk/engines/saga/actor.cpp
    scummvm/trunk/engines/saga/script.cpp

Modified: scummvm/trunk/engines/saga/actor.cpp
===================================================================
--- scummvm/trunk/engines/saga/actor.cpp	2007-11-11 11:39:59 UTC (rev 29476)
+++ scummvm/trunk/engines/saga/actor.cpp	2007-11-11 18:12:55 UTC (rev 29477)
@@ -989,6 +989,13 @@
 		if (obj->_sceneNumber != _vm->_scene->currentSceneNumber())
 			 continue;
 
+		// WORKAROUND for a bug found in the original interpreter of IHNM
+		// If an object's x or y value is negative, don't draw it
+		// Scripts set negative values for an object's x and y when it shouldn't
+		// be drawn anymore (i.e. when it's picked up or used)
+		if (obj->_location.x < 0 || obj->_location.y < 0)
+			continue;
+
 		if (calcScreenPosition(obj)) {
 			_drawOrderList.pushBack(obj, compareFunction);
 		}

Modified: scummvm/trunk/engines/saga/script.cpp
===================================================================
--- scummvm/trunk/engines/saga/script.cpp	2007-11-11 11:39:59 UTC (rev 29476)
+++ scummvm/trunk/engines/saga/script.cpp	2007-11-11 18:12:55 UTC (rev 29477)
@@ -805,19 +805,6 @@
 						objectId = ID_NOTHING;
 						newObjectId = ID_NOTHING;
 					}
-
-					// WORKAROUND for a script bug in the original game scripts of IHNM
-					// When the note (item 16406) in the first screen of Gorrister's chapter
-					// is read, an invisible ghost object is created in the upper left corner
-					// of the screen, that the player can interact with. We ignore that invalid
-					// object here
-					if (_vm->getGameType() == GType_IHNM) {
-						if (objectId == 16406 && mousePoint.x < 60 && mousePoint.y < 60) {
-							objectId = ID_NOTHING;
-							newObjectId = ID_NOTHING;
-							newRightButtonVerb = getVerbType(kVerbNone);
-						}
-					}
 				} else {
 					actor = _vm->_actor->getActor(newObjectId);
 					objectId = newObjectId;


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