aboutsummaryrefslogtreecommitdiff
path: root/engines/agi/text.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'engines/agi/text.cpp')
-rw-r--r--engines/agi/text.cpp12
1 files changed, 7 insertions, 5 deletions
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);