aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--scumm/cursor.cpp9
-rw-r--r--scumm/intern.h2
2 files changed, 6 insertions, 5 deletions
diff --git a/scumm/cursor.cpp b/scumm/cursor.cpp
index a24a502c31..98f680fd54 100644
--- a/scumm/cursor.cpp
+++ b/scumm/cursor.cpp
@@ -331,19 +331,20 @@ void ScummEngine_v5::redefineBuiltinCursorFromChar(int index, int chr) {
}
Graphics::Surface s;
- byte buf[16*16];
- memset(buf, 123, 16*16);
+ byte buf[16*17];
+ memset(buf, 123, 16*17);
s.pixels = buf;
s.w = _charset->getCharWidth(chr);
s.h = _charset->getFontHeight();
s.pitch = s.w;
- assert(s.w <= 16 && s.h <= 16);
+ // s.h = 17 for FM-TOWNS Loom Japanese. Fixes bug #1166917
+ assert(s.w <= 16 && s.h <= 17);
s.bytesPerPixel = 1;
_charset->drawChar(chr, s, 0, 0);
uint16 *ptr = _cursorImages[index];
- memset(ptr, 0, 16 * sizeof(uint16));
+ memset(ptr, 0, 17 * sizeof(uint16));
for (int h = 0; h < s.h; h++) {
for (int w = 0; w < s.w; w++) {
if (buf[s.pitch * h + w] != 123)
diff --git a/scumm/intern.h b/scumm/intern.h
index 99b2bb2d50..d911505582 100644
--- a/scumm/intern.h
+++ b/scumm/intern.h
@@ -50,7 +50,7 @@ protected:
const OpcodeEntryV5 *_opcodesV5;
- uint16 _cursorImages[4][16];
+ uint16 _cursorImages[4][17];
byte _cursorHotspots[2 * 4];
public: