[Scummvm-cvs-logs] SF.net SVN: scummvm:[46065] scummvm/trunk/engines/scumm/palette.cpp
Kirben at users.sourceforge.net
Kirben at users.sourceforge.net
Sun Nov 22 09:49:19 CET 2009
Revision: 46065
http://scummvm.svn.sourceforge.net/scummvm/?rev=46065&view=rev
Author: Kirben
Date: 2009-11-22 08:49:19 +0000 (Sun, 22 Nov 2009)
Log Message:
-----------
Add patch for Tobias, for more accurate palette in PCE version of Loom.
Modified Paths:
--------------
scummvm/trunk/engines/scumm/palette.cpp
Modified: scummvm/trunk/engines/scumm/palette.cpp
===================================================================
--- scummvm/trunk/engines/scumm/palette.cpp 2009-11-22 08:36:14 UTC (rev 46064)
+++ scummvm/trunk/engines/scumm/palette.cpp 2009-11-22 08:49:19 UTC (rev 46065)
@@ -204,9 +204,9 @@
void colorPCEToRGB(uint16 color, byte *r, byte *g, byte *b) {
// 3 bits for each color component: 0xgggrrrbbb
- *b = ((color) & 0x7) << 5;
- *r = ((color >> 3) & 0x7) << 5;
- *g = ((color >> 6) & 0x7) << 5;
+ *b = ((color) & 0x7) * 0xFF / 0x7;
+ *r = ((color >> 3) & 0x7) * 0xFF / 0x7;
+ *g = ((color >> 6) & 0x7) * 0xFF / 0x7;
}
void ScummEngine::setPCETextPalette(uint8 color) {
@@ -242,6 +242,7 @@
void ScummEngine::setPCEPaletteFromPtr(const byte *ptr) {
byte *dest;
byte bgSpriteR, bgSpriteG, bgSpriteB;
+ byte charsetR, charsetG, charsetB;
int paletteOffset = *ptr++;
int numPalettes = *ptr++;
@@ -254,6 +255,9 @@
colorPCEToRGB(READ_LE_UINT16(ptr), &bgSpriteR, &bgSpriteG, &bgSpriteB);
ptr += 2;
+ // CHARSET_COLORS[_curTextColor] (unused?)
+ colorPCEToRGB(0x01B6, &charsetR, &charsetG, &charsetB);
+
dest = _currentPalette + firstIndex * 3;
for (int i = 0; i < numPalettes; ++i) {
@@ -265,10 +269,10 @@
// entry 1 - 14
readPCEPalette(&ptr, &dest, 14);
- // entry 15: DEFAULT_PALETTE[var3AE3];
- *dest++ = 6 << 5;
- *dest++ = 6 << 5;
- *dest++ = 6 << 5;
+ // entry 15
+ *dest++ = charsetR;
+ *dest++ = charsetG;
+ *dest++ = charsetB;
}
if (_game.features & GF_16BIT_COLOR) {
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
More information about the Scummvm-git-logs
mailing list