diff options
author | Lars Skovlund | 2010-11-19 12:46:36 +0000 |
---|---|---|
committer | Lars Skovlund | 2010-11-19 12:46:36 +0000 |
commit | fbf5a453c7213a75dc2b05a34171b98e20ce3864 (patch) | |
tree | 885cf57755935ea1ea14819ff5e3f43e7870158f /engines/sci | |
parent | 9e5b554dc357850b7ac5997fbc1a2df58fcf02ab (diff) | |
download | scummvm-rg350-fbf5a453c7213a75dc2b05a34171b98e20ce3864.tar.gz scummvm-rg350-fbf5a453c7213a75dc2b05a34171b98e20ce3864.tar.bz2 scummvm-rg350-fbf5a453c7213a75dc2b05a34171b98e20ce3864.zip |
SCI: Implement the GetConfig call for LSL7
svn-id: r54369
Diffstat (limited to 'engines/sci')
-rw-r--r-- | engines/sci/engine/kernel.h | 1 | ||||
-rw-r--r-- | engines/sci/engine/kernel_tables.h | 1 | ||||
-rw-r--r-- | engines/sci/engine/kmisc.cpp | 8 |
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 |