aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSven Hesse2009-07-05 12:52:14 +0000
committerSven Hesse2009-07-05 12:52:14 +0000
commitdaaba72677cb12fe9ce3345505dbbcccd2437341 (patch)
tree6f437b7843e3836ffe9ad1c811da894deaa94540
parent0b4e5c43d3821b803a4bf9b1699f567e860dfb68 (diff)
downloadscummvm-rg350-daaba72677cb12fe9ce3345505dbbcccd2437341.tar.gz
scummvm-rg350-daaba72677cb12fe9ce3345505dbbcccd2437341.tar.bz2
scummvm-rg350-daaba72677cb12fe9ce3345505dbbcccd2437341.zip
Adding a workaround for an invalid expression in Gob1 EGA
svn-id: r42135
-rw-r--r--engines/gob/inter_v1.cpp11
1 files changed, 10 insertions, 1 deletions
diff --git a/engines/gob/inter_v1.cpp b/engines/gob/inter_v1.cpp
index 7d32104552..7c5094d175 100644
--- a/engines/gob/inter_v1.cpp
+++ b/engines/gob/inter_v1.cpp
@@ -868,7 +868,16 @@ bool Inter_v1::o1_loadSpriteToPos(OpFuncParams &params) {
_vm->_draw->_spriteLeft = _vm->_game->_script->readInt16();
_vm->_draw->_destSpriteX = _vm->_game->_script->readValExpr();
- _vm->_draw->_destSpriteY = _vm->_game->_script->readValExpr();
+
+ // WORKAROUND: The EGA version of Gobliiins 1 has an invalid expression there
+ if (_vm->isEGA() && (_vm->_game->_script->pos() == 1398) &&
+ !scumm_stricmp(_vm->_game->_curTotFile, "intro.tot")) {
+
+ _vm->_draw->_destSpriteY = 0;
+ _vm->_game->_script->skip(1);
+
+ } else
+ _vm->_draw->_destSpriteY = _vm->_game->_script->readValExpr();
_vm->_draw->_transparency = _vm->_game->_script->peekByte() & 1;
_vm->_draw->_destSurface = ((int16) (_vm->_game->_script->peekByte() >> 1)) - 1;