aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--scumm/gfx.cpp9
-rw-r--r--scumm/scumm.h1
-rw-r--r--scumm/scummvm.cpp1
-rw-r--r--scumm/vars.cpp2
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;