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

thebluegr at users.sourceforge.net thebluegr at users.sourceforge.net
Wed May 26 12:35:55 CEST 2010


Revision: 49232
          http://scummvm.svn.sourceforge.net/scummvm/?rev=49232&view=rev
Author:   thebluegr
Date:     2010-05-26 10:35:54 +0000 (Wed, 26 May 2010)

Log Message:
-----------
Added more info to the warning thrown when argc > 1 while modifying a variable selector in send_selector()

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

Modified: scummvm/trunk/engines/sci/engine/vm.cpp
===================================================================
--- scummvm/trunk/engines/sci/engine/vm.cpp	2010-05-26 09:59:40 UTC (rev 49231)
+++ scummvm/trunk/engines/sci/engine/vm.cpp	2010-05-26 10:35:54 UTC (rev 49232)
@@ -411,12 +411,21 @@
 				printSendActions = false;
 			}
 
-			if (argc > 1)
+			if (argc > 1) {
 				// argc can indeed be bigger than 1 in some cases, and it seems correct
 				// (i.e. we should skip that many bytes later on)... question is, why
 				// does this occur? Could such calls be used to point to data after X bytes in the heap?
 				// What are the skipped bytes in this case?
-				warning("send_selector(): more than 1 parameter (%d) while modifying a variable selector", argc);
+				// In SQ4CD, this occurs with the returnVal selector of object Sq4GlobalNarrator when the
+				// game starts, and right after the narrator is heard (e.g. after he talks when examining
+				// something)
+				reg_t oldReg = *varp.getPointer(s->_segMan);
+				reg_t newReg = argp[1];
+				warning("send_selector(): argc = %d while modifying variable selector "
+						"%x (%s) of object %04x:%04x (%s) from %04x:%04x to %04x:%04x", 
+						argc, selector, g_sci->getKernel()->getSelectorName(selector).c_str(), PRINT_REG(send_obj),
+						s->_segMan->getObjectName(send_obj), PRINT_REG(oldReg), PRINT_REG(newReg));
+			}
 
 			{
 				CallsStruct call;


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