aboutsummaryrefslogtreecommitdiff
path: root/engines
diff options
context:
space:
mode:
Diffstat (limited to 'engines')
-rw-r--r--engines/agos/res.cpp7
-rw-r--r--engines/agos/res_snd.cpp1
-rw-r--r--engines/agos/script.cpp2
-rw-r--r--engines/agos/script_e2.cpp2
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;
}