aboutsummaryrefslogtreecommitdiff
path: root/engines/supernova/screen.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'engines/supernova/screen.cpp')
-rw-r--r--engines/supernova/screen.cpp12
1 files changed, 12 insertions, 0 deletions
diff --git a/engines/supernova/screen.cpp b/engines/supernova/screen.cpp
index 7dc04b0c82..8aacbe83b0 100644
--- a/engines/supernova/screen.cpp
+++ b/engines/supernova/screen.cpp
@@ -107,6 +107,7 @@ Marquee::Marquee(Screen *screen, MarqueeId id, const char *text)
, _textBegin(text)
, _delay(0)
, _loop(false)
+ , _oldColor(nullptr)
, _screen(screen) {
if (_screen->_vm->_MSPart == 1) {
_color = kColorLightBlue;
@@ -117,6 +118,10 @@ Marquee::Marquee(Screen *screen, MarqueeId id, const char *text)
_y = 1;
}
} else if (_screen->_vm->_MSPart == 2) {
+ byte purple[3] = {0x9b, 0x00, 0xfb};
+ _oldColor = new byte[3];
+ _screen->_vm->_system->getPaletteManager()->grabPalette(_oldColor, kColorPurple, 1);
+ _screen->_vm->_system->getPaletteManager()->setPalette(purple, kColorPurple, 1);
_color = kColorPurple;
if (id == kMarqueeIntro) {
_y = 191;
@@ -133,6 +138,13 @@ Marquee::Marquee(Screen *screen, MarqueeId id, const char *text)
_screen->_textColor = _color;
}
+Marquee::~Marquee() {
+ if (_screen->_vm->_MSPart == 2) {
+ _screen->_vm->_system->getPaletteManager()->setPalette(_oldColor, kColorPurple, 1);
+ delete _oldColor;
+ }
+}
+
void Marquee::clearText() {
_screen->renderBox(_x, _y - 1, _textWidth + 1, 9, kColorBlack);
}