diff options
author | Travis Howell | 2007-02-23 10:18:14 +0000 |
---|---|---|
committer | Travis Howell | 2007-02-23 10:18:14 +0000 |
commit | 47280b3301ae3b628dce593beb602ac6ada75b97 (patch) | |
tree | 3fe0a7d14a1a696ee8b8ae10357f5bd5f875ad74 /engines/agos | |
parent | f1f28b61a981293c22fbf16e4b8e27c0206e68c3 (diff) | |
download | scummvm-rg350-47280b3301ae3b628dce593beb602ac6ada75b97.tar.gz scummvm-rg350-47280b3301ae3b628dce593beb602ac6ada75b97.tar.bz2 scummvm-rg350-47280b3301ae3b628dce593beb602ac6ada75b97.zip |
Fix bug #1600999 - SIMON2: Crash while talking to Bingo Bongo. A regression due to the work around for extra long strings been broken, when support for the Feeble Files was added in the past.
svn-id: r25807
Diffstat (limited to 'engines/agos')
-rw-r--r-- | engines/agos/res.cpp | 7 | ||||
-rw-r--r-- | engines/agos/res_snd.cpp | 1 | ||||
-rw-r--r-- | engines/agos/script.cpp | 2 | ||||
-rw-r--r-- | engines/agos/script_e2.cpp | 2 |
4 files changed, 7 insertions, 5 deletions
diff --git a/engines/agos/res.cpp b/engines/agos/res.cpp index e1a4129fb1..a7da0fb8d7 100644 --- a/engines/agos/res.cpp +++ b/engines/agos/res.cpp @@ -658,12 +658,13 @@ void AGOSEngine::loadVGAVideoFile(uint id, uint type) { uint32 file, offs, srcSize, dstSize; uint extraBuffer = 0; - if (getGameType() == GType_SIMON1 || getGameType() == GType_SIMON2) { - // !!! HACK !!! + if ((getGameType() == GType_SIMON1 || getGameType() == GType_SIMON2) && + id == 2 && type == 2) { + // WORKAROUND: For the exta long strings in foreign languages // Allocate more space for text to cope with foreign languages that use // up more space than english. I hope 6400 bytes are enough. This number // is base on: 2 (lines) * 320 (screen width) * 10 (textheight) -- olki - extraBuffer = (id == 5 ? 6400 : 0); + extraBuffer += 6400; } if (getFeatures() & GF_ZLIBCOMP) { diff --git a/engines/agos/res_snd.cpp b/engines/agos/res_snd.cpp index a236047333..292eb06a80 100644 --- a/engines/agos/res_snd.cpp +++ b/engines/agos/res_snd.cpp @@ -191,6 +191,7 @@ void AGOSEngine::loadMusic(uint music) { } else if (getPlatform() == Common::kPlatformAmiga) { loadModule(music); } else if (getFeatures() & GF_TALKIE) { + // WORKAROUND: For a script bug in the CD versions // We skip this music resource, as it was replaced by // a sound effect, and the script was never updated. if (music == 35) diff --git a/engines/agos/script.cpp b/engines/agos/script.cpp index 279b5a4b48..8396ee9143 100644 --- a/engines/agos/script.cpp +++ b/engines/agos/script.cpp @@ -614,7 +614,7 @@ void AGOSEngine::o_picture() { uint vga_res = getVarOrWord(); uint mode = getVarOrByte(); - // Work around a script bug in the Amiga AGA/CD32 versions + // WORKAROUND: For a script bug in the Amiga AGA/CD32 versions // When selecting locations on the magical map, the script looks // for vga_res 12701, but only vga_res 12700 exists. if (getGameType() == GType_SIMON1 && getPlatform() == Common::kPlatformAmiga && diff --git a/engines/agos/script_e2.cpp b/engines/agos/script_e2.cpp index 31d524fee3..b8a8d8dc34 100644 --- a/engines/agos/script_e2.cpp +++ b/engines/agos/script_e2.cpp @@ -281,7 +281,7 @@ void AGOSEngine::oe2_bNotZero() { // 156: is bit set uint bit = getVarWrapper(); - // WORKAROUND: Fix for glitch in some versions + // WORKAROUND: For for script glitch in some versions if (getGameType() == GType_SIMON1 && _subroutine == 2962 && bit == 63) { bit = 50; } |