diff options
| author | Kamil Zbróg | 2014-01-07 00:13:05 +0000 |
|---|---|---|
| committer | Kamil Zbróg | 2014-01-07 00:13:05 +0000 |
| commit | e94fabc37407a7d300af04493b0f5cbced42a092 (patch) | |
| tree | 998bfaa03109a49d2bb9ec5b17e817ef7cc32a4c /video/smk_decoder.cpp | |
| parent | 165b8be77f4621ff5de8a483c6cd9ac497492a0a (diff) | |
| parent | 4f6c3efa15c68dfa49bf5e6fe75dec034abe903b (diff) | |
| download | scummvm-rg350-e94fabc37407a7d300af04493b0f5cbced42a092.tar.gz scummvm-rg350-e94fabc37407a7d300af04493b0f5cbced42a092.tar.bz2 scummvm-rg350-e94fabc37407a7d300af04493b0f5cbced42a092.zip | |
Merge remote-tracking branch 'sync/master' into prince-malik
Diffstat (limited to 'video/smk_decoder.cpp')
| -rw-r--r-- | video/smk_decoder.cpp | 15 |
1 files changed, 7 insertions, 8 deletions
diff --git a/video/smk_decoder.cpp b/video/smk_decoder.cpp index 3dbcebcde4..0247fe5dc9 100644 --- a/video/smk_decoder.cpp +++ b/video/smk_decoder.cpp @@ -726,16 +726,15 @@ void SmackerDecoder::SmackerVideoTrack::unpackPalette(Common::SeekableReadStream } else { // top 2 bits are 00 sz++; // get the lower 6 bits for each component (0x3f = 00111111) - byte b = b0 & 0x3f; + byte r = b0 & 0x3f; byte g = (*p++) & 0x3f; - byte r = (*p++) & 0x3f; + byte b = (*p++) & 0x3f; - assert(g < 0xc0 && b < 0xc0); - - // upscale to full 8-bit color values by multiplying by 4 - *pal++ = b * 4; - *pal++ = g * 4; - *pal++ = r * 4; + // upscale to full 8-bit color values. The Multimedia Wiki suggests + // a lookup table for this, but this should produce the same result. + *pal++ = (r * 4 + r / 16); + *pal++ = (g * 4 + g / 16); + *pal++ = (b * 4 + b / 16); } } |
