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

fingolfin at users.sourceforge.net fingolfin at users.sourceforge.net
Wed Apr 22 19:54:31 CEST 2009


Revision: 40081
          http://scummvm.svn.sourceforge.net/scummvm/?rev=40081&view=rev
Author:   fingolfin
Date:     2009-04-22 17:54:30 +0000 (Wed, 22 Apr 2009)

Log Message:
-----------
SCI: Slim down struct SciKernelFunction

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

Modified: scummvm/trunk/engines/sci/engine/kernel.cpp
===================================================================
--- scummvm/trunk/engines/sci/engine/kernel.cpp	2009-04-22 17:54:11 UTC (rev 40080)
+++ scummvm/trunk/engines/sci/engine/kernel.cpp	2009-04-22 17:54:30 UTC (rev 40081)
@@ -55,8 +55,8 @@
 #endif
 };
 
-#define DEFUN(nm, cname, sig) {KF_NEW, nm, {cname, sig, NULL}}
-#define NOFUN(nm) {KF_NONE, nm, {NULL, NULL, NULL}}
+#define DEFUN(nm, cname, sig) {KF_NEW, nm, cname, sig}
+#define NOFUN(nm) {KF_NONE, nm, NULL, NULL}
 
 SciKernelFunction kfunct_mappers[] = {
 	/*00*/	DEFUN("Load", kLoad, "iii*"),
@@ -208,9 +208,9 @@
 
 
 	// Special and NOP stuff
-	{KF_NEW, NULL, {k_Unknown, NULL, NULL}},
+	{KF_NEW, NULL, k_Unknown, NULL},
 
-	{KF_TERMINATOR, NULL, {NULL, NULL, NULL}} // Terminator
+	{KF_TERMINATOR, NULL, NULL, NULL} // Terminator
 };
 
 static const char *argtype_description[] = { "Undetermined (WTF?)", "List", "Node", "Object", "Reference", "Arithmetic" };
@@ -321,7 +321,7 @@
 	} else {
 		switch (kfunct_mappers[funct_nr].type) {
 		case KF_NEW:
-			return kfunct_mappers[funct_nr].sig_pair.fun(s, funct_nr, argc, argv);
+			return kfunct_mappers[funct_nr].fun(s, funct_nr, argc, argv);
 		case KF_NONE:
 		default:
 			warning("Unhandled Unknown function %04x", funct_nr);
@@ -642,7 +642,9 @@
 				break;
 
 			case KF_NEW:
-				s->_kfuncTable[functnr] = kfunct_mappers[found].sig_pair;
+				s->_kfuncTable[functnr].fun = kfunct_mappers[found].fun;
+				s->_kfuncTable[functnr].signature = kfunct_mappers[found].signature;
+				s->_kfuncTable[functnr].orig_name.clear();
 				kernel_compile_signature(&(s->_kfuncTable[functnr].signature));
 				++mapped;
 				break;

Modified: scummvm/trunk/engines/sci/engine/kernel.h
===================================================================
--- scummvm/trunk/engines/sci/engine/kernel.h	2009-04-22 17:54:11 UTC (rev 40080)
+++ scummvm/trunk/engines/sci/engine/kernel.h	2009-04-22 17:54:30 UTC (rev 40081)
@@ -318,7 +318,8 @@
 struct SciKernelFunction {
 	int type; /* KF_* */
 	const char *name;
-	kfunct_sig_pair_t sig_pair;
+	kfunct *fun; /* The actual function */
+	const char *signature;  /* kfunct signature */
 };
 
 extern SciKernelFunction kfunct_mappers[];


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