aboutsummaryrefslogtreecommitdiff
path: root/engines/kyra/kyra_v2.cpp
diff options
context:
space:
mode:
authorJohannes Schickel2008-03-28 01:28:02 +0000
committerJohannes Schickel2008-03-28 01:28:02 +0000
commitf7d14259c9fa2f366b71118af03b249e6620c716 (patch)
treea4957ded8d19cf16938f34e9b7518a2c94595b54 /engines/kyra/kyra_v2.cpp
parent5fd6af307195d5a04f18a9d00f8f03456ed6e5f9 (diff)
downloadscummvm-rg350-f7d14259c9fa2f366b71118af03b249e6620c716.tar.gz
scummvm-rg350-f7d14259c9fa2f366b71118af03b249e6620c716.tar.bz2
scummvm-rg350-f7d14259c9fa2f366b71118af03b249e6620c716.zip
Implemented command text fadeout.
svn-id: r31285
Diffstat (limited to 'engines/kyra/kyra_v2.cpp')
-rw-r--r--engines/kyra/kyra_v2.cpp31
1 files changed, 27 insertions, 4 deletions
diff --git a/engines/kyra/kyra_v2.cpp b/engines/kyra/kyra_v2.cpp
index 392ffc7406..4d8a3a4e35 100644
--- a/engines/kyra/kyra_v2.cpp
+++ b/engines/kyra/kyra_v2.cpp
@@ -601,7 +601,7 @@ void KyraEngine_v2::update() {
_timer->update();
updateItemAnimations();
updateInvWsa();
- //sub_1574C();
+ fadeMessagePalette();
_screen->updateScreen();
}
@@ -609,7 +609,7 @@ void KyraEngine_v2::updateWithText() {
updateInput();
updateMouse();
- //sub_157C();
+ fadeMessagePalette();
updateSpecialSceneScripts();
_timer->update();
updateItemAnimations();
@@ -1041,7 +1041,7 @@ void KyraEngine_v2::showMessage(const char *string, int16 palIndex) {
_screen->fillRect(0, 190, 319, 199, 0xCF);
if (string) {
- if (palIndex != -1 || _msgUnk1) {
+ if (palIndex != -1 || _fadeMessagePalette) {
palIndex *= 3;
memcpy(_messagePal, _screen->_currentPalette + palIndex, 3);
memmove(_screen->_currentPalette + 765, _screen->_currentPalette + palIndex, 3);
@@ -1054,7 +1054,7 @@ void KyraEngine_v2::showMessage(const char *string, int16 palIndex) {
setTimer1DelaySecs(7);
}
- _msgUnk1 = 0;
+ _fadeMessagePalette = false;
_screen->showMouse();
}
@@ -1086,6 +1086,29 @@ void KyraEngine_v2::updateCommandLineEx(int str1, int str2, int16 palIndex) {
showMessage((char*)_unkBuf500Bytes, palIndex);
}
+void KyraEngine_v2::fadeMessagePalette() {
+ if (!_fadeMessagePalette)
+ return;
+
+ bool updatePalette = false;
+ for (int i = 0; i < 3; ++i) {
+ if (_messagePal[i] >= 4) {
+ _messagePal[i] -= 4;
+ updatePalette = true;
+ } else if (_messagePal[i] != 0) {
+ _messagePal[i] = 0;
+ updatePalette = true;
+ }
+ }
+
+ if (updatePalette) {
+ memcpy(_screen->getPalette(0) + 765, _messagePal, 3);
+ _screen->setScreenPalette(_screen->getPalette(0));
+ } else {
+ _fadeMessagePalette = false;
+ }
+}
+
#pragma mark -
void KyraEngine_v2::loadMouseShapes() {