aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTravis Howell2009-03-01 07:14:13 +0000
committerTravis Howell2009-03-01 07:14:13 +0000
commitb08c22b283fa2df5d67a04c09fa436370934174c (patch)
treeb6284939074bf5dd2668b3c12e08a069b8d692bf
parent3571da7a94a4eb00cd6f793fc190c3164e5dd5b0 (diff)
downloadscummvm-rg350-b08c22b283fa2df5d67a04c09fa436370934174c.tar.gz
scummvm-rg350-b08c22b283fa2df5d67a04c09fa436370934174c.tar.bz2
scummvm-rg350-b08c22b283fa2df5d67a04c09fa436370934174c.zip
Fix bottom palette in AtariST version of Elvira 2.
svn-id: r39014
-rw-r--r--engines/agos/gfx.cpp3
-rw-r--r--engines/agos/vga.cpp33
2 files changed, 36 insertions, 0 deletions
diff --git a/engines/agos/gfx.cpp b/engines/agos/gfx.cpp
index fa33c7faf4..95abbc0425 100644
--- a/engines/agos/gfx.cpp
+++ b/engines/agos/gfx.cpp
@@ -938,6 +938,9 @@ void AGOSEngine::drawImage(VC10_state *state) {
if (getGameType() == GType_ELVIRA2 || getGameType() == GType_WW)
state->palette = state->surf_addr[0] & 0xF0;
+ if (getGameType() == GType_ELVIRA2 && getPlatform() == Common::kPlatformAtariST && yoffs > 133)
+ state->palette = 208;
+
if (_backFlag == 1) {
drawBackGroundImage(state);
} else {
diff --git a/engines/agos/vga.cpp b/engines/agos/vga.cpp
index d04c9aa56d..2ad09fb430 100644
--- a/engines/agos/vga.cpp
+++ b/engines/agos/vga.cpp
@@ -842,6 +842,25 @@ void AGOSEngine::vc21_endRepeat() {
}
}
+static const uint8 iconPalette[64] = {
+ 0x00, 0x00, 0x00,
+ 0x77, 0x77, 0x55,
+ 0x55, 0x00, 0x00,
+ 0x77, 0x00, 0x00,
+ 0x22, 0x00, 0x00,
+ 0x00, 0x11, 0x00,
+ 0x11, 0x22, 0x11,
+ 0x22, 0x33, 0x22,
+ 0x44, 0x55, 0x44,
+ 0x33, 0x44, 0x00,
+ 0x11, 0x33, 0x00,
+ 0x00, 0x11, 0x44,
+ 0x77, 0x44, 0x00,
+ 0x66, 0x22, 0x00,
+ 0x00, 0x22, 0x66,
+ 0x77, 0x55, 0x00,
+};
+
void AGOSEngine::vc22_setPaletteOld() {
byte *offs, *palptr, *src;
uint16 b, num;
@@ -879,6 +898,20 @@ void AGOSEngine::vc22_setPaletteOld() {
}
}
+ if (getGameType() == GType_ELVIRA2 && getPlatform() == Common::kPlatformAtariST) {
+ // Custom palette used for icon area
+ palptr = &_displayPalette[13 * 64];
+ for (uint8 c = 0; c < 16; c++) {
+ palptr[0] = iconPalette[c * 3 + 0] * 2;
+ palptr[1] = iconPalette[c * 3 + 1] * 2;
+ palptr[2] = iconPalette[c * 3 + 2] * 2;
+ palptr[3] = 0;
+
+ palptr += 4;
+ };
+ }
+
+ palptr = _displayPalette;
offs = _curVgaFile1 + READ_BE_UINT16(_curVgaFile1 + 6);
src = offs + b * 32;