aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMax Horn2003-05-24 16:11:47 +0000
committerMax Horn2003-05-24 16:11:47 +0000
commit07df5bd181efe00c6a7341bd3fdc74239080b057 (patch)
treebf6d2cecc8de29794bb2110d195a5a538b43835e
parent41df21ed6b898286759510c9b5239213b48abf41 (diff)
downloadscummvm-rg350-07df5bd181efe00c6a7341bd3fdc74239080b057.tar.gz
scummvm-rg350-07df5bd181efe00c6a7341bd3fdc74239080b057.tar.bz2
scummvm-rg350-07df5bd181efe00c6a7341bd3fdc74239080b057.zip
cleanup / minor tweak
svn-id: r7890
-rw-r--r--scumm/gfx.cpp74
-rw-r--r--scumm/script_v5.cpp8
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);