aboutsummaryrefslogtreecommitdiff
path: root/engines/agos
diff options
context:
space:
mode:
authorTravis Howell2009-05-02 23:30:08 +0000
committerTravis Howell2009-05-02 23:30:08 +0000
commitb73fb35203a2bf16f4fd356af53daa3bc847366f (patch)
tree1131cbdfa3033f80a0b6bc771db7585d3c34067d /engines/agos
parent656638f12a6f4f7378b1aa8c1ed91771f8ada816 (diff)
downloadscummvm-rg350-b73fb35203a2bf16f4fd356af53daa3bc847366f.tar.gz
scummvm-rg350-b73fb35203a2bf16f4fd356af53daa3bc847366f.tar.bz2
scummvm-rg350-b73fb35203a2bf16f4fd356af53daa3bc847366f.zip
Add alternative work around for bug in The Feeble Files.
svn-id: r40248
Diffstat (limited to 'engines/agos')
-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;
}