#1756 closed defect (fixed)
ALL: Wrong cursor colour in NewGui
Reported by: | eriktorbjorn | Owned by: | lordhoto |
---|---|---|---|
Priority: | normal | Component: | GUI |
Version: | Keywords: | ||
Cc: | Game: |
Description
When using the NewGui, the cursor colour is hard-coded to palette entries 7, 8 and 15. This works fine for most of the older SCUMM games, but not in newer ones like CMI (start the debugger on the difficulty selection screen and the cursor will change between white and red), and not in non-SCUMM games.
I originally noticed this when adding a warning message when BASS fails to save a game (the cursor was almost invisible), but I didn't get around to filing a proper bug report about it until now.
The glitch happens with the CVS version, but has probably been around ever since the NewGui was introduced.
Ticket imported from: #1022283. Ticket imported from: bugs/1756.
Change History (8)
comment:1 by , 20 years ago
comment:2 by , 20 years ago
new OSystem methods setCursorPalette() and disableCursorPalette() should help.
comment:3 by , 20 years ago
I thought those functions still didn't apply to the cursor when using the overlay. Anyway, we'd need some way of restoring the cursor palette afterwards, as well.
comment:5 by , 19 years ago
Owner: | set to |
---|
comment:6 by , 19 years ago
I guess so. The cursor looks rather tiny in COMI (any 640x480 game?) but it *is* the right colour.
comment:7 by , 19 years ago
Resolution: | → fixed |
---|---|
Status: | new → closed |
comment:8 by , 6 years ago
Component: | --Unset-- → GUI |
---|
Yeah. And we have to setup a special palette in base/main.cpp for the cursor to appear at all in the launcher...
The problem here really is more a shortcoming of OSystem than of NewGui: cursors currently are always 8 bit and always use the regular palette. One could solve this in various ways: 1) add a separate (optional) mouse palette -> this would allow us to keep doing color rotations 2) add 16bit color cursors 3) or add a separate "overlay cursor" which is used when the overlay is one instead of the regular cursor (this actually combines with both 1 and 2)
I always wanted to add something to OSystem which would allow NewGUI to "backup" the active cursor so that it can later restore it (currently code calling NewGUI has to "manually" restore its mouse cursor which is ugly and error prone). There are multiple solutions to this, but the above item 3 has the added benefit of solving two problems at once :-)