aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--scumm/charset.cpp11
-rw-r--r--scumm/charset.h1
2 files changed, 6 insertions, 6 deletions
diff --git a/scumm/charset.cpp b/scumm/charset.cpp
index 59b71028ec..0c76eb799a 100644
--- a/scumm/charset.cpp
+++ b/scumm/charset.cpp
@@ -927,6 +927,7 @@ int CharsetRendererV3::getCharWidth(byte chr) {
void CharsetRendererV3::setColor(byte color)
{
_color = color;
+ _shadowColor = (_vm->_gameId == GID_ZAK256) ? 8 : 0;
if (_vm->_gameId == GID_ZAK256) {
_dropShadow = ((_color & 0x80) != 0);
_color &= 0x7f;
@@ -953,8 +954,6 @@ void CharsetRendererV3::printChar(int chr) {
if (chr == '@')
return;
- _vm->_charsetColorMap[1] = _color;
-
if (_firstChar) {
_str.left = _left;
_str.top = _top;
@@ -1186,11 +1185,11 @@ void CharsetRendererCommon::drawBits1(VirtScreen *vs, byte *dst, const byte *src
bits = *src++;
if ((bits & revBitMask[x % 8]) && y + drawTop >= 0) {
if (_dropShadow) {
- *(dst + 1) = 0;
- *(dst + _vm->_screenWidth) = 0;
- *(dst + _vm->_screenWidth + 1) = 0;
+ *(dst + 1) = _shadowColor;
+ *(dst + _vm->_screenWidth) = _shadowColor;
+ *(dst + _vm->_screenWidth + 1) = _shadowColor;
}
- *dst = _vm->_charsetColorMap[1];
+ *dst = _color;
if (useMask) {
mask[maskpos] |= maskmask;
if (_dropShadow) {
diff --git a/scumm/charset.h b/scumm/charset.h
index 21acf3497d..e464ede692 100644
--- a/scumm/charset.h
+++ b/scumm/charset.h
@@ -39,6 +39,7 @@ public:
protected:
byte _color;
+ byte _shadowColor;
bool _dropShadow;
public: