aboutsummaryrefslogtreecommitdiff
path: root/engines/sci
diff options
context:
space:
mode:
authorFilippos Karapetis2013-01-10 23:43:36 +0200
committerFilippos Karapetis2013-01-11 02:24:17 +0200
commitf2464dc474605ba4217a49fe0a5b80084592adfd (patch)
treedc227ff18f38e41197043396a339a3cc867093e9 /engines/sci
parent13ec242a2c5f832e2cfcce47ff1d0085002b2bb6 (diff)
downloadscummvm-rg350-f2464dc474605ba4217a49fe0a5b80084592adfd.tar.gz
scummvm-rg350-f2464dc474605ba4217a49fe0a5b80084592adfd.tar.bz2
scummvm-rg350-f2464dc474605ba4217a49fe0a5b80084592adfd.zip
SCI: Add subop 9 of kPalVary (used in SCI32, e.g. QFG4 when exiting the caves)
Diffstat (limited to 'engines/sci')
-rw-r--r--engines/sci/engine/kernel.h10
-rw-r--r--engines/sci/engine/kgraphics.cpp5
-rw-r--r--engines/sci/engine/kgraphics32.cpp10
3 files changed, 17 insertions, 8 deletions
diff --git a/engines/sci/engine/kernel.h b/engines/sci/engine/kernel.h
index f985a69ebc..e3ebce80fb 100644
--- a/engines/sci/engine/kernel.h
+++ b/engines/sci/engine/kernel.h
@@ -427,18 +427,23 @@ reg_t kUpdatePlane(EngineState *s, int argc, reg_t *argv);
reg_t kSetShowStyle(EngineState *s, int argc, reg_t *argv);
reg_t kGetHighPlanePri(EngineState *s, int argc, reg_t *argv);
reg_t kFrameOut(EngineState *s, int argc, reg_t *argv);
+
reg_t kIsOnMe(EngineState *s, int argc, reg_t *argv); // kOnMe for SCI2, kIsOnMe for SCI2.1
+reg_t kInPolygon(EngineState *s, int argc, reg_t *argv);
+reg_t kObjectIntersect(EngineState *s, int argc, reg_t *argv);
+
reg_t kListIndexOf(EngineState *s, int argc, reg_t *argv);
reg_t kListEachElementDo(EngineState *s, int argc, reg_t *argv);
reg_t kListFirstTrue(EngineState *s, int argc, reg_t *argv);
reg_t kListAllTrue(EngineState *s, int argc, reg_t *argv);
-reg_t kInPolygon(EngineState *s, int argc, reg_t *argv);
-reg_t kObjectIntersect(EngineState *s, int argc, reg_t *argv);
+
reg_t kEditText(EngineState *s, int argc, reg_t *argv);
reg_t kMakeSaveCatName(EngineState *s, int argc, reg_t *argv);
reg_t kMakeSaveFileName(EngineState *s, int argc, reg_t *argv);
reg_t kSetScroll(EngineState *s, int argc, reg_t *argv);
reg_t kPalCycle(EngineState *s, int argc, reg_t *argv);
+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 kText(EngineState *s, int argc, reg_t *argv);
@@ -513,7 +518,6 @@ reg_t kPalVaryDeinit(EngineState *s, int argc, reg_t *argv);
reg_t kPalVaryChangeTarget(EngineState *s, int argc, reg_t *argv);
reg_t kPalVaryChangeTicks(EngineState *s, int argc, reg_t *argv);
reg_t kPalVaryPauseResume(EngineState *s, int argc, reg_t *argv);
-reg_t kPalVaryUnknown(EngineState *s, int argc, reg_t *argv);
reg_t kPaletteSetFromResource(EngineState *s, int argc, reg_t *argv);
reg_t kPaletteSetFlag(EngineState *s, int argc, reg_t *argv);
diff --git a/engines/sci/engine/kgraphics.cpp b/engines/sci/engine/kgraphics.cpp
index da377319c0..a65bcc215e 100644
--- a/engines/sci/engine/kgraphics.cpp
+++ b/engines/sci/engine/kgraphics.cpp
@@ -722,11 +722,6 @@ reg_t kPalVaryPauseResume(EngineState *s, int argc, reg_t *argv) {
return NULL_REG;
}
-reg_t kPalVaryUnknown(EngineState *s, int argc, reg_t *argv) {
- // Unknown (seems to be SCI32 exclusive)
- return NULL_REG;
-}
-
reg_t kAssertPalette(EngineState *s, int argc, reg_t *argv) {
GuiResourceId paletteId = argv[0].toUint16();
diff --git a/engines/sci/engine/kgraphics32.cpp b/engines/sci/engine/kgraphics32.cpp
index 1d30f709dc..7f831fece1 100644
--- a/engines/sci/engine/kgraphics32.cpp
+++ b/engines/sci/engine/kgraphics32.cpp
@@ -683,6 +683,16 @@ reg_t kSetScroll(EngineState *s, int argc, reg_t *argv) {
return kStub(s, argc, argv);
}
+reg_t kPalVaryUnknown(EngineState *s, int argc, reg_t *argv) {
+ // TODO: Unknown (seems to be SCI32 exclusive)
+ return kStub(s, argc, argv);
+}
+
+reg_t kPalVaryUnknown2(EngineState *s, int argc, reg_t *argv) {
+ // TODO: Unknown (seems to be SCI32 exclusive)
+ return kStub(s, argc, argv);
+}
+
reg_t kPalCycle(EngineState *s, int argc, reg_t *argv) {
// Examples: GK1 room 480 (Bayou ritual), LSL6 room 100 (title screen)