aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLars Skovlund2010-11-19 12:46:36 +0000
committerLars Skovlund2010-11-19 12:46:36 +0000
commitfbf5a453c7213a75dc2b05a34171b98e20ce3864 (patch)
tree885cf57755935ea1ea14819ff5e3f43e7870158f
parent9e5b554dc357850b7ac5997fbc1a2df58fcf02ab (diff)
downloadscummvm-rg350-fbf5a453c7213a75dc2b05a34171b98e20ce3864.tar.gz
scummvm-rg350-fbf5a453c7213a75dc2b05a34171b98e20ce3864.tar.bz2
scummvm-rg350-fbf5a453c7213a75dc2b05a34171b98e20ce3864.zip
SCI: Implement the GetConfig call for LSL7
svn-id: r54369
-rw-r--r--engines/sci/engine/kernel.h1
-rw-r--r--engines/sci/engine/kernel_tables.h1
-rw-r--r--engines/sci/engine/kmisc.cpp8
3 files changed, 10 insertions, 0 deletions
diff --git a/engines/sci/engine/kernel.h b/engines/sci/engine/kernel.h
index 9833f91a5e..93321597c6 100644
--- a/engines/sci/engine/kernel.h
+++ b/engines/sci/engine/kernel.h
@@ -470,6 +470,7 @@ reg_t kGetWindowsOption(EngineState *s, int argc, reg_t *argv);
reg_t kWinHelp(EngineState *s, int argc, reg_t *argv);
reg_t kWinDLL(EngineState *s, int argc, reg_t *argv);
reg_t kPrintDebug(EngineState *s, int argc, reg_t *argv);
+reg_t kGetConfig(EngineState *s, int argc, reg_t *argv);
#endif
reg_t kDoSoundInit(EngineState *s, int argc, reg_t *argv);
diff --git a/engines/sci/engine/kernel_tables.h b/engines/sci/engine/kernel_tables.h
index 141e191e47..bc88522ed2 100644
--- a/engines/sci/engine/kernel_tables.h
+++ b/engines/sci/engine/kernel_tables.h
@@ -542,6 +542,7 @@ static SciKernelMapEntry s_kernelMap[] = {
{ MAP_CALL(GetWindowsOption), SIG_EVERYWHERE, "i", NULL, NULL },
{ MAP_CALL(WinHelp), SIG_EVERYWHERE, "(.*)", NULL, NULL },
{ MAP_CALL(WinDLL), SIG_EVERYWHERE, "(.*)", NULL, NULL },
+ { MAP_CALL(GetConfig), SIG_EVERYWHERE, "ro", NULL, NULL },
// Commented out because it needs to be implemented in full generality in Shivers/Full.
// Since it is not essential to game play, removing it also works.
//
diff --git a/engines/sci/engine/kmisc.cpp b/engines/sci/engine/kmisc.cpp
index a92a7a2645..4655ea4b39 100644
--- a/engines/sci/engine/kmisc.cpp
+++ b/engines/sci/engine/kmisc.cpp
@@ -329,6 +329,14 @@ reg_t kIconBar(EngineState *s, int argc, reg_t *argv) {
return NULL_REG;
}
+reg_t kGetConfig(EngineState *s, int argc, reg_t *argv) {
+ Common::String setting = s->_segMan->getString(argv[0]);
+ reg_t data = readSelector(s->_segMan, argv[1], SELECTOR(data));
+
+ warning("Get config setting %s", setting.c_str());
+ s->_segMan->strcpy(data, "");
+ return argv[1];
+}
enum kSciPlatforms {
kSciPlatformDOS = 1,
kSciPlatformWindows = 2