diff options
-rw-r--r-- | engines/agos/charset.cpp | 7 | ||||
-rw-r--r-- | engines/agos/window.cpp | 5 |
2 files changed, 10 insertions, 2 deletions
diff --git a/engines/agos/charset.cpp b/engines/agos/charset.cpp index c326b3ba0c..56b442dcee 100644 --- a/engines/agos/charset.cpp +++ b/engines/agos/charset.cpp @@ -383,8 +383,13 @@ void AGOSEngine::showmessage_print_char(byte chr) { } void AGOSEngine::openTextWindow() { - if (_textWindow) + if (_textWindow) { + if (getGameType() == GType_ELVIRA1 || getGameType() == GType_ELVIRA2 || getGameType() == GType_WW) { + if (_textWindow->flags & 0x80) + clearWindow(_textWindow); + } return; + } if (getGameType() == GType_FF || getGameType() == GType_PP) _textWindow = openWindow(64, 96, 384, 172, 1, 0, 15); diff --git a/engines/agos/window.cpp b/engines/agos/window.cpp index 9bdec84b74..eda2b9d9db 100644 --- a/engines/agos/window.cpp +++ b/engines/agos/window.cpp @@ -46,6 +46,9 @@ WindowBlock *AGOSEngine::openWindow(uint x, uint y, uint w, uint h, uint flags, while (window->mode != 0) window++; + if (getGameType() == GType_ELVIRA1 && y >= 133) + textColor += 16; + window->mode = 2; window->x = x; window->y = y; @@ -60,7 +63,7 @@ WindowBlock *AGOSEngine::openWindow(uint x, uint y, uint w, uint h, uint flags, window->textMaxLength = window->width * 8 / 6; // characters are 6 pixels window->scrollY = 0; - if (getGameType() == GType_ELVIRA1) + if (getGameType() == GType_ELVIRA1 || getGameType() == GType_ELVIRA2 || getGameType() == GType_WW) clearWindow(window); return window; |