diff options
Diffstat (limited to 'engines/simon/items.cpp')
-rw-r--r-- | engines/simon/items.cpp | 19 |
1 files changed, 18 insertions, 1 deletions
diff --git a/engines/simon/items.cpp b/engines/simon/items.cpp index 8aa4b74e4a..e2ad70f774 100644 --- a/engines/simon/items.cpp +++ b/engines/simon/items.cpp @@ -1618,7 +1618,24 @@ void SimonEngine::o1_loadStrings() { void SimonEngine::o1_specialFade() { // 187: fade to black - fadeToBlack(); + uint i; + + memcpy(_videoBuf1, _paletteBackup, 1024); + + i = NUM_PALETTE_FADEOUT; + do { + palette_fadeout((uint32 *)_videoBuf1, 32); + palette_fadeout((uint32 *)_videoBuf1 + 32 + 16, 144); + palette_fadeout((uint32 *)_videoBuf1 + 32 + 16 + 144 + 16, 48); + + _system->setPalette(_videoBuf1, 0, 256); + if (_fade) + _system->updateScreen(); + delay(5); + } while (--i); + + memcpy(_paletteBackup, _videoBuf1, 1024); + memcpy(_palette, _videoBuf1, 1024); } // ----------------------------------------------------------------------- |