diff options
author | Jonathan Gray | 2003-04-30 10:27:06 +0000 |
---|---|---|
committer | Jonathan Gray | 2003-04-30 10:27:06 +0000 |
commit | e042792bb9731a26fd0862a29de12d35edd48fdb (patch) | |
tree | 1804b614a6b055a6ce74d50f3f27e9d62fb44ab2 /scumm | |
parent | 0bf32a89f348f533bd42495e5fea3e0e6ffc16c5 (diff) | |
download | scummvm-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')
-rw-r--r-- | scumm/charset.cpp | 26 |
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; } |