Small Issues & Maintenance
-=-=-=-=-=-=-=-=-=-=-=-=-= -Begin work on Navigation Meshes (simple pathfinding for now, will improve soon) -More doc on theme overriding -Upgraded OpenSSL to version without bugs -Misc bugfixes
This commit is contained in:
@ -574,6 +574,8 @@ LRESULT CALLBACK WndProc(HWND hWnd,UINT uMsg, WPARAM wParam, LPARAM lParam) {
|
||||
|
||||
void OS_Windows::probe_joysticks() {
|
||||
|
||||
static uint32_t last_attached = 0;
|
||||
|
||||
int device_count = joyGetNumDevs();
|
||||
|
||||
JOYINFOEX jinfo;
|
||||
@ -582,21 +584,40 @@ void OS_Windows::probe_joysticks() {
|
||||
|
||||
for (int i=0; i<JOYSTICKS_MAX; i++) {
|
||||
|
||||
joysticks[i].attached = (device_count > 0) && (joyGetPosEx(JOYSTICKID1 + i, &jinfo) == JOYERR_NOERROR);
|
||||
|
||||
if (!joysticks[i].attached) {
|
||||
Joystick joy;
|
||||
joy.id = i;
|
||||
joy.attached = (device_count > 0) && (joyGetPosEx(JOYSTICKID1 + i, &jinfo) == JOYERR_NOERROR);
|
||||
|
||||
if (joy.attached == (last_attached & (1 << i) != 0)) {
|
||||
continue;
|
||||
};
|
||||
|
||||
joysticks[i].last_buttons = jinfo.dwButtons;
|
||||
// there's been a change since last call
|
||||
|
||||
joysticks[i].last_axis[0] = jinfo.dwXpos;
|
||||
joysticks[i].last_axis[1] = jinfo.dwYpos;
|
||||
joysticks[i].last_axis[2] = jinfo.dwZpos;
|
||||
joysticks[i].last_axis[3] = jinfo.dwRpos;
|
||||
joysticks[i].last_axis[4] = jinfo.dwUpos;
|
||||
joysticks[i].last_axis[5] = jinfo.dwVpos;
|
||||
if (joy.attached)
|
||||
last_attached = last_attached | (1 << i);
|
||||
else
|
||||
last_attached &= ~(1 << i);
|
||||
|
||||
if (joy.attached) {
|
||||
|
||||
joy.last_buttons = jinfo.dwButtons;
|
||||
|
||||
joy.last_axis[0] = jinfo.dwXpos;
|
||||
joy.last_axis[1] = jinfo.dwYpos;
|
||||
joy.last_axis[2] = jinfo.dwZpos;
|
||||
joy.last_axis[3] = jinfo.dwRpos;
|
||||
joy.last_axis[4] = jinfo.dwUpos;
|
||||
joy.last_axis[5] = jinfo.dwVpos;
|
||||
|
||||
JOYCAPS jcaps;
|
||||
MMRESULT res = joyGetDevCaps(JOYSTICKID1 + i, &jcaps, sizeof(jcaps));
|
||||
if (res == JOYERR_NOERROR) {
|
||||
joy.name = jcaps.szPname;
|
||||
};
|
||||
};
|
||||
|
||||
joystick_change_queue.push_back(joy);
|
||||
};
|
||||
};
|
||||
|
||||
@ -998,7 +1019,13 @@ void OS_Windows::initialize(const VideoMode& p_desired,int p_video_driver,int p_
|
||||
spatial_sound_2d_server = memnew( SpatialSound2DServerSW );
|
||||
spatial_sound_2d_server->init();
|
||||
|
||||
probe_joysticks();
|
||||
probe_joysticks(); // todo: move this to a thread
|
||||
while (joystick_change_queue.size() > 0) {
|
||||
Joystick joy = joystick_change_queue.front()->get();
|
||||
joystick_change_queue.pop_front();
|
||||
joysticks[joy.id] = joy;
|
||||
input->joy_connection_changed(joy.id, joy.attached, joy.name);
|
||||
};
|
||||
|
||||
TRACKMOUSEEVENT tme;
|
||||
tme.cbSize=sizeof(TRACKMOUSEEVENT);
|
||||
|
||||
Reference in New Issue
Block a user