aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--engines/sci/engine/kernel.cpp4
-rw-r--r--engines/sci/engine/kgraphics.cpp14
2 files changed, 8 insertions, 10 deletions
diff --git a/engines/sci/engine/kernel.cpp b/engines/sci/engine/kernel.cpp
index 920ea66d5b..49e09c7cb6 100644
--- a/engines/sci/engine/kernel.cpp
+++ b/engines/sci/engine/kernel.cpp
@@ -199,8 +199,8 @@ SciKernelFunction kfunct_mappers[] = {
/*0c*/ DEFUN("SetNowSeen", kSetNowSeen, "oi*"), // The second parameter is ignored
/*0d*/ DEFUN("NumLoops", kNumLoops, "o"),
/*0e*/ DEFUN("NumCels", kNumCels, "o"),
- /*0f*/ DEFUN("CelWide", kCelWide, "iOiOi"),
- /*10*/ DEFUN("CelHigh", kCelHigh, "iOiOi"),
+ /*0f*/ DEFUN("CelWide", kCelWide, "iOi*"),
+ /*10*/ DEFUN("CelHigh", kCelHigh, "iOi*"),
/*11*/ DEFUN("DrawCel", kDrawCel, "iiiiii*"),
/*12*/ DEFUN("AddToPic", kAddToPic, "Il*"),
// FIXME: signature check removed (set to .*) as kNewWindow is different in Mac versions
diff --git a/engines/sci/engine/kgraphics.cpp b/engines/sci/engine/kgraphics.cpp
index 318a6533eb..35fef54224 100644
--- a/engines/sci/engine/kgraphics.cpp
+++ b/engines/sci/engine/kgraphics.cpp
@@ -794,13 +794,12 @@ reg_t kIsItSkip(EngineState *s, int argc, reg_t *argv) {
reg_t kCelHigh(EngineState *s, int argc, reg_t *argv) {
int view = argv[0].toSint16();
int loop = argv[1].toSint16();
- int cel = argv[2].toSint16();
+ int cel = (argc > 3) ? argv[2].toSint16() : 0;
int height, width;
Common::Point offset;
- if (argc != 3) {
- warning("CelHigh called with %d parameters", argc);
- }
+ if (argc > 4)
+ error("celHigh called with more than 3 parameters");
gfxop_get_cel_parameters(s->gfx_state, view, loop, cel, &width, &height, &offset);
return make_reg(0, height);
@@ -809,13 +808,12 @@ reg_t kCelHigh(EngineState *s, int argc, reg_t *argv) {
reg_t kCelWide(EngineState *s, int argc, reg_t *argv) {
int view = argv[0].toSint16();
int loop = argv[1].toSint16();
- int cel = argv[2].toSint16();
+ int cel = (argc > 3) ? argv[2].toSint16() : 0;
int height, width;
Common::Point offset;
- if (argc != 3) {
- warning("CelHigh called with %d parameters", argc);
- }
+ if (argc > 4)
+ error("celWide called with more than 3 parameters");
gfxop_get_cel_parameters(s->gfx_state, view, loop, cel, &width, &height, &offset);
return make_reg(0, width);