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 | |
parent | 41df21ed6b898286759510c9b5239213b48abf41 (diff) | |
download | scummvm-rg350-07df5bd181efe00c6a7341bd3fdc74239080b057.tar.gz scummvm-rg350-07df5bd181efe00c6a7341bd3fdc74239080b057.tar.bz2 scummvm-rg350-07df5bd181efe00c6a7341bd3fdc74239080b057.zip |
cleanup / minor tweak
svn-id: r7890
-rw-r--r-- | scumm/gfx.cpp | 74 | ||||
-rw-r--r-- | scumm/script_v5.cpp | 8 |
2 files changed, 42 insertions, 40 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, diff --git a/scumm/script_v5.cpp b/scumm/script_v5.cpp index bef146cf0c..c009caafc1 100644 --- a/scumm/script_v5.cpp +++ b/scumm/script_v5.cpp @@ -731,11 +731,11 @@ void Scumm_v5::o5_divide() { } void Scumm_v5::o5_doSentence() { - int a; + int verb; SentenceTab *st; - a = getVarOrDirectByte(0x80); - if (a == 0xFE) { + verb = getVarOrDirectByte(0x80); + if (verb == 0xFE) { _sentenceNum = 0; stopScript(VAR(VAR_SENTENCE_SCRIPT)); clearClickedStatus(); @@ -744,7 +744,7 @@ void Scumm_v5::o5_doSentence() { st = &_sentence[_sentenceNum++]; - st->verb = a; + st->verb = verb; st->objectA = getVarOrDirectWord(0x40); st->objectB = getVarOrDirectWord(0x20); st->preposition = (st->objectB != 0); |