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

cyx at users.sourceforge.net cyx at users.sourceforge.net
Mon Feb 27 13:56:02 CET 2006


Revision: 20958
Author:   cyx
Date:     2006-02-27 13:55:18 -0800 (Mon, 27 Feb 2006)
ViewCVS:  http://svn.sourceforge.net/scummvm?rev=20958&view=rev

Log Message:
-----------
Get rid of the SO_WAIT_FOR_TURN hack for TheDig as the original interpreter didn't do anything special here. This will probably trigger some 'invalid actor' errors, but those are most likely caused by scripting mistakes... which should be worked around separately.

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 21:25:59 UTC (rev 20957)
+++ scummvm/trunk/engines/scumm/script_v6.cpp	2006-02-27 21:55:18 UTC (rev 20958)
@@ -2231,21 +2231,8 @@
 			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.
-		// It would be very good if somebody could disassmble the original code
-		// for this opcode so that we could figure out what's really going on here.
-		//
-		// 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.
 		offs = fetchScriptWordSigned();
 		actnum = pop();
-		if (actnum % 45 == 0) {
-			actnum = _curActor;
-		}
 		a = derefActor(actnum, "o6_wait:232b");
 		if (a->isInCurrentRoom() && a->_moving & MF_TURN)
 			break;







More information about the Scummvm-git-logs mailing list