diff options
author | Florian Kagerer | 2009-09-03 21:03:10 +0000 |
---|---|---|
committer | Florian Kagerer | 2009-09-03 21:03:10 +0000 |
commit | 1dfb5c2b30be6778a5e17ca9b5f56f9ba7702a8e (patch) | |
tree | 2790fe8573b122db50840d9feb68901368b2802f /engines/kyra/scene_lol.cpp | |
parent | ebe1b94eb1561b566124b7dcbb73cf3b0a659b33 (diff) | |
download | scummvm-rg350-1dfb5c2b30be6778a5e17ca9b5f56f9ba7702a8e.tar.gz scummvm-rg350-1dfb5c2b30be6778a5e17ca9b5f56f9ba7702a8e.tar.bz2 scummvm-rg350-1dfb5c2b30be6778a5e17ca9b5f56f9ba7702a8e.zip |
LOL: some more work on the floppy version (drawing code is still broken)
svn-id: r43923
Diffstat (limited to 'engines/kyra/scene_lol.cpp')
-rw-r--r-- | engines/kyra/scene_lol.cpp | 25 |
1 files changed, 19 insertions, 6 deletions
diff --git a/engines/kyra/scene_lol.cpp b/engines/kyra/scene_lol.cpp index 3dadeb91c8..bc1f11a492 100644 --- a/engines/kyra/scene_lol.cpp +++ b/engines/kyra/scene_lol.cpp @@ -440,21 +440,34 @@ void LoLEngine::loadLevelGraphics(const char *file, int specialColor, int weight _loadSuppFilesFlag = 0; generateBrightnessPalette(_screen->getPalette(0), _screen->getPalette(1), _brightness, _lampEffect); - char tname[13]; - snprintf(tname, sizeof(tname), "LEVEL%.02d.TLC", _currentLevel); - Common::SeekableReadStream *s = _res->createReadStream(tname); - if (s) { + if (_flags.isTalkie) { + char tname[13]; + snprintf(tname, sizeof(tname), "LEVEL%.02d.TLC", _currentLevel); + Common::SeekableReadStream *s = _res->createReadStream(tname); s->read(_trueLightTable1, 256); s->read(_trueLightTable2, 5120); delete s; } else { - memset(_trueLightTable1, 0, 256); - memset(_trueLightTable2, 0, 5120); + loadFxTables(); } _loadSuppFilesFlag = 1; } +void LoLEngine::loadFxTables() { + if (_flags.isTalkie || _loadSuppFilesFlag) + return; + + Palette tpal(768); + _screen->loadPalette("fxpal.col", tpal); + _screen->loadBitmap("fxpal.shp", 3, 3, 0); + const uint8 *v = _screen->getCPagePtr(2) + 11; + + _screen->generateTruelightTables(v, 20, tpal, _screen->getPalette(1), _trueLightTable1, _trueLightTable2, 70); + + _loadSuppFilesFlag = 1; +} + void LoLEngine::resetItems(int flag) { for (int i = 0; i < 1024; i++) { _levelBlockProperties[i].direction = 5; |