[Scummvm-cvs-logs] SF.net SVN: scummvm:[54303] scummvm/trunk/engines/sci/engine

lskovlun at users.sourceforge.net lskovlun at users.sourceforge.net
Wed Nov 17 21:43:52 CET 2010


Revision: 54303
          http://scummvm.svn.sourceforge.net/scummvm/?rev=54303&view=rev
Author:   lskovlun
Date:     2010-11-17 20:43:51 +0000 (Wed, 17 Nov 2010)

Log Message:
-----------
SCI3: Implement opcode to retrieve the info selector.

Modified Paths:
--------------
    scummvm/trunk/engines/sci/engine/kernel.cpp
    scummvm/trunk/engines/sci/engine/vm.cpp

Modified: scummvm/trunk/engines/sci/engine/kernel.cpp
===================================================================
--- scummvm/trunk/engines/sci/engine/kernel.cpp	2010-11-17 20:37:13 UTC (rev 54302)
+++ scummvm/trunk/engines/sci/engine/kernel.cpp	2010-11-17 20:43:51 UTC (rev 54303)
@@ -911,6 +911,12 @@
 		g_opcode_formats[op_call][1] = Script_Word;
 		g_opcode_formats[op_callb][1] = Script_Word;
 	}
+
+	if (getSciVersion() >= SCI_VERSION_3) {
+		// TODO: There are also opcodes in
+		// here to get the superclass, and possibly the species too.
+		g_opcode_formats[0x4d/2][0] = Script_None;
+	}
 #endif
 }
 

Modified: scummvm/trunk/engines/sci/engine/vm.cpp
===================================================================
--- scummvm/trunk/engines/sci/engine/vm.cpp	2010-11-17 20:37:13 UTC (rev 54302)
+++ scummvm/trunk/engines/sci/engine/vm.cpp	2010-11-17 20:43:51 UTC (rev 54303)
@@ -1557,7 +1557,16 @@
 
 		case 0x26: // (38)
 		case 0x27: // (39)
-			error("Dummy opcode 0x%x called", opcode);	// should never happen
+			if (getSciVersion() == SCI_VERSION_3)
+			{
+				if (extOpcode == 0x4d)
+					PUSH32(obj->getInfoSelector());
+				// TODO: There are also opcodes in
+				// here to get the superclass, and possibly the species too.
+				else
+					error("Dummy opcode 0x%x called", opcode);	// should never happen
+			} else
+				error("Dummy opcode 0x%x called", opcode);	// should never happen
 			break;
 
 		case op_class: // 0x28 (40)


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