aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorColin Snover2016-01-14 12:05:29 -0600
committerColin Snover2016-01-14 16:13:22 -0600
commitf1cf07eded09f5f66a0915ddb79a890a3a11a362 (patch)
tree61c5e54632c9cbacd53e9fa3f82a27fcf258b6c4
parentdc42a86f7e181b3b3662fd40e94a9afdfde65ffc (diff)
downloadscummvm-rg350-f1cf07eded09f5f66a0915ddb79a890a3a11a362.tar.gz
scummvm-rg350-f1cf07eded09f5f66a0915ddb79a890a3a11a362.tar.bz2
scummvm-rg350-f1cf07eded09f5f66a0915ddb79a890a3a11a362.zip
SCI: Add kPalMorph stub
-rw-r--r--engines/sci/engine/kernel.h1
-rw-r--r--engines/sci/engine/kernel_tables.h1
-rw-r--r--engines/sci/engine/kgraphics32.cpp10
3 files changed, 11 insertions, 1 deletions
diff --git a/engines/sci/engine/kernel.h b/engines/sci/engine/kernel.h
index a2563b5a32..d9e42cb3ee 100644
--- a/engines/sci/engine/kernel.h
+++ b/engines/sci/engine/kernel.h
@@ -478,6 +478,7 @@ reg_t kPalVaryUnknown(EngineState *s, int argc, reg_t *argv);
reg_t kPalVaryUnknown2(EngineState *s, int argc, reg_t *argv);
// SCI2.1 Kernel Functions
+reg_t kMorphOn(EngineState *s, int argc, reg_t *argv);
reg_t kText(EngineState *s, int argc, reg_t *argv);
reg_t kSave(EngineState *s, int argc, reg_t *argv);
reg_t kAutoSave(EngineState *s, int argc, reg_t *argv);
diff --git a/engines/sci/engine/kernel_tables.h b/engines/sci/engine/kernel_tables.h
index 53447ab907..b89797f348 100644
--- a/engines/sci/engine/kernel_tables.h
+++ b/engines/sci/engine/kernel_tables.h
@@ -697,7 +697,6 @@ static SciKernelMapEntry s_kernelMap[] = {
// (inclusive) are set to 0
{ MAP_CALL(SetPalStyleRange), SIG_EVERYWHERE, "ii", NULL, NULL },
- // MorphOn - used by SQ6, script 900, the datacorder reprogramming puzzle (from room 270)
{ MAP_CALL(MorphOn), SIG_EVERYWHERE, "", NULL, NULL },
// SCI3 Kernel Functions
diff --git a/engines/sci/engine/kgraphics32.cpp b/engines/sci/engine/kgraphics32.cpp
index a765fe842e..ddb6106c8c 100644
--- a/engines/sci/engine/kgraphics32.cpp
+++ b/engines/sci/engine/kgraphics32.cpp
@@ -728,6 +728,16 @@ reg_t kSetScroll(EngineState *s, int argc, reg_t *argv) {
return kStub(s, argc, argv);
}
+// Used by SQ6, script 900, the datacorder reprogramming puzzle (from room 270)
+reg_t kMorphOn(EngineState *s, int argc, reg_t *argv) {
+ // TODO: g_sci->_gfxManager->palMorphIsOn = true
+ // This function sets the palMorphIsOn flag which causes kFrameOut to use
+ // an alternative FrameOut function (GraphicsMgr::PalMorphFrameOut instead
+ // of GraphicsMgr::FrameOut). At the end of the frame, kFrameOut sets the
+ // palMorphIsOn flag back to false.
+ kStub(s, argc, argv);
+ return NULL_REG;
+
reg_t kPalVaryUnknown(EngineState *s, int argc, reg_t *argv) {
// TODO: Unknown (seems to be SCI32 exclusive)
return kStub(s, argc, argv);