clintbellanger/flare-engine — pull request #345 by dorkster (2013-02-08 12:40:38+00:00)
Title: Unified key/joystick bindings & mouse emulation

These two features ended up going together. The MAIN1 key needs to behave
differently based on its context (combat vs menus). Mouse emulation gives a
way to handle both of these contexts. Basically, mouse emulation is turned
on when in menus and off when in combat. All of this combined means that
Flare is now be played entirely with a joystick.

In addition, GameState* menu keyboard shortcuts have been removed. There
were conflicts with mouse emulation and these shortcuts. Not to mention
the amount of menu navigation with these keys was limited (couldn't operate
the Configuration menu) and made the code messy. By having only the mouse
cursor (emulated or otherwise) operate on widgets, we keep things
consistent.

Finally, a bug in GameStateConfig where joysticks could be enabled without
picking a joystick from the list was fixed.

Known issues:
* The mouse can still be used when in mouse emulation mode. However, the
cursor is hidden and placed in the bottom-right to prevent it from
interfering with combat. I didn't want to lock the mouse in that corner
because it's not good for people that play in windowed mode. This is the
best compromise for this that I could come up with.