This PR fixes #5 which was the most dreadful. See related comments (basically /MT linking is done).
But it also cleans a lot of stuff, that has been tried for fixing #5
No need for ori_xinput1_3.dll anymore, I load the systempath to do this
Original xinput is lazy loaded to avoid loading deadlocks (a mutex is used to avoid parallel init)
If any startup error (like xinput or directinput loading fails) a MessageBox is thrown with the error message and the process is exited
XInput detection has been cleaned to 1) support known devices 2) use the guid&path instead of the dirty device loop provided by MS
Headers are assembled in a unique place to defined properly the targeted version (could not make precompiled header work though)
In case of state reading failure, 30 frames are given to the controller before a new device listing is done.
This should fix #8. Controller switching must now be held for 2 seconds to avoid spaming of start/select/home/left/right. Also, I created a new build layout (Release - Tournament Mode) to completely disable controller switching, which should be mandatory for tournament. Please provide both dll in the upcoming release :)
This PR fixes #5 which was the most dreadful. See related comments (basically /MT linking is done).
But it also cleans a lot of stuff, that has been tried for fixing #5
This should fix #8. Controller switching must now be held for 2 seconds to avoid spaming of start/select/home/left/right. Also, I created a new build layout (Release - Tournament Mode) to completely disable controller switching, which should be mandatory for tournament. Please provide both dll in the upcoming release :)
Sorry it's heavy :)