[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