aboutsummaryrefslogtreecommitdiff
path: root/engines/dreamweb/vgafades.cpp
diff options
context:
space:
mode:
authorBertrand Augereau2011-11-16 17:30:38 +0100
committerBertrand Augereau2011-11-16 17:50:51 +0100
commit1ef77a580fe382f002dad6d0ae38ab43e4d2540b (patch)
tree60de051906b650cd4c173ea3e612ba1faf341539 /engines/dreamweb/vgafades.cpp
parent82cc00923bb302cfe334c05646c07f385bce66fc (diff)
downloadscummvm-rg350-1ef77a580fe382f002dad6d0ae38ab43e4d2540b.tar.gz
scummvm-rg350-1ef77a580fe382f002dad6d0ae38ab43e4d2540b.tar.bz2
scummvm-rg350-1ef77a580fe382f002dad6d0ae38ab43e4d2540b.zip
DREAMWEB: 'fadecalculation' ported to C++
Diffstat (limited to 'engines/dreamweb/vgafades.cpp')
-rw-r--r--engines/dreamweb/vgafades.cpp23
1 files changed, 23 insertions, 0 deletions
diff --git a/engines/dreamweb/vgafades.cpp b/engines/dreamweb/vgafades.cpp
index 79a7cce389..abb1a9b1a6 100644
--- a/engines/dreamweb/vgafades.cpp
+++ b/engines/dreamweb/vgafades.cpp
@@ -56,5 +56,28 @@ void DreamGenContext::paltoendpal() {
memcpy(endPalette(), mainPalette(), 256*3);
}
+void DreamGenContext::fadecalculation() {
+ if (data.byte(kFadecount) == 0) {
+ data.byte(kFadedirection) = 0;
+ return;
+ }
+
+ uint8 *startPal = startPalette();
+ const uint8 *endPal = endPalette();
+ for (size_t i = 0; i < 256 * 3; ++i, ++si, ++di) {
+ uint8 s = startPal[i];
+ uint8 e = endPal[i];
+ if (s == e)
+ continue;
+ else if (s > e)
+ --startPal[i];
+ else {
+ if (data.byte(kFadecount) <= e)
+ ++startPal[i];
+ }
+ }
+ --data.byte(kFadecount);
+}
+
} /*namespace dreamgen */