aboutsummaryrefslogtreecommitdiff
path: root/engines/gob/inter_v1.cpp
diff options
context:
space:
mode:
authorDavid Turner2010-11-04 06:28:51 +0000
committerDavid Turner2010-11-04 06:28:51 +0000
commit224f93cf0e3629f32295f0d98d2c65c5102fdbe6 (patch)
treeeebd6681f3e5001bf5a07ed13ba60c9afd246305 /engines/gob/inter_v1.cpp
parentf5bfae598c1a3fa0340396461a44d7834721cde5 (diff)
downloadscummvm-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/inter_v1.cpp')
-rw-r--r--engines/gob/inter_v1.cpp10
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 &params) {
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();