aboutsummaryrefslogtreecommitdiff
path: root/engines/agi
diff options
context:
space:
mode:
authorFilippos Karapetis2011-09-25 21:27:12 +0300
committerFilippos Karapetis2011-09-25 21:27:12 +0300
commit453fab3de1aa1eb994488c5a6c1f27d7eb2b0ce3 (patch)
tree99a98aef5f443607c3d13aae6092a3a44e58e187 /engines/agi
parent0e4b35a8e8dad861c0890ee4edfbf6271b07397f (diff)
downloadscummvm-rg350-453fab3de1aa1eb994488c5a6c1f27d7eb2b0ce3.tar.gz
scummvm-rg350-453fab3de1aa1eb994488c5a6c1f27d7eb2b0ce3.tar.bz2
scummvm-rg350-453fab3de1aa1eb994488c5a6c1f27d7eb2b0ce3.zip
SCI: Added a workaround for bug #3295652 - "AGI: (Fan) SQ0: Animation overdraws some of the text window" and removed some duplicate code
Diffstat (limited to 'engines/agi')
-rw-r--r--engines/agi/detection_tables.h6
-rw-r--r--engines/agi/text.cpp12
2 files changed, 10 insertions, 8 deletions
diff --git a/engines/agi/detection_tables.h b/engines/agi/detection_tables.h
index a6fb0c9aee..cb12eafb02 100644
--- a/engines/agi/detection_tables.h
+++ b/engines/agi/detection_tables.h
@@ -814,9 +814,9 @@ static const AGIGameDescription gameDescriptions[] = {
FANMADE("Snowboarding Demo (v1.0)", "24bb8f29f1eddb5c0a099705267c86e4"),
FANMADE("Solar System Tour", "b5a3d0f392dfd76a6aa63f3d5f578403"),
FANMADE("Sorceror's Appraisal", "fe62615557b3cb7b08dd60c9d35efef1"),
- GAME("sq0", "v1.03", "d2fd6f7404e86182458494e64375e590", 0x2917, GID_FANMADE),
- GAME("sq0", "v1.04", "2ad9d1a4624a98571ee77dcc83f231b6", 0x2917, GID_FANMADE),
- GAME_PS("sq0", "", "e1a8e4efcce86e1efcaa14633b9eb986", 762, 0x2440, GID_FANMADE, Common::kPlatformCoCo3),
+ GAME("sq0", "v1.03", "d2fd6f7404e86182458494e64375e590", 0x2917, GID_SQ0),
+ GAME("sq0", "v1.04", "2ad9d1a4624a98571ee77dcc83f231b6", 0x2917, GID_SQ0),
+ GAME_PS("sq0", "", "e1a8e4efcce86e1efcaa14633b9eb986", 762, 0x2440, GID_SQ0, Common::kPlatformCoCo3),
GAME("sqx", "v10.0 Feb 05", "c992ae2f8ab18360404efdf16fa9edd1", 0x2917, GID_FANMADE),
GAME("sqx", "v10.0 Jul 18", "812edec45cefad559d190ffde2f9c910", 0x2917, GID_FANMADE),
GAME_PS("sqx", "", "f0a59044475a5fa37c055d8c3eb4d1a7", 768, 0x2440, GID_FANMADE, Common::kPlatformCoCo3),
diff --git a/engines/agi/text.cpp b/engines/agi/text.cpp
index 6021e124b4..9ac60c0e67 100644
--- a/engines/agi/text.cpp
+++ b/engines/agi/text.cpp
@@ -437,11 +437,13 @@ int AgiEngine::print(const char *p, int lin, int col, int len) {
debugC(4, kDebugLevelText, "print(): lin = %d, col = %d, len = %d", lin, col, len);
- if (col == 0 && lin == 0 && len == 0)
- lin = col = -1;
-
- if (len == 0)
- len = 30;
+ // WORKAROUND for SQ0, room 28: when the tree is talking, non-blocking
+ // text boxes are shown and the tree's animation is shown underneath.
+ // The text boxes are drawn too low, and the tree's animation is painted
+ // over them. We cheat here and move the text boxex one line above to
+ // avoid getting them overdrawn. Fixes bug #3295652.
+ if (getGameID() == GID_SQ0 && getvar(0) == 28 && lin == 6)
+ lin = 5;
blitTextbox(p, lin, col, len);