[Scummvm-cvs-logs] SF.net SVN: scummvm: [20962] scummvm/trunk/engines/scumm/script_v6.cpp

kirben at users.sourceforge.net kirben at users.sourceforge.net
Mon Feb 27 15:26:02 CET 2006


Revision: 20962
Author:   kirben
Date:     2006-02-27 15:25:07 -0800 (Mon, 27 Feb 2006)
ViewCVS:  http://svn.sourceforge.net/scummvm?rev=20962&view=rev

Log Message:
-----------
Update comment for SO_WAIT_FOR_TURN workaround in The Dig, this is due to script bugs. SO_WAIT_FOR_TURN is never used by FT r COMI either, so remove game check.

Modified Paths:
--------------
    scummvm/trunk/engines/scumm/script_v6.cpp
Modified: scummvm/trunk/engines/scumm/script_v6.cpp
===================================================================
--- scummvm/trunk/engines/scumm/script_v6.cpp	2006-02-27 22:43:43 UTC (rev 20961)
+++ scummvm/trunk/engines/scumm/script_v6.cpp	2006-02-27 23:25:07 UTC (rev 20962)
@@ -2231,19 +2231,15 @@
 			break;
 		return;
 	case 232:		// SO_WAIT_FOR_TURN
-		// FIXME: This opcode is really odd. It's used a lot in The Dig.
-		// But sometimes it receives the actor ID as params, and sometimes an
-		// angle. However in (almost?) all cases, just before calling it, _curActor
-		// is set, so we can use it. I tried to add code that detects if an angle
-		// is passed, and if so, wait till that angle is reached, but that leads to hangs.
-		// Disassembly doesn't show anything special for that opcode, though.
+		// WORKAROUND for bug #744441: An angle will often be received as the 
+		// actor numnber due to script bugs in The Dig. In all cases where this
+		// occurs, _curActor is set just before it, so we can use it instead.
 		//
 		// For now, if the value passed in is divisible by 45, assume it is an
-		// angle, and use _curActor as the actor to wait for. See bug report #744441
+		// angle, and use _curActor as the actor to wait for. 
 		offs = fetchScriptWordSigned();
  		actnum = pop();
- 		if (_game.id == GID_DIG && actnum % 45 == 0) {
-			warning("Working around invalid actor num %d", actnum);
+ 		if (actnum % 45 == 0) {
 			actnum = _curActor;
 		}
 		a = derefActor(actnum, "o6_wait:232b");







More information about the Scummvm-git-logs mailing list