aboutsummaryrefslogtreecommitdiff
path: root/engines/touche/resource.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'engines/touche/resource.cpp')
-rw-r--r--engines/touche/resource.cpp16
1 files changed, 15 insertions, 1 deletions
diff --git a/engines/touche/resource.cpp b/engines/touche/resource.cpp
index 5850762848..f0edfcf5f6 100644
--- a/engines/touche/resource.cpp
+++ b/engines/touche/resource.cpp
@@ -409,6 +409,8 @@ void ToucheEngine::res_loadRoom(int num) {
_currentRoomNum = num;
_updatedRoomAreasTable[0] = 1;
+ debug(0, "Setting up room %d", num);
+
const uint32 offsInfo = res_getDataOffset(kResourceTypeRoomInfo, num);
_fData.seek(offsInfo);
_fData.skip(2);
@@ -423,9 +425,21 @@ void ToucheEngine::res_loadRoom(int num) {
_fData.seek(offsImage);
res_loadBackdrop();
- if (_flagsTable[115] == 0) {
+ bool updateScreenPalette = _flagsTable[115] == 0;
+
+ // Workaround to what appears to be a scripting bug. Scripts 27 and 100 triggers
+ // a palette fading just after loading a room. Catch this, so that only *one*
+ // palette refresh occurs.
+ if ((_currentEpisodeNum == 27 && num == 34) || (_currentEpisodeNum == 100 && num == 1)) {
+ updateScreenPalette = false;
+ }
+
+ if (updateScreenPalette) {
updatePalette();
+ } else {
+ setPalette(0, 255, 0, 0, 0);
}
+
_fullRedrawCounter = 1;
_roomNeedRedraw = true;