aboutsummaryrefslogtreecommitdiff
path: root/engines/glk
diff options
context:
space:
mode:
authorPaul Gilbert2019-01-31 21:54:13 -0800
committerPaul Gilbert2019-01-31 21:54:34 -0800
commit688db9394c1ba43c7d48d52ebba5b7b467f8186c (patch)
treea114455d71147e4fa335140f0591f8b489809d7a /engines/glk
parent69f91fafe40eb492230bfd61d16e2dbcd7286137 (diff)
downloadscummvm-rg350-688db9394c1ba43c7d48d52ebba5b7b467f8186c.tar.gz
scummvm-rg350-688db9394c1ba43c7d48d52ebba5b7b467f8186c.tar.bz2
scummvm-rg350-688db9394c1ba43c7d48d52ebba5b7b467f8186c.zip
GLK: FROTZ: Fix writing transparently to header in Zork Zero
Diffstat (limited to 'engines/glk')
-rw-r--r--engines/glk/frotz/screen.cpp7
-rw-r--r--engines/glk/windows.cpp10
2 files changed, 13 insertions, 4 deletions
diff --git a/engines/glk/frotz/screen.cpp b/engines/glk/frotz/screen.cpp
index fc1ef27c6a..d62c0dc68d 100644
--- a/engines/glk/frotz/screen.cpp
+++ b/engines/glk/frotz/screen.cpp
@@ -66,9 +66,14 @@ void FrotzScreen::loadVersion6Fonts(Common::Archive *archive) {
pi._lineSeparation = 0;
g_vm->_defaultForeground = 0;
- g_vm->_defaultBackground = g_system->getScreenFormat().RGBToColor(0xff, 0xff, 0xff);
+ g_vm->_defaultBackground = zcolor_Transparent;
g_conf->_tMarginX = 3;
+ for (uint idx = 0; idx < style_NUMSTYLES; ++idx) {
+ g_conf->_tStyles[idx].bg = g_conf->_tStylesDefault[idx].bg = zcolor_Transparent;
+ g_conf->_gStyles[idx].bg = g_conf->_gStylesDefault[idx].bg = zcolor_Transparent;
+ }
+
_fonts.resize(8);
// Load up the 8x8 Infocom font
diff --git a/engines/glk/windows.cpp b/engines/glk/windows.cpp
index ff3a57b980..020b68f66d 100644
--- a/engines/glk/windows.cpp
+++ b/engines/glk/windows.cpp
@@ -602,9 +602,13 @@ void Window::requestLineEventUni(uint32 *buf, uint maxlen, uint initlen) {
void Window::redraw() {
if (Windows::_forceRedraw) {
- uint color = Windows::_overrideBgSet ? g_conf->_windowColor : _bgColor;
- int y0 = _yAdj ? _bbox.top - _yAdj : _bbox.top;
- g_vm->_screen->fillRect(Rect(_bbox.left, y0, _bbox.right, _bbox.bottom), color);
+ PairWindow *parent = dynamic_cast<PairWindow *>(_parent);
+
+ if (!parent || parent->_dir != winmethod_Arbitrary) {
+ uint color = Windows::_overrideBgSet ? g_conf->_windowColor : _bgColor;
+ int y0 = _yAdj ? _bbox.top - _yAdj : _bbox.top;
+ g_vm->_screen->fillRect(Rect(_bbox.left, y0, _bbox.right, _bbox.bottom), color);
+ }
}
}