aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--engines/agos/script.cpp12
-rw-r--r--engines/agos/vga_s2.cpp8
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;
}