[Scummvm-cvs-logs] scummvm master -> 6db22dde64ca00c31d99c20790063f9ba782552d
clone2727
clone2727 at gmail.com
Tue Feb 22 02:34:24 CET 2011
This automated email contains information about 2 new commits which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .
Summary:
4402153a09 SCI: Fix disabled Mac icon pseudo-shading
6db22dde64 SCI: Fixed freddy's Mac icon bar palettes
Commit: 4402153a095e152132655c13a94e1098375fe0d3
https://github.com/scummvm/scummvm/commit/4402153a095e152132655c13a94e1098375fe0d3
Author: Matthew Hoops (clone2727 at gmail.com)
Date: 2011-02-21T17:32:24-08:00
Commit Message:
SCI: Fix disabled Mac icon pseudo-shading
Changed paths:
engines/sci/graphics/maciconbar.cpp
diff --git a/engines/sci/graphics/maciconbar.cpp b/engines/sci/graphics/maciconbar.cpp
index ea44db6..f0931e0 100644
--- a/engines/sci/graphics/maciconbar.cpp
+++ b/engines/sci/graphics/maciconbar.cpp
@@ -110,10 +110,12 @@ void GfxMacIconBar::drawDisabledImage(Graphics::Surface *surface, const Common::
newSurf.copyFrom(*surface);
for (int i = 0; i < newSurf.h; i++) {
- int startX = rect.left & 3;
+ // Start at the next four byte boundary
+ int startX = 3 - ((rect.left + 3) & 3);
+ // Start odd rows at two bytes past that (also properly aligned)
if ((i + rect.top) & 1)
- startX += 2;
+ startX = (startX + 2) & 3;
for (int j = startX; j < newSurf.w; j += 4)
*((byte *)newSurf.getBasePtr(j, i)) = 0;
Commit: 6db22dde64ca00c31d99c20790063f9ba782552d
https://github.com/scummvm/scummvm/commit/6db22dde64ca00c31d99c20790063f9ba782552d
Author: Matthew Hoops (clone2727 at gmail.com)
Date: 2011-02-21T17:32:30-08:00
Commit Message:
SCI: Fixed freddy's Mac icon bar palettes
(hopefully for good now)
Changed paths:
engines/sci/graphics/palette.cpp
diff --git a/engines/sci/graphics/palette.cpp b/engines/sci/graphics/palette.cpp
index 5348903..0f95a3f 100644
--- a/engines/sci/graphics/palette.cpp
+++ b/engines/sci/graphics/palette.cpp
@@ -850,21 +850,16 @@ void GfxPalette::palVaryProcess(int signal, bool setPalette) {
byte GfxPalette::findMacIconBarColor(byte r, byte g, byte b) {
// Find the best color for use with the Mac icon bar
- // For black, always use 0
- if (r == 0 && g == 0 && b == 0)
- return 0;
-
byte found = 0xFF;
uint diff = 0xFFFFFFFF;
- for (uint16 i = 1; i < 255; i++) {
- int dr = _macClut[i * 3 ] - r;
- int dg = _macClut[i * 3 + 1] - g;
- int db = _macClut[i * 3 + 2] - b;
+ for (uint16 i = 0; i < 256; i++) {
+ // Use the difference of the top 4 bits
+ int dr = (_macClut[i * 3 ] & 0xf0) - (r & 0xf0);
+ int dg = (_macClut[i * 3 + 1] & 0xf0) - (g & 0xf0);
+ int db = (_macClut[i * 3 + 2] & 0xf0) - (b & 0xf0);
- // Use the largest difference. This is what the Mac Palette Manager does.
- uint cdiff = MAX<int>(ABS(dr), ABS(dg));
- cdiff = MAX<int>(cdiff, ABS(db));
+ uint cdiff = ABS(dr) + ABS(dg) + ABS(db);
if (cdiff == 0)
return i;
@@ -889,7 +884,9 @@ void GfxPalette::loadMacIconBarPalette() {
clutStream->readUint32BE(); // seed
clutStream->readUint16BE(); // flags
uint16 colorCount = clutStream->readUint16BE() + 1;
- _macClut = new byte[colorCount * 3];
+ assert(colorCount == 256);
+
+ _macClut = new byte[256 * 3];
for (uint16 i = 0; i < colorCount; i++) {
clutStream->readUint16BE();
@@ -898,6 +895,19 @@ void GfxPalette::loadMacIconBarPalette() {
_macClut[i * 3 + 2] = clutStream->readUint16BE() >> 8;
}
+ // Adjust bounds on the KQ6 palette
+ // We don't use all of it for the icon bar
+ if (g_sci->getGameId() == GID_KQ6)
+ memset(_macClut + 32 * 3, 0, (256 - 32) * 3);
+
+ // Force black/white
+ _macClut[0x00 * 3 ] = 0;
+ _macClut[0x00 * 3 + 1] = 0;
+ _macClut[0x00 * 3 + 2] = 0;
+ _macClut[0xff * 3 ] = 0xff;
+ _macClut[0xff * 3 + 1] = 0xff;
+ _macClut[0xff * 3 + 2] = 0xff;
+
delete clutStream;
}
More information about the Scummvm-git-logs
mailing list