I just fixed the errors that would happen when you unplug the controller (actions wouldn't stop correctly, and major infinite loops everywhere)
I'm not very happy with how the I'd let the developer create and include his own maps:
I've got a dictionnary where keys are sub strings to look for in the device's name, values are Classes that should extend GamepadMap which looks for the os (using Capabilities) and run functions according to the result (setupWIN/MAC/LNX/AND) so that everyone could in fact create one map for each possible os, based on the devices name, to override everything we do by default would be a simple matter of just replacing that dictionnary with your own and a set of classes defined the same way the xbox360 map we have for example is defined.
I create an object from that class if the substring was found, run setupXXX(gamepad) on the gamepad instance to create the ButtonControllers or StickControllers required.
So far I'm happy that it works for other people! it just looks bad as an API (or whatever it should be called).
So if you've got suggestion please go ahead.
I also don't have a system where you would be able to leave a player the opportunity to create his own map as I'm not listening to all control changes, just the ones that are setup internally which means you couldn't just see if a new control is changed and create a new 'InputController' for it if your map didn't already create it.
With the major lag/freeze issue still here and the will to release CE 3.1.8 asap, I don't think this will be included just yet - so lets call that experimental but very usable (specially for xbox360 controllers, and with something like
we'll just make do until default maps are as complete as we can make them.
I'll still provide an example/test state along with the nice graphic that shows what buttons are being pressed, with what 'force' and the sticks directions (as seen in the video) - I've got an .swc just for that.
will do that once I'm done with the remaining features to be implemented for 3.1.8 which is the new sound manager (something very important.)