From 25e1af837a94f6b1a9dcdcdb69abb21167a7f6ce Mon Sep 17 00:00:00 2001 From: Arnaud Boutonné Date: Sun, 24 Oct 2010 20:20:48 +0000 Subject: GOB: un-ban and fix a somehow corrupted version of Fascination (This version has been found on original floppies) svn-id: r53772 --- engines/gob/inter.cpp | 15 +++++++++++++++ 1 file changed, 15 insertions(+) (limited to 'engines/gob/inter.cpp') diff --git a/engines/gob/inter.cpp b/engines/gob/inter.cpp index f6e6d41100..c86d3d2642 100644 --- a/engines/gob/inter.cpp +++ b/engines/gob/inter.cpp @@ -306,6 +306,21 @@ void Inter::funcBlock(int16 retFlag) { } // End of workaround cmd = _vm->_game->_script->readByte(); + + // WORKAROUND: + // A VGA version has some broken code in its scripts, this workaround skips the corrupted parts. + if (_vm->getGameType() == kGameTypeFascination) { + int addr = _vm->_game->_script->pos(); + if ((startaddr == 0x212D) && (addr == 0x290E) && (cmd == 0x90) && !scumm_stricmp(_vm->_game->_curTotFile, "INTRO1.tot")) { + _vm->_game->_script->skip(2); + cmd = _vm->_game->_script->readByte(); + } + if ((startaddr == 0x207D) && (addr == 0x22CE) && (cmd == 0x90) && !scumm_stricmp(_vm->_game->_curTotFile, "INTRO2.tot")) { + _vm->_game->_script->skip(2); + cmd = _vm->_game->_script->readByte(); + } + } + if ((cmd >> 4) >= 12) { cmd2 = 16 - (cmd >> 4); cmd &= 0xF; -- cgit v1.2.3