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

thebluegr at users.sourceforge.net thebluegr at users.sourceforge.net
Tue Aug 26 16:26:44 CEST 2008


Revision: 34189
          http://scummvm.svn.sourceforge.net/scummvm/?rev=34189&view=rev
Author:   thebluegr
Date:     2008-08-26 14:26:43 +0000 (Tue, 26 Aug 2008)

Log Message:
-----------
Fix for bug #2057200 - "IHNM: Invisible inventory objects"

Modified Paths:
--------------
    scummvm/trunk/engines/saga/sfuncs.cpp

Modified: scummvm/trunk/engines/saga/sfuncs.cpp
===================================================================
--- scummvm/trunk/engines/saga/sfuncs.cpp	2008-08-26 13:56:58 UTC (rev 34188)
+++ scummvm/trunk/engines/saga/sfuncs.cpp	2008-08-26 14:26:43 UTC (rev 34189)
@@ -276,32 +276,15 @@
 	if (obj->_sceneNumber != ITE_SCENE_INV) {
 		obj->_sceneNumber = ITE_SCENE_INV;
 
-		// WORKAROUND for a problematic object in IHNM
-		// There are 3 different scenes in front of the zeppelin, in Gorrister's chapter. A scene where the
-		// zeppelin is in the air (scene 17), a scene where it approaches Gorrister's (scene 16) and another one
-		// where it has landed (scene 18).
-		// In two of these scenes (the "on air" and "approaching" ones), when the player uses the knife with the
-		// rope, the associated script picks up object id 16392. In the "zeppelin landed" scene (scene 18), the
-		// associated script picks up object id 16390. This seems to be a script bug, as it should be id 16392,
-		// like in the other two scenes, as it is the same object (the rope). Picking up object 16390 leads to an
-		// assertion anyway, therefore we change the problematic object (16390) to the correct one (16392) here.
-		// Fixes bug #1861126 - "IHNM: Crash when Gorrister cuts sheet in the mooring ring"
-		if (_vm->getGameType() == GType_IHNM) {
-			if (_vm->_scene->currentChapterNumber() == 1 && _vm->_scene->currentSceneNumber() == 18) {
-				if (objectId == 16390)
-					objectId = 16392;
-			}
-		}
+		// Normally, when objects are picked up, they should always have the same
+		// _spriteListResourceId as their _index value. Some don't in IHNM, so
+		// we fix their sprite here
+		// Fixes bugs #2057200 - "IHNM: Invisible inventory objects", 
+		// #1861126 - "IHNM: Crash when Gorrister cuts sheet in the mooring ring"
+		// and some incorrect objects in the IHNM demo
+		if (_vm->getGameType() == GType_IHNM)
+			obj->_spriteListResourceId = obj->_index;
 
-		// WORKAROUND for two incorrect object sprites in the IHNM demo
-		// (the mirror and the icon in Ted's part). Set them correctly here
-		if (_vm->getGameId() == GID_IHNM_DEMO) {
-			if (objectId == 16408)
-				obj->_spriteListResourceId = 24;
-			if (objectId == 16409)
-				obj->_spriteListResourceId = 25;
-		}
-
 		_vm->_interface->addToInventory(objectId);
 	}
 }


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