Opened 18 years ago

Closed 18 years ago

#2704 closed defect (fixed)

BASS: Possible glitch when examining inventory items

Reported by: eriktorbjorn Owned by: eriktorbjorn
Priority: normal Component: Engine: Sky
Version: Keywords:
Cc: Game: Beneath a Steel Sky

Description

Current SVN All versions

When examining an inventory item, the descriptive text is supposed to be displayed until the mouse button is released (but no less than 800 ms).

If you click on the item really quickly, it's quite possible that the mouse button release event will be processed before fnLookAt() is called, so it will never receive the button up event it's waiting for. (Not as serious as it sounds -- you can always click again, or press escape.)

Ticket imported from: #1510038. Ticket imported from: bugs/2704.

Attachments (1)

sky-mouse.diff (10.6 KB ) - added by eriktorbjorn 18 years ago.
Patch against current SVN

Download all attachments as: .zip

Change History (5)

by eriktorbjorn, 18 years ago

Attachment: sky-mouse.diff added

Patch against current SVN

comment:1 by eriktorbjorn, 18 years ago

(Assigning to Fingolfin, since this may concern the backends.)

As I already pointed out, the problem is that waiting for a mouse button release event isn't reliable, because it may already have happened by the time this function is called. We either need to make sure the event hasn't been processed already - which may be tricky - or we need a way to query the up/down status of the mouse buttons.

In this particular case, it would be awfully convenient if there was a function for this in the backend. Failing that, the Sky engine could define its own "poll event" function and have that one keep track of mouse button events. I'm attaching a quick-and-possibly-dirty proof-of-concept patch. File Added: sky-mouse.diff

comment:2 by eriktorbjorn, 18 years ago

Owner: set to fingolfin

comment:3 by eriktorbjorn, 18 years ago

Owner: changed from fingolfin to eriktorbjorn
Resolution: fixed
Status: newclosed

comment:4 by eriktorbjorn, 18 years ago

Fixed, using the new event manager's getButtonState().

Note: See TracTickets for help on using tickets.