aboutsummaryrefslogtreecommitdiff
path: root/engines
diff options
context:
space:
mode:
authorFilippos Karapetis2008-05-28 23:17:10 +0000
committerFilippos Karapetis2008-05-28 23:17:10 +0000
commitb844e4bd5ad61699144ad4430ef158b9222ca6b3 (patch)
tree0f362a28611fcb52321c799a8feb9ca58614d56d /engines
parentab6c82a8502ede6172f102bd5da8f3817b29a69f (diff)
downloadscummvm-rg350-b844e4bd5ad61699144ad4430ef158b9222ca6b3.tar.gz
scummvm-rg350-b844e4bd5ad61699144ad4430ef158b9222ca6b3.tar.bz2
scummvm-rg350-b844e4bd5ad61699144ad4430ef158b9222ca6b3.zip
Implemented visual effects 11 and 13 (inverse of 10 and 12)
svn-id: r32356
Diffstat (limited to 'engines')
-rw-r--r--engines/made/screenfx.cpp28
-rw-r--r--engines/made/screenfx.h2
2 files changed, 30 insertions, 0 deletions
diff --git a/engines/made/screenfx.cpp b/engines/made/screenfx.cpp
index b65c3db60c..ee96af601a 100644
--- a/engines/made/screenfx.cpp
+++ b/engines/made/screenfx.cpp
@@ -76,10 +76,18 @@ void ScreenEffects::run(int16 effectNum, Graphics::Surface *surface, byte *palet
vfx10(surface, palette, newPalette, colorCount);
break;
+ case 11: // "Screen wipe in", right to left
+ vfx11(surface, palette, newPalette, colorCount);
+ break;
+
case 12: // "Screen wipe in", top to bottom
vfx12(surface, palette, newPalette, colorCount);
break;
+ case 13: // "Screen wipe in", bottom to top
+ vfx13(surface, palette, newPalette, colorCount);
+ break;
+
case 14: // "Screen open" effect
vfx14(surface, palette, newPalette, colorCount);
break;
@@ -256,6 +264,16 @@ void ScreenEffects::vfx10(Graphics::Surface *surface, byte *palette, byte *newPa
setPalette(palette);
}
+// "Screen wipe in", right to left
+void ScreenEffects::vfx11(Graphics::Surface *surface, byte *palette, byte *newPalette, int colorCount) {
+ for (int x = 312; x > -56; x -= 8) {
+ copyFxRect(surface, x, 0, x + 64, 200);
+ setBlendedPalette(palette, newPalette, colorCount, x + 56, 368);
+ _screen->updateScreenAndWait(25);
+ }
+ setPalette(palette);
+}
+
// "Screen wipe in", top to bottom
void ScreenEffects::vfx12(Graphics::Surface *surface, byte *palette, byte *newPalette, int colorCount) {
for (int y = -70; y < 312; y += 10) {
@@ -266,6 +284,16 @@ void ScreenEffects::vfx12(Graphics::Surface *surface, byte *palette, byte *newPa
setPalette(palette);
}
+// "Screen wipe in", bottom to top
+void ScreenEffects::vfx13(Graphics::Surface *surface, byte *palette, byte *newPalette, int colorCount) {
+ for (int y = 312; y > -70; y -= 10) {
+ copyFxRect(surface, 0, y, 320, y + 80);
+ setBlendedPalette(palette, newPalette, colorCount, y + 70, 260);
+ _screen->updateScreenAndWait(25);
+ }
+ setPalette(palette);
+}
+
// "Screen open" effect
void ScreenEffects::vfx14(Graphics::Surface *surface, byte *palette, byte *newPalette, int colorCount) {
int16 x = 8, y = 5;
diff --git a/engines/made/screenfx.h b/engines/made/screenfx.h
index 1c36b3e1f1..e5023621ae 100644
--- a/engines/made/screenfx.h
+++ b/engines/made/screenfx.h
@@ -57,7 +57,9 @@ private:
void vfx02(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);
void vfx12(Graphics::Surface *surface, byte *palette, byte *newPalette, int colorCount);
+ 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 vfx17(Graphics::Surface *surface, byte *palette, byte *newPalette, int colorCount);