From 5d7ce32fbd4911f449e614bcf445cb2a26ed30d7 Mon Sep 17 00:00:00 2001 From: Florian Kagerer Date: Sun, 3 Oct 2010 20:29:22 +0000 Subject: SCUMM/FM-TOWNS: fix mouse cursor colors svn-id: r52999 --- engines/scumm/cursor.cpp | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) (limited to 'engines/scumm') diff --git a/engines/scumm/cursor.cpp b/engines/scumm/cursor.cpp index 63a7b1c40e..80e7899650 100644 --- a/engines/scumm/cursor.cpp +++ b/engines/scumm/cursor.cpp @@ -560,6 +560,7 @@ void ScummEngine_v5::setBuiltinCursor(int idx) { colorPCEToRGB(default_pce_cursor_colors[idx], &r, &g, &b); color = get16BitColor(r, g, b); } else if (_game.platform == Common::kPlatformFMTowns) { + //uint8 tmp = (default_cursor_colors[idx] << 4) | default_cursor_colors[idx]; byte *palEntry = &_textPalette[default_cursor_colors[idx] * 3]; color = get16BitColor(palEntry[0], palEntry[1], palEntry[2]); } else { @@ -585,8 +586,17 @@ void ScummEngine_v5::setBuiltinCursor(int idx) { if (src[i] & (1 << j)) { byte *dst1 = _grabbedCursor + 16 * scl * i * _textSurfaceMultiplier + (15 - j) * scl; byte *dst2 = (_textSurfaceMultiplier == 2) ? dst1 + 16 * scl : dst1; - for (int b = 0; b < scl; b++) - *dst1++ = *dst2++ = color; + if (_bytesPerPixelOutput == 2) { + for (int b = 0; b < scl; b += 2) { + WRITE_LE_UINT16(dst1, color); + WRITE_LE_UINT16(dst2, color); + dst1 += 2; + dst2 += 2; + } + } else { + for (int b = 0; b < scl; b++) + *dst1++ = *dst2++ = color; + } } } } -- cgit v1.2.3