diff options
author | Sven Hesse | 2008-12-15 16:01:39 +0000 |
---|---|---|
committer | Sven Hesse | 2008-12-15 16:01:39 +0000 |
commit | f825ccd63fef64a3ff22a134c01ead71b41354f9 (patch) | |
tree | a1e524d4dd67a09fdaad08f0ea1ad628c6150b71 | |
parent | 513aeee844c2cef1886e84661bb3e070692c77d5 (diff) | |
download | scummvm-rg350-f825ccd63fef64a3ff22a134c01ead71b41354f9.tar.gz scummvm-rg350-f825ccd63fef64a3ff22a134c01ead71b41354f9.tar.bz2 scummvm-rg350-f825ccd63fef64a3ff22a134c01ead71b41354f9.zip |
Script fix. Magnifier, Memory and Save/Load, while still not working correctly, don't crash the game anymore
svn-id: r35385
-rw-r--r-- | engines/gob/inter.h | 1 | ||||
-rw-r--r-- | engines/gob/inter_bargon.cpp | 2 | ||||
-rw-r--r-- | engines/gob/inter_v1.cpp | 12 | ||||
-rw-r--r-- | engines/gob/inter_v2.cpp | 19 | ||||
-rw-r--r-- | engines/gob/inter_v3.cpp | 2 | ||||
-rw-r--r-- | engines/gob/inter_v4.cpp | 2 | ||||
-rw-r--r-- | engines/gob/inter_v5.cpp | 2 | ||||
-rw-r--r-- | engines/gob/inter_v6.cpp | 2 |
8 files changed, 15 insertions, 27 deletions
diff --git a/engines/gob/inter.h b/engines/gob/inter.h index d6793a2fb3..5670e2f0da 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 db4d163a88..154dbee603 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 b250488dd2..b6b82662bc 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 0c61361cc3..2b780f96b1 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 899a749f08..131b15fc37 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 2b02c942a4..03b5e902e9 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 fb0bd85c39..c1bef2a85d 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 5234db33b0..54d4074cc0 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, ""}, |