diff --git a/engines/gob/inter.h b/engines/gob/inter.h index d6793a2fb34..5670e2f0daf 100644 --- a/engines/gob/inter.h +++ b/engines/gob/inter.h @@ -388,7 +388,6 @@ protected: bool o2_addCollision(OpFuncParams ¶ms); bool o2_freeCollision(OpFuncParams ¶ms); bool o2_goblinFunc(OpFuncParams ¶ms); - bool o2_createSprite(OpFuncParams ¶ms); bool o2_stopSound(OpFuncParams ¶ms); bool o2_loadSound(OpFuncParams ¶ms); bool o2_getFreeMem(OpFuncParams ¶ms); diff --git a/engines/gob/inter_bargon.cpp b/engines/gob/inter_bargon.cpp index db4d163a88e..154dbee603a 100644 --- a/engines/gob/inter_bargon.cpp +++ b/engines/gob/inter_bargon.cpp @@ -492,7 +492,7 @@ void Inter_Bargon::setupOpcodes() { /* 24 */ OPCODE(o1_putPixel), OPCODE(o2_goblinFunc), - OPCODE(o2_createSprite), + OPCODE(o1_createSprite), OPCODE(o1_freeSprite), /* 28 */ {NULL, ""}, diff --git a/engines/gob/inter_v1.cpp b/engines/gob/inter_v1.cpp index b250488dd20..b6b82662bce 100644 --- a/engines/gob/inter_v1.cpp +++ b/engines/gob/inter_v1.cpp @@ -1821,9 +1821,15 @@ bool Inter_v1::o1_createSprite(OpFuncParams ¶ms) { int16 width, height; int16 flag; - index = load16(); - width = load16(); - height = load16(); + if (_vm->_global->_inter_execPtr[1] == 0) { + index = load16(); + width = load16(); + height = load16(); + } else { + index = _vm->_parse->parseValExpr(); + width = _vm->_parse->parseValExpr(); + height = _vm->_parse->parseValExpr(); + } flag = load16(); _vm->_draw->initSpriteSurf(index, width, height, flag ? 2 : 0); diff --git a/engines/gob/inter_v2.cpp b/engines/gob/inter_v2.cpp index 0c61361cc38..2b780f96b12 100644 --- a/engines/gob/inter_v2.cpp +++ b/engines/gob/inter_v2.cpp @@ -500,7 +500,7 @@ void Inter_v2::setupOpcodes() { /* 24 */ OPCODE(o1_putPixel), OPCODE(o2_goblinFunc), - OPCODE(o2_createSprite), + OPCODE(o1_createSprite), OPCODE(o1_freeSprite), /* 28 */ {NULL, ""}, @@ -1852,23 +1852,6 @@ bool Inter_v2::o2_goblinFunc(OpFuncParams ¶ms) { return false; } -bool Inter_v2::o2_createSprite(OpFuncParams ¶ms) { - int16 index; - int16 width, height; - int16 flag; - - index = load16(); - width = load16(); - height = load16(); - - _vm->_draw->adjustCoords(0, &width, &height); - - flag = load16(); - _vm->_draw->initSpriteSurf(index, width, height, flag); - - return false; -} - bool Inter_v2::o2_stopSound(OpFuncParams ¶ms) { int16 expr; diff --git a/engines/gob/inter_v3.cpp b/engines/gob/inter_v3.cpp index 899a749f085..131b15fc370 100644 --- a/engines/gob/inter_v3.cpp +++ b/engines/gob/inter_v3.cpp @@ -489,7 +489,7 @@ void Inter_v3::setupOpcodes() { /* 24 */ OPCODE(o1_putPixel), OPCODE(o2_goblinFunc), - OPCODE(o2_createSprite), + OPCODE(o1_createSprite), OPCODE(o1_freeSprite), /* 28 */ {NULL, ""}, diff --git a/engines/gob/inter_v4.cpp b/engines/gob/inter_v4.cpp index 2b02c942a4c..03b5e902e90 100644 --- a/engines/gob/inter_v4.cpp +++ b/engines/gob/inter_v4.cpp @@ -490,7 +490,7 @@ void Inter_v4::setupOpcodes() { /* 24 */ OPCODE(o1_putPixel), OPCODE(o2_goblinFunc), - OPCODE(o2_createSprite), + OPCODE(o1_createSprite), OPCODE(o1_freeSprite), /* 28 */ {NULL, ""}, diff --git a/engines/gob/inter_v5.cpp b/engines/gob/inter_v5.cpp index fb0bd85c397..c1bef2a85d1 100644 --- a/engines/gob/inter_v5.cpp +++ b/engines/gob/inter_v5.cpp @@ -444,7 +444,7 @@ void Inter_v5::setupOpcodes() { /* 24 */ OPCODE(o1_putPixel), OPCODE(o2_goblinFunc), - OPCODE(o2_createSprite), + OPCODE(o1_createSprite), OPCODE(o1_freeSprite), /* 28 */ {NULL, ""}, diff --git a/engines/gob/inter_v6.cpp b/engines/gob/inter_v6.cpp index 5234db33b09..54d4074cc0a 100644 --- a/engines/gob/inter_v6.cpp +++ b/engines/gob/inter_v6.cpp @@ -423,7 +423,7 @@ void Inter_v6::setupOpcodes() { /* 24 */ OPCODE(o1_putPixel), OPCODE(o2_goblinFunc), - OPCODE(o2_createSprite), + OPCODE(o1_createSprite), OPCODE(o1_freeSprite), /* 28 */ {NULL, ""},