[Scummvm-cvs-logs] SF.net SVN: scummvm:[34823] scummvm/trunk/engines/made
john_doe at users.sourceforge.net
john_doe at users.sourceforge.net
Sat Oct 18 23:28:05 CEST 2008
Revision: 34823
http://scummvm.svn.sourceforge.net/scummvm/?rev=34823&view=rev
Author: john_doe
Date: 2008-10-18 21:28:05 +0000 (Sat, 18 Oct 2008)
Log Message:
-----------
Implemented visual effects 1, 3, 4, 5, 6, 7 and 16
Modified Paths:
--------------
scummvm/trunk/engines/made/screenfx.cpp
scummvm/trunk/engines/made/screenfx.h
Modified: scummvm/trunk/engines/made/screenfx.cpp
===================================================================
--- scummvm/trunk/engines/made/screenfx.cpp 2008-10-18 13:06:27 UTC (rev 34822)
+++ scummvm/trunk/engines/made/screenfx.cpp 2008-10-18 21:28:05 UTC (rev 34823)
@@ -64,10 +64,34 @@
vfx00(surface, palette, newPalette, colorCount);
break;
+ case 1:
+ vfx01(surface, palette, newPalette, colorCount);
+ break;
+
case 2:
vfx02(surface, palette, newPalette, colorCount);
break;
+ case 3:
+ vfx03(surface, palette, newPalette, colorCount);
+ break;
+
+ case 4:
+ vfx04(surface, palette, newPalette, colorCount);
+ break;
+
+ case 5:
+ vfx05(surface, palette, newPalette, colorCount);
+ break;
+
+ case 6:
+ vfx06(surface, palette, newPalette, colorCount);
+ break;
+
+ case 7:
+ vfx07(surface, palette, newPalette, colorCount);
+ break;
+
case 9: // "Checkerboard" effect
vfx09(surface, palette, newPalette, colorCount);
break;
@@ -96,6 +120,10 @@
vfx15(surface, palette, newPalette, colorCount);
break;
+ case 16:
+ vfx16(surface, palette, newPalette, colorCount);
+ break;
+
case 17: // Palette fadeout/fadein
vfx17(surface, palette, newPalette, colorCount);
break;
@@ -229,10 +257,19 @@
void ScreenEffects::vfx00(Graphics::Surface *surface, byte *palette, byte *newPalette, int colorCount) {
setPalette(palette);
_screen->showWorkScreen();
- // FIXME: For Manhole; causes sluggish mouse
+ // Workaround for The Manhole, else animations will be shown too fast
_screen->updateScreenAndWait(100);
}
+void ScreenEffects::vfx01(Graphics::Surface *surface, byte *palette, byte *newPalette, int colorCount) {
+ for (int x = 0; x < 320; x += 8) {
+ copyRect(surface, x, 0, x + 8, 200);
+ setBlendedPalette(palette, newPalette, colorCount, x, 312);
+ _screen->updateScreenAndWait(25);
+ }
+ setPalette(palette);
+}
+
void ScreenEffects::vfx02(Graphics::Surface *surface, byte *palette, byte *newPalette, int colorCount) {
for (int x = 312; x >= 0; x -= 8) {
copyRect(surface, x, 0, x + 8, 200);
@@ -242,6 +279,54 @@
setPalette(palette);
}
+void ScreenEffects::vfx03(Graphics::Surface *surface, byte *palette, byte *newPalette, int colorCount) {
+ for (int y = 0; y < 200; y += 10) {
+ copyRect(surface, 0, y, 320, y + 10);
+ setBlendedPalette(palette, newPalette, colorCount, y, 190);
+ _screen->updateScreenAndWait(25);
+ }
+ setPalette(palette);
+}
+
+void ScreenEffects::vfx04(Graphics::Surface *surface, byte *palette, byte *newPalette, int colorCount) {
+ for (int y = 190; y >= 0; y -= 10) {
+ copyRect(surface, 0, y, 320, y + 10);
+ setBlendedPalette(palette, newPalette, colorCount, 190 - y, 190);
+ _screen->updateScreenAndWait(25);
+ }
+ setPalette(palette);
+}
+
+void ScreenEffects::vfx05(Graphics::Surface *surface, byte *palette, byte *newPalette, int colorCount) {
+ for (int y = 0; y < 100; y += 10) {
+ copyRect(surface, 0, y + 100, 320, y + 110);
+ copyRect(surface, 0, 90 - y, 320, 100 - y);
+ setBlendedPalette(palette, newPalette, colorCount, y, 90);
+ _screen->updateScreenAndWait(25);
+ }
+ setPalette(palette);
+}
+
+void ScreenEffects::vfx06(Graphics::Surface *surface, byte *palette, byte *newPalette, int colorCount) {
+ for (int x = 0; x < 160; x += 8) {
+ copyRect(surface, x + 160, 0, x + 168, 200);
+ copyRect(surface, 152 - x, 0, 160 - x, 200);
+ setBlendedPalette(palette, newPalette, colorCount, x, 152);
+ _screen->updateScreenAndWait(25);
+ }
+ setPalette(palette);
+}
+
+void ScreenEffects::vfx07(Graphics::Surface *surface, byte *palette, byte *newPalette, int colorCount) {
+ for (int x = 152; x >= 0; x -= 8) {
+ copyRect(surface, x + 160, 0, x + 168, 200);
+ copyRect(surface, 152 - x, 0, 160 - x, 200);
+ setBlendedPalette(palette, newPalette, colorCount, 152 - x, 152);
+ _screen->updateScreenAndWait(25);
+ }
+ setPalette(palette);
+}
+
// "Checkerboard" effect
void ScreenEffects::vfx09(Graphics::Surface *surface, byte *palette, byte *newPalette, int colorCount) {
for (int i = 0; i < 8; i++) {
@@ -318,6 +403,17 @@
setPalette(palette);
}
+void ScreenEffects::vfx16(Graphics::Surface *surface, byte *palette, byte *newPalette, int colorCount) {
+ int16 y = 8;
+ for (int i = 0; i < 27; i++) {
+ copyFxRect(surface, 0, 100 - y, 320, 100 + y);
+ y += 5;
+ setBlendedPalette(palette, newPalette, colorCount, i, 27);
+ _screen->updateScreenAndWait(25);
+ }
+ setPalette(palette);
+}
+
// Palette fadeout/fadein
void ScreenEffects::vfx17(Graphics::Surface *surface, byte *palette, byte *newPalette, int colorCount) {
Modified: scummvm/trunk/engines/made/screenfx.h
===================================================================
--- scummvm/trunk/engines/made/screenfx.h 2008-10-18 13:06:27 UTC (rev 34822)
+++ scummvm/trunk/engines/made/screenfx.h 2008-10-18 21:28:05 UTC (rev 34823)
@@ -54,7 +54,13 @@
void copyFxRect(Graphics::Surface *surface, int16 x1, int16 y1, int16 x2, int16 y2);
void copyRect(Graphics::Surface *surface, int16 x1, int16 y1, int16 x2, int16 y2);
void vfx00(Graphics::Surface *surface, byte *palette, byte *newPalette, int colorCount);
+ void vfx01(Graphics::Surface *surface, byte *palette, byte *newPalette, int colorCount);
void vfx02(Graphics::Surface *surface, byte *palette, byte *newPalette, int colorCount);
+ void vfx03(Graphics::Surface *surface, byte *palette, byte *newPalette, int colorCount);
+ void vfx04(Graphics::Surface *surface, byte *palette, byte *newPalette, int colorCount);
+ void vfx05(Graphics::Surface *surface, byte *palette, byte *newPalette, int colorCount);
+ void vfx06(Graphics::Surface *surface, byte *palette, byte *newPalette, int colorCount);
+ void vfx07(Graphics::Surface *surface, byte *palette, byte *newPalette, int colorCount);
void vfx09(Graphics::Surface *surface, byte *palette, byte *newPalette, int colorCount);
void vfx10(Graphics::Surface *surface, byte *palette, byte *newPalette, int colorCount);
void vfx11(Graphics::Surface *surface, byte *palette, byte *newPalette, int colorCount);
@@ -62,6 +68,7 @@
void vfx13(Graphics::Surface *surface, byte *palette, byte *newPalette, int colorCount);
void vfx14(Graphics::Surface *surface, byte *palette, byte *newPalette, int colorCount);
void vfx15(Graphics::Surface *surface, byte *palette, byte *newPalette, int colorCount);
+ void vfx16(Graphics::Surface *surface, byte *palette, byte *newPalette, int colorCount);
void vfx17(Graphics::Surface *surface, byte *palette, byte *newPalette, int colorCount);
};
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