diff options
author | Florian Kagerer | 2009-09-30 20:42:58 +0000 |
---|---|---|
committer | Florian Kagerer | 2009-09-30 20:42:58 +0000 |
commit | 94572773d0567151627e87fcd5f3cba8420321cb (patch) | |
tree | a02e4fe3bde70f435be951a3ecef6c49b462706d /engines/kyra/lol.cpp | |
parent | a5d1094daba6dd0f9df42d7b0307a05d78fdaa36 (diff) | |
download | scummvm-rg350-94572773d0567151627e87fcd5f3cba8420321cb.tar.gz scummvm-rg350-94572773d0567151627e87fcd5f3cba8420321cb.tar.bz2 scummvm-rg350-94572773d0567151627e87fcd5f3cba8420321cb.zip |
LOL/PC-98: - fix spell effect colors
- fix some font color glitches
svn-id: r44498
Diffstat (limited to 'engines/kyra/lol.cpp')
-rw-r--r-- | engines/kyra/lol.cpp | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/engines/kyra/lol.cpp b/engines/kyra/lol.cpp index 704413288e..c28ea6a35c 100644 --- a/engines/kyra/lol.cpp +++ b/engines/kyra/lol.cpp @@ -1754,10 +1754,22 @@ void LoLEngine::createGfxTables() { if (_flags.isTalkie || _loadSuppFilesFlag) return; + Palette tpal(256); if (_flags.use16ColorMode) { + static const uint8 colTbl[] = { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F }; + uint8 *p = _screen->getPalette(0).getData(); + + tpal.fill(0, 256, 0xff); + uint8 *d = tpal.getData(); + for (int i = 15; i >= 0; i--) { + d[colTbl[i] * 3 + 2] = p[i * 3 + 2]; + d[colTbl[i] * 3 + 1] = p[i * 3 + 1]; + d[colTbl[i] * 3] = p[i * 3]; + } + + _screen->generateTruelightTables(colTbl, 16, tpal, tpal, _trueLightTable1, _trueLightTable2, 80); _screen->loadPalette("lol.nol", _screen->getPalette(0)); } else { - Palette tpal(256); _screen->loadPalette("fxpal.col", tpal); _screen->loadBitmap("fxpal.shp", 3, 3, 0); const uint8 *shpPal = _screen->getPtrToShape(_screen->getCPagePtr(2), 0) + 11; |