diff options
author | Paul Gilbert | 2007-10-28 04:27:18 +0000 |
---|---|---|
committer | Paul Gilbert | 2007-10-28 04:27:18 +0000 |
commit | cb302b244b303a378528c8b24bbfe5f349062541 (patch) | |
tree | 2f555004a1f746ca8fd00355e8ceb3fa327b5eac | |
parent | 3dd40b390cdb68c62e875e8abbe2e138984bfeb0 (diff) | |
download | scummvm-rg350-cb302b244b303a378528c8b24bbfe5f349062541.tar.gz scummvm-rg350-cb302b244b303a378528c8b24bbfe5f349062541.tar.bz2 scummvm-rg350-cb302b244b303a378528c8b24bbfe5f349062541.zip |
Room fades now correctly fade out any active talk dialog
svn-id: r29277
-rw-r--r-- | engines/lure/room.cpp | 13 | ||||
-rw-r--r-- | engines/lure/screen.cpp | 5 |
2 files changed, 15 insertions, 3 deletions
diff --git a/engines/lure/room.cpp b/engines/lure/room.cpp index 41ec7569e2..782c4b53c7 100644 --- a/engines/lure/room.cpp +++ b/engines/lure/room.cpp @@ -498,7 +498,9 @@ void Room::setRoomNumber(uint16 newRoomNumber, bool showOverlay) { _descId = _roomData->descId; if (leaveFlag) { - _screen.paletteFadeOut(); + // Fade out all the colours except the high index 0FFh, which is used to show the + // disk cursor as a room changes + _screen.paletteFadeOut(GAME_COLOURS - 1); leaveRoom(); } @@ -516,7 +518,8 @@ void Room::setRoomNumber(uint16 newRoomNumber, bool showOverlay) { blockMerge(); // Generate the palette for the room that will be faded in - Palette p(MAIN_PALETTE_SIZE, NULL, RGB64); + //Palette p(MAIN_PALETTE_SIZE, NULL, RGB64); + Palette p(GAME_PALETTE_RESOURCE_ID); Palette tempPalette(paletteId); p.copyFrom(&tempPalette); res.insertPaletteSubset(p); @@ -543,7 +546,11 @@ void Room::setRoomNumber(uint16 newRoomNumber, bool showOverlay) { game.tick(); update(); _screen.update(); - _screen.paletteFadeIn(&p); + + if (leaveFlag) + _screen.paletteFadeIn(&p); + else + _screen.setPalette(&p); mouse.popCursor(); } diff --git a/engines/lure/screen.cpp b/engines/lure/screen.cpp index 552e609b84..64d63c9ea9 100644 --- a/engines/lure/screen.cpp +++ b/engines/lure/screen.cpp @@ -56,10 +56,15 @@ Screen::~Screen() { // Defaults the palette to an empty set void Screen::setPaletteEmpty(int numEntries) { + Palette emptyPalette(numEntries, NULL, RGB64); + _system.setPalette(emptyPalette.data(), 0, numEntries); + _palette->copyFrom(&emptyPalette); +/* delete _palette; _palette = new Palette(); _system.setPalette(_palette->data(), 0, numEntries); +*/ _system.updateScreen(); } |