diff options
author | Martin Kiewitz | 2010-01-25 10:17:55 +0000 |
---|---|---|
committer | Martin Kiewitz | 2010-01-25 10:17:55 +0000 |
commit | 8d12d846098797df7904e9d128a14d3c05942d83 (patch) | |
tree | 781a62afb998e07424615e9539ddabf6224b54fb /engines/sci/graphics/picture.cpp | |
parent | b0cab96cd0d49608d964215af001b40af12edc96 (diff) | |
download | scummvm-rg350-8d12d846098797df7904e9d128a14d3c05942d83.tar.gz scummvm-rg350-8d12d846098797df7904e9d128a14d3c05942d83.tar.bz2 scummvm-rg350-8d12d846098797df7904e9d128a14d3c05942d83.zip |
SCI: support for both amiga "palettes" (one is a left-over VGA palette, the other one is a real palette, no idea whats in there cause its just 32 bytes instead of 64 bytes)
svn-id: r47551
Diffstat (limited to 'engines/sci/graphics/picture.cpp')
-rw-r--r-- | engines/sci/graphics/picture.cpp | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/engines/sci/graphics/picture.cpp b/engines/sci/graphics/picture.cpp index a488c9e8e0..de35aebbf4 100644 --- a/engines/sci/graphics/picture.cpp +++ b/engines/sci/graphics/picture.cpp @@ -399,7 +399,7 @@ void SciGuiPicture::drawVectorData(byte *data, int dataSize) { // Drawing while (curPos < dataSize) { - warning("%X at %d", data[curPos], curPos); + //warning("%X at %d", data[curPos], curPos); switch (pic_op = data[curPos++]) { case PIC_OP_SET_COLOR: pic_color = data[curPos++]; @@ -556,8 +556,13 @@ void SciGuiPicture::drawVectorData(byte *data, int dataSize) { break; case PIC_OPX_VGA_SET_PALETTE: if (_resMan->getViewType() == kViewAmiga) { - // TODO: Implement amiga palette loading - curPos += 32; // Skip over palette + if ((data[curPos] == 0x00) && (data[curPos + 1] == 0x01) && ((data[curPos + 32] & 0xF0) != 0xF0)) { + // Left-Over VGA palette, we simply ignore it + curPos += 256 + 4 + 768; + } else { + // Some sort of 32 byte amiga palette, TODO: Find out whats in there + curPos += 32; + } } else { curPos += 256 + 4; // Skip over mapping and timestamp for (i = 0; i < 256; i++) { |