aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--engines/lure/room.cpp13
-rw-r--r--engines/lure/screen.cpp5
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();
}