aboutsummaryrefslogtreecommitdiff
path: root/engines/simon/charset.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'engines/simon/charset.cpp')
-rw-r--r--engines/simon/charset.cpp5
1 files changed, 5 insertions, 0 deletions
diff --git a/engines/simon/charset.cpp b/engines/simon/charset.cpp
index 151f3221a7..f0b5cfa040 100644
--- a/engines/simon/charset.cpp
+++ b/engines/simon/charset.cpp
@@ -207,6 +207,11 @@ void SimonEngine::renderString(uint vga_sprite_id, uint color, uint width, uint
if (getGameType() == GType_FF) {
WRITE_LE_UINT16(p + 4, height);
WRITE_LE_UINT16(p + 6, width);
+ // We need to adjust the offset to the next buffer to be right
+ // after this one. By default, each buffer is only 9000 bytes
+ // long. A two-line string can very well be more than twice
+ // that size!
+ WRITE_LE_UINT16(p + 8, READ_LE_UINT32(p) + width * height);
} else {
WRITE_BE_UINT16(p + 4, height);
WRITE_BE_UINT16(p + 6, width);