aboutsummaryrefslogtreecommitdiff
path: root/scumm/charset.cpp
diff options
context:
space:
mode:
authorJonathan Gray2003-04-30 10:27:06 +0000
committerJonathan Gray2003-04-30 10:27:06 +0000
commite042792bb9731a26fd0862a29de12d35edd48fdb (patch)
tree1804b614a6b055a6ce74d50f3f27e9d62fb44ab2 /scumm/charset.cpp
parent0bf32a89f348f533bd42495e5fea3e0e6ffc16c5 (diff)
downloadscummvm-rg350-e042792bb9731a26fd0862a29de12d35edd48fdb.tar.gz
scummvm-rg350-e042792bb9731a26fd0862a29de12d35edd48fdb.tar.bz2
scummvm-rg350-e042792bb9731a26fd0862a29de12d35edd48fdb.zip
patch #730034 from erik, EGA LOOM: Small text shadow update
svn-id: r7213
Diffstat (limited to 'scumm/charset.cpp')
-rw-r--r--scumm/charset.cpp26
1 files changed, 14 insertions, 12 deletions
diff --git a/scumm/charset.cpp b/scumm/charset.cpp
index 91e258b0a0..6677e60077 100644
--- a/scumm/charset.cpp
+++ b/scumm/charset.cpp
@@ -225,23 +225,24 @@ void CharsetRendererOld256::printChar(int chr) {
bit = 0x80;
}
if (buffer & bit) {
- byte *dst = dest_ptr + y * _vm->_realWidth + x;
-
- if (_dropShadow)
- *(dst + _vm->_realWidth + 1) = 0;
- *dst = _color;
+ if (_dropShadow) {
+ *(dest_ptr + x + 1) = 0;
+ *(dest_ptr + x + _vm->_realWidth) = 0;
+ *(dest_ptr + x + _vm->_realWidth + 1) = 0;
+ }
+ *(dest_ptr + x) = _color;
if (useMask) {
mask_ptr[maskpos] |= maskmask;
if (_dropShadow) {
- int spos = maskpos + _vm->gdi._numStrips;
- byte sbit = maskmask >> 1;
-
- if (sbit == 0) {
- sbit = 0x80;
- spos++;
+ mask_ptr[maskpos + _vm->gdi._numStrips] |= maskmask;
+ if (maskmask == 1) {
+ mask_ptr[maskpos + 1] |= 0x80;
+ mask_ptr[maskpos + _vm->gdi._numStrips + 1] |= 0x80;
+ } else {
+ mask_ptr[maskpos] |= (maskmask >> 1);
+ mask_ptr[maskpos + _vm->gdi._numStrips] |= (maskmask >> 1);
}
- mask_ptr[spos] |= sbit;
}
}
}
@@ -251,6 +252,7 @@ void CharsetRendererOld256::printChar(int chr) {
maskpos++;
}
}
+ dest_ptr += _vm->_realWidth;
mask_ptr += _vm->gdi._numStrips;
}