From 2b57a711f6275d0a9b6b09caebbfda7c8cc89d4c Mon Sep 17 00:00:00 2001 From: Dmitry Iskrich Date: Fri, 10 Jun 2016 13:35:46 +0300 Subject: DIRECTOR: Fix palette loading --- engines/director/dib.cpp | 2 +- engines/director/score.cpp | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) (limited to 'engines') diff --git a/engines/director/dib.cpp b/engines/director/dib.cpp index 4e2a21dd38..912f083569 100644 --- a/engines/director/dib.cpp +++ b/engines/director/dib.cpp @@ -61,8 +61,8 @@ void DIBDecoder::destroy() { void DIBDecoder::loadPalette(Common::SeekableReadStream &stream) { uint16 steps = stream.size()/6; uint16 index = (steps * 3) - 1; + _paletteColorCount = steps; _palette = new byte[index]; - for (uint8 i = 0; i < steps; i++) { _palette[index - 2] = stream.readByte(); stream.readByte(); diff --git a/engines/director/score.cpp b/engines/director/score.cpp index 55b37405ee..b3494b644d 100644 --- a/engines/director/score.cpp +++ b/engines/director/score.cpp @@ -91,7 +91,8 @@ Score::Score(Archive &movie, Lingo &lingo) { Common::SeekableReadStream *pal = _movieArchive->getResource(MKTAG('C', 'L', 'U', 'T'), clutList[0]); palette.loadPalette(*pal); - g_system->getPaletteManager()->setPalette(palette.getPalette(), 0, 255); + g_system->getPaletteManager()->setPalette(palette.getPalette(), 0, palette.getPaletteColorCount()); + } void Score::loadFrames(Common::SeekableReadStream &stream) { -- cgit v1.2.3