diff options
author | Max Horn | 2003-05-24 16:11:47 +0000 |
---|---|---|
committer | Max Horn | 2003-05-24 16:11:47 +0000 |
commit | 07df5bd181efe00c6a7341bd3fdc74239080b057 (patch) | |
tree | bf6d2cecc8de29794bb2110d195a5a538b43835e /scumm/gfx.cpp | |
parent | 41df21ed6b898286759510c9b5239213b48abf41 (diff) | |
download | scummvm-rg350-07df5bd181efe00c6a7341bd3fdc74239080b057.tar.gz scummvm-rg350-07df5bd181efe00c6a7341bd3fdc74239080b057.tar.bz2 scummvm-rg350-07df5bd181efe00c6a7341bd3fdc74239080b057.zip |
cleanup / minor tweak
svn-id: r7890
Diffstat (limited to 'scumm/gfx.cpp')
-rw-r--r-- | scumm/gfx.cpp | 74 |
1 files changed, 38 insertions, 36 deletions
diff --git a/scumm/gfx.cpp b/scumm/gfx.cpp index f59dfae6bf..70fa66f8ae 100644 --- a/scumm/gfx.cpp +++ b/scumm/gfx.cpp @@ -2355,7 +2355,9 @@ void Scumm::actorFollowCamera(int act) { #pragma mark - void Scumm::fadeIn(int effect) { + updatePalette(); + switch (effect) { case 1: case 2: @@ -2389,48 +2391,48 @@ void Scumm::fadeIn(int effect) { void Scumm::fadeOut(int effect) { VirtScreen *vs; - updatePalette(); - setDirtyRange(0, 0, 0); if (!(_features & GF_AFTER_V7)) camera._last.x = camera._cur.x; - if (!_screenEffectFlag) - return; - _screenEffectFlag = false; - - if (effect == 0) - return; + if (_screenEffectFlag && effect != 0) { + + // Fill screen 0 with black + vs = &virtscr[0]; + memset(vs->screenPtr + vs->xstart, 0, vs->size); + + // Fade to black with the specified effect, if any. + switch (effect) { + case 1: + case 2: + case 3: + case 4: + transitionEffect(effect - 1); + break; + case 128: + unkScreenEffect6(); + break; + case 129: + // Just blit screen 0 to the display (i.e. display will be black) + setDirtyRange(0, 0, vs->height); + updateDirtyScreen(0); + break; + case 134: + dissolveEffect(1, 1); + break; + case 135: + unkScreenEffect5(1); + break; + default: + warning("fadeOut: default case %d", effect); + } + } - // Fill screen 0 with black - vs = &virtscr[0]; - memset(vs->screenPtr + vs->xstart, 0, vs->size); + // Update the palette at the end (once we faded to black) to avoid + // some nasty effects when the palette is changed + updatePalette(); - // Fade to black with the specified effect, if any. - switch (effect) { - case 1: - case 2: - case 3: - case 4: - transitionEffect(effect - 1); - break; - case 128: - unkScreenEffect6(); - break; - case 129: - // Just blit screen 0 to the display (i.e. display will be black) - setDirtyRange(0, 0, vs->height); - updateDirtyScreen(0); - break; - case 134: - dissolveEffect(1, 1); - break; - case 135: - unkScreenEffect5(1); - break; - default: - warning("fadeOut: default case %d", effect); - } + _screenEffectFlag = false; } /* Transition effect. There are four different effects possible, |