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

fingolfin at users.sourceforge.net fingolfin at users.sourceforge.net
Wed May 20 19:52:12 CEST 2009


Revision: 40739
          http://scummvm.svn.sourceforge.net/scummvm/?rev=40739&view=rev
Author:   fingolfin
Date:     2009-05-20 17:52:12 +0000 (Wed, 20 May 2009)

Log Message:
-----------
SCI: Moved some private decls from kernel.h to kernel.cpp; removed pointless (and incorrect) fallback code in k_Unknown

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

Modified: scummvm/trunk/engines/sci/engine/kernel.cpp
===================================================================
--- scummvm/trunk/engines/sci/engine/kernel.cpp	2009-05-20 17:51:55 UTC (rev 40738)
+++ scummvm/trunk/engines/sci/engine/kernel.cpp	2009-05-20 17:52:12 UTC (rev 40739)
@@ -34,6 +34,19 @@
 namespace Sci {
 
 
+enum KernelFunctionType {
+	KF_NEW = 1,
+	KF_NONE = -1, /**< No mapping, but name is known */
+	KF_TERMINATOR = -42 /**< terminates kfunct_mappers */
+};
+
+struct SciKernelFunction {
+	KernelFunctionType type;
+	const char *name;
+	kfunct *fun; /* The actual function */
+	const char *signature;  /* kfunct signature */
+};
+
 static int sci_max_allowed_unknown_kernel_functions[] = {
 	0,
 	0x72, // SCI0
@@ -382,6 +395,9 @@
 				kernel_compile_signature(&(s->_kfuncTable[functnr].signature));
 				++mapped;
 				break;
+			case KF_TERMINATOR:
+				error("Unexpectedly encountered KF_TERMINATOR");
+				break;
 			}
 
 	} // for all functions requesting to be mapped

Modified: scummvm/trunk/engines/sci/engine/kernel.h
===================================================================
--- scummvm/trunk/engines/sci/engine/kernel.h	2009-05-20 17:51:55 UTC (rev 40738)
+++ scummvm/trunk/engines/sci/engine/kernel.h	2009-05-20 17:52:12 UTC (rev 40739)
@@ -303,23 +303,8 @@
 };
 
 
-enum {
-	KF_NEW = 1,
-	KF_NONE = -1, /* No mapping, but name is known */
-	KF_TERMINATOR = -42 /* terminates kfunct_mappers */
-};
 
-struct SciKernelFunction {
-	int type; /* KF_* */
-	const char *name;
-	kfunct *fun; /* The actual function */
-	const char *signature;  /* kfunct signature */
-};
 
-extern SciKernelFunction kfunct_mappers[];
-
-
-
 // New kernel functions
 reg_t kStrLen(EngineState *s, int funct_nr, int argc, reg_t *argv);
 reg_t kGetFarText(EngineState *s, int funct_nr, int argc, reg_t *argv);

Modified: scummvm/trunk/engines/sci/engine/kmisc.cpp
===================================================================
--- scummvm/trunk/engines/sci/engine/kmisc.cpp	2009-05-20 17:51:55 UTC (rev 40738)
+++ scummvm/trunk/engines/sci/engine/kmisc.cpp	2009-05-20 17:52:12 UTC (rev 40739)
@@ -93,19 +93,8 @@
 // kfunct_mappers below doubles for unknown kfunctions
 
 reg_t k_Unknown(EngineState *s, int funct_nr, int argc, reg_t *argv) {
-	if (funct_nr >= SCI_MAPPED_UNKNOWN_KFUNCTIONS_NR) {
-		warning("Unhandled Unknown function %04x", funct_nr);
-		return NULL_REG;
-	} else {
-		switch (kfunct_mappers[funct_nr].type) {
-		case KF_NEW:
-			return kfunct_mappers[funct_nr].fun(s, funct_nr, argc, argv);
-		case KF_NONE:
-		default:
-			warning("Unhandled Unknown function %04x", funct_nr);
-			return NULL_REG;
-		}
-	}
+	warning("Unhandled Unknown function %04x", funct_nr);
+	return NULL_REG;
 }
 
 reg_t kFlushResources(EngineState *s, int funct_nr, int argc, reg_t *argv) {
@@ -122,10 +111,12 @@
 	return s->r_acc;
 }
 
-#define _K_NEW_GETTIME_TICKS 0
-#define _K_NEW_GETTIME_TIME_12HOUR 1
-#define _K_NEW_GETTIME_TIME_24HOUR 2
-#define _K_NEW_GETTIME_DATE 3
+enum {
+	_K_NEW_GETTIME_TICKS = 0,
+	_K_NEW_GETTIME_TIME_12HOUR = 1,
+	_K_NEW_GETTIME_TIME_24HOUR = 2,
+	_K_NEW_GETTIME_DATE = 3
+};
 
 reg_t kGetTime(EngineState *s, int funct_nr, int argc, reg_t *argv) {
 	tm loc_time;
@@ -175,12 +166,14 @@
 	return make_reg(0, retval);
 }
 
-#define K_MEMORY_ALLOCATE_CRITICAL		1
-#define K_MEMORY_ALLOCATE_NONCRITICAL   2
-#define K_MEMORY_FREE			3
-#define	K_MEMORY_MEMCPY			4
-#define K_MEMORY_PEEK			5
-#define K_MEMORY_POKE			6
+enum {
+	K_MEMORY_ALLOCATE_CRITICAL		= 1,
+	K_MEMORY_ALLOCATE_NONCRITICAL   = 2,
+	K_MEMORY_FREE					= 3,
+	K_MEMORY_MEMCPY					= 4,
+	K_MEMORY_PEEK					= 5,
+	K_MEMORY_POKE					= 6
+};
 
 reg_t kMemory(EngineState *s, int funct_nr, int argc, reg_t *argv) {
 	switch (UKPV(0)) {
@@ -256,11 +249,9 @@
 }
 
 reg_t kstub(EngineState *s, int funct_nr, int argc, reg_t *argv) {
-	int i;
-
 	sciprintf("Unimplemented syscall: %s[%x](", s->_kernelNames[funct_nr].c_str(), funct_nr);
 
-	for (i = 0; i < argc; i++) {
+	for (int i = 0; i < argc; i++) {
 		sciprintf(PREG, PRINT_REG(argv[i]));
 		if (i + 1 < argc) sciprintf(", ");
 	}


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