mirror of
https://github.com/godotengine/godot.git
synced 2025-12-07 22:00:10 +00:00
Fix Input.is_joy_known response for SDL joypads
This commit is contained in:
parent
9a5d6d1049
commit
3f98a5472d
3 changed files with 11 additions and 9 deletions
|
|
@ -656,10 +656,16 @@ void Input::joy_connection_changed(int p_idx, bool p_connected, const String &p_
|
|||
int mapping = fallback_mapping;
|
||||
// Bypass the mapping system if the joypad's mapping is already handled by its driver
|
||||
// (for example, the SDL joypad driver).
|
||||
if (!p_joypad_info.get("mapping_handled", false)) {
|
||||
if (p_joypad_info.get("mapping_handled", false)) {
|
||||
js.is_known = true;
|
||||
} else {
|
||||
for (int i = 0; i < map_db.size(); i++) {
|
||||
if (js.uid == map_db[i].uid) {
|
||||
mapping = i;
|
||||
if (mapping != fallback_mapping) {
|
||||
js.is_known = true;
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1859,13 +1865,7 @@ void Input::set_fallback_mapping(const String &p_guid) {
|
|||
|
||||
//platforms that use the remapping system can override and call to these ones
|
||||
bool Input::is_joy_known(int p_device) {
|
||||
if (joy_names.has(p_device)) {
|
||||
int mapping = joy_names[p_device].mapping;
|
||||
if (mapping != -1 && mapping != fallback_mapping) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
return joy_names.has(p_device) && joy_names[p_device].is_known;
|
||||
}
|
||||
|
||||
String Input::get_joy_guid(int p_device) const {
|
||||
|
|
|
|||
|
|
@ -168,6 +168,7 @@ private:
|
|||
StringName name;
|
||||
StringName uid;
|
||||
bool connected = false;
|
||||
bool is_known = false;
|
||||
bool last_buttons[(size_t)JoyButton::MAX] = { false };
|
||||
float last_axis[(size_t)JoyAxis::MAX] = { 0.0f };
|
||||
HatMask last_hat = HatMask::CENTER;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue