aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--engines/agos/charset.cpp7
-rw-r--r--engines/agos/window.cpp5
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;