Ticket #8223: cursor-fix.diff

File cursor-fix.diff, 1.0 KB (added by eriktorbjorn, 21 years ago)

Patch against a May 14 CVS snapshot

  • scummvm/scumm/gfx.cpp

    diff -ur ScummVM-cvs20030514/scummvm/scumm/gfx.cpp ScummVM-cvs20030514+hack/scummvm/scumm/gfx.cpp
    old new  
    33623362
    33633363void Scumm::useIm01Cursor(byte *im, int w, int h) {
    33643364        VirtScreen *vs = &virtscr[0];
     3365        byte *buf, *src, *dst;
     3366        int i;
    33653367
    33663368        w <<= 3;
    33673369        h <<= 3;
    33683370
     3371        dst = buf = (byte *) malloc(w * h);
     3372        src = vs->screenPtr + vs->xstart;
     3373
     3374        for (i = 0; i < h; i++) {
     3375                memcpy(dst, src, w);
     3376                dst += w;
     3377                src += _screenWidth;
     3378        }
     3379
    33693380        drawBox(0, 0, w - 1, h - 1, 0xFF);
    33703381
    33713382        vs->alloctwobuffers = false;
     
    33763387
    33773388        grabCursor(vs->screenPtr + vs->xstart, w, h);
    33783389
    3379         blit(vs->screenPtr + vs->xstart, getResourceAddress(rtBuffer, 5) + vs->xstart, w, h);
     3390        src = buf;
     3391        dst = vs->screenPtr + vs->xstart;
     3392
     3393        for (i = 0; i < h; i++) {
     3394                memcpy(dst, src, w);
     3395                dst += _screenWidth;
     3396                src += w;
     3397        }
     3398
     3399        free(buf);
    33803400}
    33813401
    33823402void Scumm::setCursor(int cursor) {