Ticket #8208: loom-text-shadow.diff

File loom-text-shadow.diff, 1.4 KB (added by eriktorbjorn, 18 years ago)

Patch against an April 29 CVS snapshot

  • scummvm/scumm/charset.cpp

    diff -ur ScummVM-cvs20030429/scummvm/scumm/charset.cpp ScummVM-cvs20030429+hack/scummvm/scumm/charset.cpp
    old new  
    225225                                bit = 0x80;
    226226                        }
    227227                        if (buffer & bit) {
    228                                 byte *dst = dest_ptr + y * _vm->_realWidth + x;
    229 
    230                                 if (_dropShadow)
    231                                         *(dst + _vm->_realWidth + 1) = 0;
    232                                 *dst = _color;
     228                                if (_dropShadow) {
     229                                        *(dest_ptr + x + 1) = 0;
     230                                        *(dest_ptr + x + _vm->_realWidth) = 0;
     231                                        *(dest_ptr + x + _vm->_realWidth + 1) = 0;
     232                                }                                       
     233                                *(dest_ptr + x) = _color;
    233234
    234235                                if (useMask) {
    235236                                        mask_ptr[maskpos] |= maskmask;
    236237                                        if (_dropShadow) {
    237                                                 int spos = maskpos + _vm->gdi._numStrips;
    238                                                 byte sbit = maskmask >> 1;
    239 
    240                                                 if (sbit == 0) {
    241                                                         sbit = 0x80;
    242                                                         spos++;
     238                                                mask_ptr[maskpos + _vm->gdi._numStrips] |= maskmask;
     239                                                if (maskmask == 1) {
     240                                                        mask_ptr[maskpos + 1] |= 0x80;
     241                                                        mask_ptr[maskpos + _vm->gdi._numStrips + 1] |= 0x80;
     242                                                } else {
     243                                                        mask_ptr[maskpos] |= (maskmask >> 1);
     244                                                        mask_ptr[maskpos + _vm->gdi._numStrips] |= (maskmask >> 1);
    243245                                                }
    244                                                 mask_ptr[spos] |= sbit;
    245246                                        }
    246247                                }
    247248                        }
     
    251252                                maskpos++;
    252253                        }
    253254                }
     255                dest_ptr += _vm->_realWidth;
    254256                mask_ptr += _vm->gdi._numStrips;
    255257        }
    256258