diff options
-rw-r--r-- | scumm/gfx.cpp | 9 | ||||
-rw-r--r-- | scumm/scumm.h | 1 | ||||
-rw-r--r-- | scumm/scummvm.cpp | 1 | ||||
-rw-r--r-- | scumm/vars.cpp | 2 |
4 files changed, 8 insertions, 5 deletions
diff --git a/scumm/gfx.cpp b/scumm/gfx.cpp index cea2e593ff..215a9047bb 100644 --- a/scumm/gfx.cpp +++ b/scumm/gfx.cpp @@ -611,6 +611,9 @@ void Scumm::drawFlashlight() { _flashlight.x = x - _flashlight.w / 2 - _screenStartStrip * 8; _flashlight.y = y - _flashlight.h / 2; + if (_gameId == GID_LOOM || _gameId == GID_LOOM256) + _flashlight.y -= 12; + // Clip the flashlight at the borders if (_flashlight.x < 0) _flashlight.x = 0; @@ -737,6 +740,7 @@ void Scumm::restoreBG(int left, int top, int right, int bottom, byte backColor) VirtScreen *vs; int topline, height, width; byte *backbuff, *bgbak; + bool lightsOn; if (left == right || top == bottom) return; @@ -769,7 +773,10 @@ void Scumm::restoreBG(int left, int top, int right, int bottom, byte backColor) height = bottom - top; width = right - left; - if (vs->alloctwobuffers && _currentRoom != 0 /*&& _vars[VAR_V5_DRAWFLAGS]&2 */ ) { + // Check whether lights are turned on or not + lightsOn = (_features & GF_AFTER_V6) || (vs->number != 0) || (_vars[VAR_CURRENT_LIGHTS] & LIGHTMODE_screen); + + if (vs->alloctwobuffers && _currentRoom != 0 && lightsOn ) { blit(backbuff, bgbak, width, height); if (vs->number == 0 && _charset->_hasMask && height) { byte *mask; diff --git a/scumm/scumm.h b/scumm/scumm.h index 1fe9340539..f90860cefa 100644 --- a/scumm/scumm.h +++ b/scumm/scumm.h @@ -1111,7 +1111,6 @@ public: byte VAR_NEW_ROOM; byte VAR_VERSION; - byte VAR_V5_DRAWFLAGS; byte VAR_MI1_TIMER; byte VAR_V5_TALK_STRING_Y; byte VAR_V5_CHARFLAG; diff --git a/scumm/scummvm.cpp b/scumm/scummvm.cpp index 117c4e89ed..6ea7df9b2a 100644 --- a/scumm/scummvm.cpp +++ b/scumm/scummvm.cpp @@ -694,7 +694,6 @@ void Scumm::initScummVars() { if (_features & GF_AFTER_V6) _vars[VAR_V6_EMSSPACE] = 10000; - _vars[VAR_V5_DRAWFLAGS] = 11; _vars[VAR_59] = 3; // Setup light diff --git a/scumm/vars.cpp b/scumm/vars.cpp index 07ec86dd97..5c9f3cf236 100644 --- a/scumm/vars.cpp +++ b/scumm/vars.cpp @@ -94,7 +94,6 @@ void Scumm::setupScummVars() { VAR_NEW_ROOM = 72; // Zak256 Note: Cashcard for Leslie VAR_VERSION = 75; - VAR_V5_DRAWFLAGS = 9; VAR_MI1_TIMER = 14; VAR_V5_TALK_STRING_Y = 54; @@ -199,7 +198,6 @@ void Scumm_v7::setupScummVars() { VAR_VIDEONAME = 123; VAR_CUSTOMSCALETABLE = 131; - //VAR_V5_DRAWFLAGS = 9; VAR_MI1_TIMER = 14; VAR_V5_TALK_STRING_Y = 54; VAR_V5_CHARFLAG = 60; |