diff options
Diffstat (limited to 'engines/sci/engine')
| -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); | 
