[Scummvm-cvs-logs] SF.net SVN: scummvm:[39937] scummvm/trunk/engines/saga/gfx.cpp
eriktorbjorn at users.sourceforge.net
eriktorbjorn at users.sourceforge.net
Sat Apr 11 17:38:14 CEST 2009
Revision: 39937
http://scummvm.svn.sourceforge.net/scummvm/?rev=39937&view=rev
Author: eriktorbjorn
Date: 2009-04-11 15:38:13 +0000 (Sat, 11 Apr 2009)
Log Message:
-----------
Committed my patch for bug #2748110 ("IHNM: Fade glitch when Benny falls
asleep"), after discussing it with [md5]. It may not be exactly like the
original, but it looks a lot closer now.
Modified Paths:
--------------
scummvm/trunk/engines/saga/gfx.cpp
Modified: scummvm/trunk/engines/saga/gfx.cpp
===================================================================
--- scummvm/trunk/engines/saga/gfx.cpp 2009-04-11 14:44:03 UTC (rev 39936)
+++ scummvm/trunk/engines/saga/gfx.cpp 2009-04-11 15:38:13 UTC (rev 39937)
@@ -406,7 +406,6 @@
int new_entry;
byte *ppal;
PalEntry *palE;
- double fpercent;
from = CLIP<int16>(from, 0, 256);
to = CLIP<int16>(to, 0, 256);
@@ -420,21 +419,17 @@
percent += 1 / x;
}
- // Exponential fade
percent = percent > 1.0 ? 1.0 : percent;
- fpercent = percent * percent;
-
if (from > to)
- fpercent = 1.0 - fpercent;
+ percent = 1.0 - percent;
+ byte fadePal[PAL_ENTRIES * 4];
+
// Use the correct percentage change per frame for each palette entry
- for (i = 0, ppal = _currentPal; i < PAL_ENTRIES; i++, ppal += 4) {
- if (i < start || i >= start + numColors)
- palE = &_globalPalette[i];
- else
- palE = &srcPal[i];
+ for (i = start, ppal = fadePal + start * 4; i < start + numColors; i++, ppal += 4) {
+ palE = &srcPal[i];
- new_entry = (int)(palE->red * fpercent);
+ new_entry = (int)(palE->red * percent);
if (new_entry < 0) {
ppal[0] = 0;
@@ -442,7 +437,7 @@
ppal[0] = (byte) new_entry;
}
- new_entry = (int)(palE->green * fpercent);
+ new_entry = (int)(palE->green * percent);
if (new_entry < 0) {
ppal[1] = 0;
@@ -450,7 +445,7 @@
ppal[1] = (byte) new_entry;
}
- new_entry = (int)(palE->blue * fpercent);
+ new_entry = (int)(palE->blue * percent);
if (new_entry < 0) {
ppal[2] = 0;
@@ -461,9 +456,9 @@
}
// Color 0 should always be black in IHNM
- memset(&_currentPal[0 * 4], 0, 4);
+ memset(&fadePal[0 * 4], 0, 4);
- _system->setPalette(_currentPal, 0, PAL_ENTRIES);
+ _system->setPalette(&fadePal[start * 4], start, numColors);
}
#endif
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