aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--engines/agos/vga.cpp6
-rw-r--r--engines/agos/window.cpp13
2 files changed, 12 insertions, 7 deletions
diff --git a/engines/agos/vga.cpp b/engines/agos/vga.cpp
index eb2d1391ce..d89070cb23 100644
--- a/engines/agos/vga.cpp
+++ b/engines/agos/vga.cpp
@@ -1258,8 +1258,10 @@ void AGOSEngine::vc37_pokePalette() {
palptr[2] = ((color & 0x00f) >> 0) * 32;
palptr[3] = 0;
- _paletteFlag = 2;
- _vgaSpriteChanged++;
+ if (_lockWord & 0x20) {
+ _paletteFlag = 1;
+ _displayScreen++;
+ }
}
void AGOSEngine::vc38_ifVarNotZero() {
diff --git a/engines/agos/window.cpp b/engines/agos/window.cpp
index d3b6c1b8cd..1a37d59102 100644
--- a/engines/agos/window.cpp
+++ b/engines/agos/window.cpp
@@ -123,6 +123,10 @@ void AGOSEngine::colorWindow(WindowBlock *window) {
dst += _screenWidth;
}
} else {
+ dst = getFrontBuf() + _dxSurfacePitch * (window->y) + window->x * 8;
+ h = window->height * 8;
+ w = window->width * 8;
+
if (getGameType() == GType_ELVIRA2 && window->y == 146) {
if (window->fill_color == 1) {
_displayPalette[33 * 4 + 0] = 48 * 4;
@@ -134,12 +138,11 @@ void AGOSEngine::colorWindow(WindowBlock *window) {
_displayPalette[33 * 4 + 2] = 40 * 4;
}
- _paletteFlag = 2;
- }
+ dst -= _dxSurfacePitch;
+ h += 2;
- dst = getFrontBuf() + _dxSurfacePitch * window->y + window->x * 8;
- h = window->height * 8;
- w = window->width * 8;
+ _paletteFlag = 1;
+ }
uint8 color = window->fill_color;
if (getGameType() == GType_ELVIRA2 || getGameType() == GType_WW)