aboutsummaryrefslogtreecommitdiff
path: root/engines/supernova2/screen.cpp
diff options
context:
space:
mode:
authorJaromir Wysoglad2019-06-17 21:02:59 +0200
committerThierry Crozat2019-07-28 15:09:14 +0100
commit76142e2e7dddcc41906bdddc1138d452b15de3bc (patch)
tree01477bb35a42a98b17256cd46f10ac6d9e627b7d /engines/supernova2/screen.cpp
parent800621cb8ee04b6c6148cdde1de182e2df7c7b49 (diff)
downloadscummvm-rg350-76142e2e7dddcc41906bdddc1138d452b15de3bc.tar.gz
scummvm-rg350-76142e2e7dddcc41906bdddc1138d452b15de3bc.tar.bz2
scummvm-rg350-76142e2e7dddcc41906bdddc1138d452b15de3bc.zip
SUPERNOVA2: Add outro
Diffstat (limited to 'engines/supernova2/screen.cpp')
-rw-r--r--engines/supernova2/screen.cpp25
1 files changed, 18 insertions, 7 deletions
diff --git a/engines/supernova2/screen.cpp b/engines/supernova2/screen.cpp
index 91ec4051ac..82e38af091 100644
--- a/engines/supernova2/screen.cpp
+++ b/engines/supernova2/screen.cpp
@@ -111,7 +111,7 @@ Marquee::Marquee(Screen *screen, MarqueeId id, const char *text)
_y = 191;
_loop = true;
} else if (id == kMarqueeOutro) {
- _y = 1;
+ _y = 191;
}
_textWidth = Screen::textWidth(_text);
@@ -125,10 +125,18 @@ void Marquee::clearText() {
_screen->renderBox(_x, _y - 1, _textWidth + 1, 9, kColorBlack);
}
-void Marquee::renderCharacter() {
+void Marquee::reset() {
+ _text = _textBegin;
+ clearText();
+ _textWidth = Screen::textWidth(_text);
+ _x = kScreenWidth / 2 - _textWidth / 2;
+ _screen->_textCursorX = _x;
+}
+
+bool Marquee::renderCharacter() {
if (_delay != 0) {
_delay--;
- return;
+ return true;
}
switch (*_text) {
@@ -141,6 +149,8 @@ void Marquee::renderCharacter() {
_x = kScreenWidth / 2 - _textWidth / 2;
_screen->_textCursorX = _x;
}
+ else
+ return false;
break;
case '\0':
clearText();
@@ -165,6 +175,7 @@ void Marquee::renderCharacter() {
_delay = 1;
break;
}
+ return true;
}
Screen::Screen(Supernova2Engine *vm, ResourceManager *resMan)
@@ -591,8 +602,8 @@ void Screen::paletteBrightness() {
_vm->_system->getPaletteManager()->setPalette(palette, 0, 255);
}
-void Screen::paletteFadeOut() {
- while (_guiBrightness > 10) {
+void Screen::paletteFadeOut(int minBrightness) {
+ while (_guiBrightness > minBrightness + 10) {
_guiBrightness -= 10;
if (_viewportBrightness > _guiBrightness)
_viewportBrightness = _guiBrightness;
@@ -600,8 +611,8 @@ void Screen::paletteFadeOut() {
_vm->_system->updateScreen();
_vm->_system->delayMillis(_vm->_delay);
}
- _guiBrightness = 0;
- _viewportBrightness = 0;
+ _guiBrightness = minBrightness;
+ _viewportBrightness = minBrightness;
paletteBrightness();
_vm->_system->updateScreen();
}