Ticket #1738: loom_cursor_fix.diff

File loom_cursor_fix.diff, 1.9 KB (added by eriktorbjorn, 20 years ago)

Patch against an August 23 CVS snapshot

  • scumm/cursor.cpp

    diff -ur --exclude=CVS --exclude=Makefile ScummVM/scumm/cursor.cpp ScummVM+hack/scumm/cursor.cpp
    old new  
    6464          0x1004, 0x2002, 0x0000, 0x0080, 0x01c0, 0x02a0, 0x0080, 0x0000 },
    6565};
    6666
    67 static const byte default_cursor_hotspots[10] = {
     67static byte default_cursor_hotspots[10] = {
    6868        8, 7,   8, 7,   1, 1,   5, 0,
    6969        8, 7, //zak256
    7070};
     
    8282        }
    8383}
    8484
     85void ScummEngine::setCursorHotspot(int index, int x, int y) {
     86        // FIXME: Is this needed for other games, as well?
     87        if (_gameId == GID_LOOM || _gameId == GID_LOOM256) {
     88                default_cursor_hotspots[2 * index] = x;
     89                default_cursor_hotspots[2 * index + 1] = y;
     90        } else
     91                setCursorHotspot(x, y);
     92}
     93
    8594void ScummEngine::setCursorHotspot(int x, int y) {
    8695        _cursor.hotspotX = x;
    8796        _cursor.hotspotY = y;
  • scumm/script_v5.cpp

    diff -ur --exclude=CVS --exclude=Makefile ScummVM/scumm/script_v5.cpp ScummVM+hack/scumm/script_v5.cpp
    old new  
    683683                i = getVarOrDirectByte(PARAM_1);
    684684                j = getVarOrDirectByte(PARAM_2);
    685685                k = getVarOrDirectByte(PARAM_3);
    686                 setCursorHotspot(j, k);
     686                setCursorHotspot(i, j, k);
    687687                break;
    688688        case 12:                // SO_CURSOR_SET
    689689                i = getVarOrDirectByte(PARAM_1);
  • scumm/scumm.h

    diff -ur --exclude=CVS --exclude=Makefile ScummVM/scumm/scumm.h ScummVM+hack/scumm/scumm.h
    old new  
    936936        void darkenPalette(int redScale, int greenScale, int blueScale, int startColor, int endColor);
    937937        void desaturatePalette(int hueScale, int satScale, int lightScale, int startColor, int endColor);
    938938
     939        void setCursorHotspot(int index, int x, int y);
    939940        void setCursorHotspot(int x, int y);
    940941        void setCursorTransparency(int a);
    941942        void setupCursor();