I could really use a hand here.
First Question:
GUI is constantly on, has a button that is clicked to load the Sierra-style inventory.
When the mouse is over the button, I want it to become a pointer. When the mouse leaves the button, I want it to go back to the last cursor icon.
So far, so good. I wrote this to repeatedly execute:
GUIControl*gc = GUIControl.GetAtScreenXY(mouse.x, mouse.y);
if (gc == btnInventory) {mouse.SaveCursorUntilItLeaves();mouse.UseModeGraphic(eModePointer);}
Problem is, when you select the inventory item, thus changing the cursor to reflect that inventory item, and then close the inventory window, it will naturally want to change back to its last cursor instead of holding the cursor of the inventory item. How do I code my way around this?
And second question:
Is it possible to check for a cursor's graphical property, rather than it's mode? My game generates an overlay just above the cursor that displays the name of an object on a mouseover, but I find it's a little distracting and gets in the way while dialog is occurring. I'd like to disable that feature when the wait cursor is displayed, but checking cursor.Mode==eModeWait has no effect, so I'm assuming that the cursor is just using the wait graphic, while retaining the original mode? Does that make sense? If so, I can't seem to find any command that checks for a cursor's graphic so I can set this overlay to disable.