diff options
Diffstat (limited to 'engines')
-rw-r--r-- | engines/queen/display.cpp | 15 | ||||
-rw-r--r-- | engines/queen/display.h | 2 |
2 files changed, 17 insertions, 0 deletions
diff --git a/engines/queen/display.cpp b/engines/queen/display.cpp index ef059bb8af..7d74c994b8 100644 --- a/engines/queen/display.cpp +++ b/engines/queen/display.cpp @@ -534,6 +534,13 @@ void Display::palCustomLightsOn(uint16 roomNum) { _pal.scrollable = true; } +void Display::palSetPanelColor(uint8 color, uint8 r, uint8 g, uint8 b) { + color -= 144; + _pal.panel[color * 3] = r; + _pal.panel[color * 3 + 1] = g; + _pal.panel[color * 3 + 2] = b; +} + int Display::getNumColorsForRoom(uint16 room) const { int n = 224; if (room >= 114 && room <= 125) { @@ -635,6 +642,14 @@ void Display::setupPanel() { if (_vm->resource()->getPlatform() == Common::kPlatformAmiga) { decodeLBM(data, dataSize, _panelBuf, PANEL_W, &panelWidth, &panelHeight, _pal.panel, 0, 32, 144); + // setup special colors + // XXX set correct color values + palSetPanelColor(INK_BG_PANEL, 255, 255, 255); + palSetPanelColor(INK_JOURNAL, 255, 255, 255); + palSetPanelColor(INK_PINNACLE_ROOM, 255, 255, 255); + palSetPanelColor(INK_CMD_SELECT, 255, 255, 255); + palSetPanelColor(INK_CMD_NORMAL, 255, 255, 255); + palSetPanelColor(INK_CMD_LOCK, 255, 255, 255); } else { WRITE_LE_UINT16(data + 14, PANEL_H - 10); decodePCX(data, dataSize, _panelBuf + PANEL_W * 10, PANEL_W, &panelWidth, &panelHeight, _pal.panel, 144, 256); diff --git a/engines/queen/display.h b/engines/queen/display.h index 62a17fc993..1cba119630 100644 --- a/engines/queen/display.h +++ b/engines/queen/display.h @@ -84,6 +84,8 @@ public: void palCustomLightsOff(uint16 roomNum); void palCustomLightsOn(uint16 roomNum); + void palSetPanelColor(uint8 color, uint8 r, uint8 g, uint8 b); + //! mark all palette entries as dirty void palSetAllDirty() { _pal.dirtyMin = 0; _pal.dirtyMax = 255; } |