diff options
author | Filippos Karapetis | 2012-02-17 10:52:40 +0200 |
---|---|---|
committer | Filippos Karapetis | 2012-02-17 10:53:42 +0200 |
commit | c48ad37244e3706972b538616d0c0ce6653b4c68 (patch) | |
tree | 19532492e7ad73be403d2c3ee0fee9ca4f1953db /engines | |
parent | 8c5f988a005f8bdf11ad9ea025bc31a010bd133e (diff) | |
download | scummvm-rg350-c48ad37244e3706972b538616d0c0ce6653b4c68.tar.gz scummvm-rg350-c48ad37244e3706972b538616d0c0ce6653b4c68.tar.bz2 scummvm-rg350-c48ad37244e3706972b538616d0c0ce6653b4c68.zip |
SCI: Fix bug #3487088 - "SCI: LB1: Missing Wait cursor"
Diffstat (limited to 'engines')
-rw-r--r-- | engines/sci/graphics/cursor.cpp | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/engines/sci/graphics/cursor.cpp b/engines/sci/graphics/cursor.cpp index a939b042a7..1f7a2cfdbb 100644 --- a/engines/sci/graphics/cursor.cpp +++ b/engines/sci/graphics/cursor.cpp @@ -131,6 +131,15 @@ void GfxCursor::kernelSetShape(GuiResourceId resourceId) { // bit 0 of resourceData[3] is set on <SCI1 games, which means center hotspot if ((hotspot.x == 0) && (hotspot.y == 256)) hotspot.x = hotspot.y = SCI_CURSOR_SCI0_HEIGHTWIDTH / 2; + // LB1 defines bogus hotspot data for the busy cursor, which is fairly easy + // to detect, as the hotspot is defined outside the visible screen (!). + // Presumably, this was done to prevent the cursor from being usable, however + // the only thing that can be done when the wait cursor is shown is to skip + // scenes by left clicking. This bogus hotspot causes the cursor to not be + // drawn at all, thus we detect it and set the hotspot to (0, 0) instead. + // Fixes bug #3487088. + if (hotspot.x > _screen->getDisplayWidth()) + hotspot.x = hotspot.y = 0; // Now find out what colors we are supposed to use colorMapping[0] = 0; // Black is hardcoded |