diff options
-rw-r--r-- | engines/agi/detection_tables.h | 6 | ||||
-rw-r--r-- | engines/agi/text.cpp | 12 |
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); |