diff options
author | Colin Snover | 2017-01-03 20:19:45 -0600 |
---|---|---|
committer | Colin Snover | 2017-03-30 19:46:27 -0500 |
commit | 3b34f17fb3f8d4f325fd8f7b10dc3a9325d72b29 (patch) | |
tree | 656fae37844c56fea3efad7a787277ab07a854d7 | |
parent | 766d46153a285794d573d84d237aac3821431a01 (diff) | |
download | scummvm-rg350-3b34f17fb3f8d4f325fd8f7b10dc3a9325d72b29.tar.gz scummvm-rg350-3b34f17fb3f8d4f325fd8f7b10dc3a9325d72b29.tar.bz2 scummvm-rg350-3b34f17fb3f8d4f325fd8f7b10dc3a9325d72b29.zip |
SCI32: Add kWebConnect and kWinExec
Used by Phant2.
-rw-r--r-- | engines/sci/engine/kernel.cpp | 2 | ||||
-rw-r--r-- | engines/sci/engine/kernel.h | 2 | ||||
-rw-r--r-- | engines/sci/engine/kernel_tables.h | 5 | ||||
-rw-r--r-- | engines/sci/engine/kmisc.cpp | 10 |
4 files changed, 17 insertions, 2 deletions
diff --git a/engines/sci/engine/kernel.cpp b/engines/sci/engine/kernel.cpp index d029923d96..60d4ccbf22 100644 --- a/engines/sci/engine/kernel.cpp +++ b/engines/sci/engine/kernel.cpp @@ -806,7 +806,7 @@ enum { kKernelEntriesSci2 = 0x8b, kKernelEntriesGk2Demo = 0xa0, kKernelEntriesSci21 = 0x9d, - kKernelEntriesSci3 = 0xa1 + kKernelEntriesSci3 = 0xa2 }; #endif diff --git a/engines/sci/engine/kernel.h b/engines/sci/engine/kernel.h index ebd7d33655..3d337017af 100644 --- a/engines/sci/engine/kernel.h +++ b/engines/sci/engine/kernel.h @@ -662,6 +662,8 @@ reg_t kPlayDuckSetFrameOut(EngineState *s, int argc, reg_t *argv); reg_t kPlayDuckOpen(EngineState *s, int argc, reg_t *argv); reg_t kPlayDuckClose(EngineState *s, int argc, reg_t *argv); reg_t kPlayDuckSetVolume(EngineState *s, int argc, reg_t *argv); +reg_t kWebConnect(EngineState *s, int argc, reg_t *argv); +reg_t kWinExec(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 95f3197896..46132d3794 100644 --- a/engines/sci/engine/kernel_tables.h +++ b/engines/sci/engine/kernel_tables.h @@ -1018,6 +1018,8 @@ static SciKernelMapEntry s_kernelMap[] = { // SCI3 Kernel Functions { MAP_CALL(PlayDuck), SIG_SCI3, SIGFOR_ALL, "(.*)", kPlayDuck_subops,NULL }, + { MAP_CALL(WebConnect), SIG_SCI3, SIGFOR_ALL, "(r)", NULL, NULL }, + { MAP_CALL(WinExec), SIG_SCI3, SIGFOR_ALL, "r", NULL, NULL }, #endif { NULL, NULL, SIG_EVERYWHERE, NULL, NULL, NULL } @@ -1499,7 +1501,8 @@ static const char *const sci21_default_knames[] = { /*0x9d*/ "Dummy", /*0x9e*/ "WebConnect", /*0x9f*/ "Dummy", - /*0xa0*/ "PlayDuck" + /*0xa0*/ "PlayDuck", + /*0xa1*/ "WinExec" }; #endif diff --git a/engines/sci/engine/kmisc.cpp b/engines/sci/engine/kmisc.cpp index 9aa03a4760..f0090cf9fb 100644 --- a/engines/sci/engine/kmisc.cpp +++ b/engines/sci/engine/kmisc.cpp @@ -643,6 +643,16 @@ reg_t kPlatform32(EngineState *s, int argc, reg_t *argv) { return make_reg(0, 0); } } + +reg_t kWebConnect(EngineState *s, int argc, reg_t *argv) { + const Common::String baseUrl = "https://web.archive.org/web/1996/"; + const Common::String gameUrl = argc > 0 ? s->_segMan->getString(argv[0]) : "http://www.sierra.com"; + return make_reg(0, !g_system->openUrl(baseUrl + gameUrl)); +} + +reg_t kWinExec(EngineState *s, int argc, reg_t *argv) { + return NULL_REG; +} #endif reg_t kEmpty(EngineState *s, int argc, reg_t *argv) { |