diff options
author | David Turner | 2010-11-04 06:28:51 +0000 |
---|---|---|
committer | David Turner | 2010-11-04 06:28:51 +0000 |
commit | 224f93cf0e3629f32295f0d98d2c65c5102fdbe6 (patch) | |
tree | eebd6681f3e5001bf5a07ed13ba60c9afd246305 /engines/gob | |
parent | f5bfae598c1a3fa0340396461a44d7834721cde5 (diff) | |
download | scummvm-rg350-224f93cf0e3629f32295f0d98d2c65c5102fdbe6.tar.gz scummvm-rg350-224f93cf0e3629f32295f0d98d2c65c5102fdbe6.tar.bz2 scummvm-rg350-224f93cf0e3629f32295f0d98d2c65c5102fdbe6.zip |
GOB: Extended workaround for Goblin Stuck On Reload to cover bug #3065914
This generalises the workaround added for bug #3018918 i.e. UOTODDV issue, to cover the
ICVGCGT case and hopefully all future cases, by executing the variable correction during
the reload after Game Over and using the variable read by the script triggering the movement lock, rather than the movement lock variable (59) itself as this may not be set until a later script.
svn-id: r54061
Diffstat (limited to 'engines/gob')
-rw-r--r-- | engines/gob/inter_v1.cpp | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/engines/gob/inter_v1.cpp b/engines/gob/inter_v1.cpp index 1671e8e11d..933bb2f2ed 100644 --- a/engines/gob/inter_v1.cpp +++ b/engines/gob/inter_v1.cpp @@ -812,12 +812,12 @@ bool Inter_v1::o1_if(OpFuncParams ¶ms) { byte cmd; bool boolRes; - // WORKAROUND: Windows Gob1 OUTODDV reload goblin stuck bug present in original - if ((_vm->getGameType() == kGameTypeGob1) && (_vm->_game->_script->pos() == 11294) && - !scumm_stricmp(_vm->_game->_curTotFile, "avt00.tot") && VAR(59) == 1) { - warning("Workaround for Win Gob1 OUTODDV Reload Goblin Stuck Bug..."); + // WORKAROUND: Gob1 goblin stuck on reload bugs present in original - bugs #3018918 and 3065914 + if ((_vm->getGameType() == kGameTypeGob1) && (_vm->_game->_script->pos() == 2933) && + !scumm_stricmp(_vm->_game->_curTotFile, "inter.tot") && VAR(285) != 0) { + warning("Workaround for Gob1 Goblin Stuck On Reload Bug applied..."); + // VAR(59) actually locks goblin movement, but these variables trigger this in the script. WRITE_VAR(285, 0); - WRITE_VAR(59, 0); } boolRes = _vm->_game->_script->evalBoolResult(); |