diff options
author | Filippos Karapetis | 2008-05-28 23:17:10 +0000 |
---|---|---|
committer | Filippos Karapetis | 2008-05-28 23:17:10 +0000 |
commit | b844e4bd5ad61699144ad4430ef158b9222ca6b3 (patch) | |
tree | 0f362a28611fcb52321c799a8feb9ca58614d56d /engines | |
parent | ab6c82a8502ede6172f102bd5da8f3817b29a69f (diff) | |
download | scummvm-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.cpp | 28 | ||||
-rw-r--r-- | engines/made/screenfx.h | 2 |
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); |