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

m_kiewitz at users.sourceforge.net m_kiewitz at users.sourceforge.net
Wed Jan 13 12:14:05 CET 2010


Revision: 47288
          http://scummvm.svn.sourceforge.net/scummvm/?rev=47288&view=rev
Author:   m_kiewitz
Date:     2010-01-13 11:14:04 +0000 (Wed, 13 Jan 2010)

Log Message:
-----------
SCI: fix kernel signature for kDrawCel (fixes island of dr. brain), added debugging output for kernel_matches_signature

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

Modified: scummvm/trunk/engines/sci/engine/kernel.cpp
===================================================================
--- scummvm/trunk/engines/sci/engine/kernel.cpp	2010-01-13 08:14:16 UTC (rev 47287)
+++ scummvm/trunk/engines/sci/engine/kernel.cpp	2010-01-13 11:14:04 UTC (rev 47288)
@@ -201,7 +201,7 @@
 	/*0e*/	DEFUN("NumCels", kNumCels, "o"),
 	/*0f*/	DEFUN("CelWide", kCelWide, "iOi*"),
 	/*10*/	DEFUN("CelHigh", kCelHigh, "iOi*"),
-	/*11*/	DEFUN("DrawCel", kDrawCel, "iiiiiii*r*"),
+	/*11*/	DEFUN("DrawCel", kDrawCel, "iiiiii*i*r*"),
 	/*12*/	DEFUN("AddToPic", kAddToPic, "Il*"),
 	// FIXME: signature check removed (set to .*) as kNewWindow is different in Mac versions
 	/*13*/	DEFUN("NewWindow", kNewWindow, "*."),
@@ -693,8 +693,10 @@
 				return false;
 			}
 
-			if (!(type & *sig))
+			if (!(type & *sig)) {
+				warning("kernel_matches_signature: %d args left, is %d, should be %d", argc, type, *sig);
 				return false;
+			}
 
 		}
 		if (!(*sig & KSIG_ELLIPSIS))
@@ -703,10 +705,14 @@
 		--argc;
 	}
 
-	if (argc)
+	if (argc) {
+		warning("kernel_matches_signature: too many arguments");
 		return false; // Too many arguments
-	else
-		return (*sig == 0 || (*sig & KSIG_ELLIPSIS));
+	}
+	if (*sig == 0 || (*sig & KSIG_ELLIPSIS))
+		return true;
+	warning("kernel_matches_signature: too few arguments");
+	return false;
 }
 
 void kernel_sleep(SciEvent *event, uint32 msecs ) {


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