aboutsummaryrefslogtreecommitdiff
path: root/engines/scumm/gfx.cpp
diff options
context:
space:
mode:
authorTravis Howell2009-11-22 08:36:14 +0000
committerTravis Howell2009-11-22 08:36:14 +0000
commit94e75b8b6d24f3ad0e0dc9f4e6e789948e31f48e (patch)
treecffd8027ddbb0ae8b71d939ea93f2d3294ecb855 /engines/scumm/gfx.cpp
parent4b3e3d5601d32f2323634612124d2bf16aa7a4db (diff)
downloadscummvm-rg350-94e75b8b6d24f3ad0e0dc9f4e6e789948e31f48e.tar.gz
scummvm-rg350-94e75b8b6d24f3ad0e0dc9f4e6e789948e31f48e.tar.bz2
scummvm-rg350-94e75b8b6d24f3ad0e0dc9f4e6e789948e31f48e.zip
Fix charset palette in PCE version of Loom, based on information from Tobias.
svn-id: r46064
Diffstat (limited to 'engines/scumm/gfx.cpp')
-rw-r--r--engines/scumm/gfx.cpp9
1 files changed, 7 insertions, 2 deletions
diff --git a/engines/scumm/gfx.cpp b/engines/scumm/gfx.cpp
index 651bbec1ab..2d284e8e7c 100644
--- a/engines/scumm/gfx.cpp
+++ b/engines/scumm/gfx.cpp
@@ -643,9 +643,14 @@ void ScummEngine::drawStripToScreen(VirtScreen *vs, int x, int width, int top, i
for (int h = 0; h < height * m; ++h) {
for (int w = 0; w < width * m; ++w) {
uint16 tmp = *textPtr++;
- if (tmp == CHARSET_MASK_TRANSPARENCY)
+ if (tmp == CHARSET_MASK_TRANSPARENCY) {
tmp = READ_UINT16(srcPtr);
- WRITE_UINT16(dstPtr, tmp); dstPtr += 2;
+ WRITE_UINT16(dstPtr, tmp); dstPtr += 2;
+ } else if (_game.heversion != 0) {
+ error ("16Bit Color HE Game using old charset");
+ } else {
+ WRITE_UINT16(dstPtr, _16BitPalette[tmp]); dstPtr += 2;
+ }
srcPtr += vs->bytesPerPixel;
}
srcPtr += vsPitch;