aboutsummaryrefslogtreecommitdiff
path: root/engines/mads/screen.cpp
diff options
context:
space:
mode:
authorPaul Gilbert2014-05-24 14:21:03 -0400
committerPaul Gilbert2014-05-24 14:21:03 -0400
commitb2860fc675db9958c994778a12947880812d4690 (patch)
tree63d68881b01594017ead574d241983f780485b7a /engines/mads/screen.cpp
parent3202abaa8922bc741b3f28e1a2c1a86d8639a5f4 (diff)
downloadscummvm-rg350-b2860fc675db9958c994778a12947880812d4690.tar.gz
scummvm-rg350-b2860fc675db9958c994778a12947880812d4690.tar.bz2
scummvm-rg350-b2860fc675db9958c994778a12947880812d4690.zip
MADS: Implemented scene fading
Diffstat (limited to 'engines/mads/screen.cpp')
-rw-r--r--engines/mads/screen.cpp33
1 files changed, 18 insertions, 15 deletions
diff --git a/engines/mads/screen.cpp b/engines/mads/screen.cpp
index 6a70bfb5d9..ae129995ac 100644
--- a/engines/mads/screen.cpp
+++ b/engines/mads/screen.cpp
@@ -570,14 +570,27 @@ void ScreenSurface::updateScreen() {
}
void ScreenSurface::transition(ScreenTransition transitionType, bool surfaceFlag) {
+ Palette &pal = *_vm->_palette;
+ byte palData[PALETTE_SIZE];
+
switch (transitionType) {
+ case kTransitionFadeIn:
case kTransitionFadeOutIn:
- fadeOut();
- fadeIn();
- break;
+ Common::fill(&pal._colorValues[0], &pal._colorValues[3], 0);
+ Common::fill(&pal._colorFlags[0], &pal._colorFlags[3], false);
- case kTransitionFadeIn:
- fadeIn();
+ if (transitionType == kTransitionFadeOutIn) {
+ // Fade out
+ pal.getFullPalette(palData);
+ pal.fadeOut(palData, nullptr, 0, PALETTE_COUNT, 0, 0, 1, 16);
+ }
+
+ // Reset palette to black
+ Common::fill(&palData[0], &palData[PALETTE_SIZE], 0);
+ pal.setFullPalette(palData);
+
+ copyRectToScreen(getBounds());
+ pal.fadeIn(palData, pal._mainPalette, 0, 256, 0, 1, 1, 16);
break;
case kTransitionBoxInBottomLeft:
@@ -606,14 +619,4 @@ void ScreenSurface::transition(ScreenTransition transitionType, bool surfaceFlag
}
}
-void ScreenSurface::fadeOut() {
- warning("TODO: Proper fade out");
-}
-
-void ScreenSurface::fadeIn() {
- warning("TODO: Proper fade in");
- _vm->_palette->setFullPalette(_vm->_palette->_mainPalette);
- _vm->_screen.copyRectToScreen(Common::Rect(0, 0, 320, 200));
-}
-
} // End of namespace MADS