diff options
-rw-r--r-- | engines/agos/script.cpp | 12 | ||||
-rw-r--r-- | engines/agos/vga_s2.cpp | 8 |
2 files changed, 11 insertions, 9 deletions
diff --git a/engines/agos/script.cpp b/engines/agos/script.cpp index 1e894474f7..802db3fdd9 100644 --- a/engines/agos/script.cpp +++ b/engines/agos/script.cpp @@ -248,7 +248,17 @@ void AGOSEngine::o_clear() { void AGOSEngine::o_let() { // 42: set var uint var = getVarWrapper(); - writeVariable(var, getVarOrWord()); + uint value = getVarOrWord(); + + if (getGameType() == GType_FF && _currentTable) { + // WORKAROUND: When the repair man comes to fix the car, the game doesn't + // wait long enough for the screen to completely scroll to the left side. + if (_currentTable->id == 20438 && var == 103 && value == 60) { + value = 71; + } + } + + writeVariable(var, value); } void AGOSEngine::o_add() { diff --git a/engines/agos/vga_s2.cpp b/engines/agos/vga_s2.cpp index 96d24620bb..28a383547f 100644 --- a/engines/agos/vga_s2.cpp +++ b/engines/agos/vga_s2.cpp @@ -52,14 +52,6 @@ void AGOSEngine_Simon2::setupVideoOpcodes(VgaOpcodeProc *op) { void AGOSEngine::vc56_delayLong() { uint16 num = vcReadVarOrWord() * _frameCount; - if (getGameType() == GType_FF && _currentTable) { - // WORKAROUND: When the repair man comes to fix the car, the game doesn't - // wait long enough for the screen to completely scroll to the left side. - if (_currentTable->id == 20438 && _vgaCurSpriteId == 13 && _vgaCurZoneNum == 2) { - num *= 2; - } - } - addVgaEvent(num + _vgaBaseDelay, ANIMATE_EVENT, _vcPtr, _vgaCurSpriteId, _vgaCurZoneNum); _vcPtr = (byte *)&_vcGetOutOfCode; } |