diff options
| author | Martin Kiewitz | 2009-10-12 13:10:25 +0000 |
|---|---|---|
| committer | Martin Kiewitz | 2009-10-12 13:10:25 +0000 |
| commit | 3599ac0b9b60bf05039aab4d6df2c84152ea66cb (patch) | |
| tree | 2089b28338fc958cbff849020caa80f767de817a | |
| parent | 03a24ccae0ca7c348fc2040871623a765b62b105 (diff) | |
| download | scummvm-rg350-3599ac0b9b60bf05039aab4d6df2c84152ea66cb.tar.gz scummvm-rg350-3599ac0b9b60bf05039aab4d6df2c84152ea66cb.tar.bz2 scummvm-rg350-3599ac0b9b60bf05039aab4d6df2c84152ea66cb.zip | |
SCI: now allowing calling celWide and celHigh with only 2 parameters (done by eco quest 1 when entering menu)
svn-id: r44986
| -rw-r--r-- | engines/sci/engine/kernel.cpp | 4 | ||||
| -rw-r--r-- | engines/sci/engine/kgraphics.cpp | 14 |
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); |
