aboutsummaryrefslogtreecommitdiff
path: root/scumm/gfx.cpp
diff options
context:
space:
mode:
authorMax Horn2003-05-24 16:11:47 +0000
committerMax Horn2003-05-24 16:11:47 +0000
commit07df5bd181efe00c6a7341bd3fdc74239080b057 (patch)
treebf6d2cecc8de29794bb2110d195a5a538b43835e /scumm/gfx.cpp
parent41df21ed6b898286759510c9b5239213b48abf41 (diff)
downloadscummvm-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.cpp74
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,