parent
716dfa67a3
commit
45cfd199a4
5 changed files with 27 additions and 3 deletions
|
|
@ -101,7 +101,7 @@ bool InputDefault::is_action_pressed(const StringName& p_action) {
|
|||
|
||||
const List<InputEvent> *alist = InputMap::get_singleton()->get_action_list(p_action);
|
||||
if (!alist)
|
||||
return NULL;
|
||||
return false;
|
||||
|
||||
|
||||
for (const List<InputEvent>::Element *E=alist->front();E;E=E->next()) {
|
||||
|
|
@ -220,18 +220,18 @@ void InputDefault::joy_connection_changed(int p_idx, bool p_connected, String p_
|
|||
};
|
||||
};
|
||||
js.uid = uidname;
|
||||
//printf("looking for mappings for guid %ls\n", uidname.c_str());
|
||||
js.connected = true;
|
||||
int mapping = fallback_mapping;
|
||||
for (int i=0; i < map_db.size(); i++) {
|
||||
if (js.uid == map_db[i].uid) {
|
||||
mapping = i;
|
||||
js.name = map_db[i].name;
|
||||
//printf("found mapping\n");
|
||||
};
|
||||
};
|
||||
js.mapping = mapping;
|
||||
}
|
||||
else {
|
||||
js.connected = false;
|
||||
for (int i = 0; i < JOY_BUTTON_MAX; i++) {
|
||||
|
||||
if (i < JOY_AXIS_MAX)
|
||||
|
|
@ -1039,3 +1039,15 @@ bool InputDefault::is_joy_mapped(int p_device) {
|
|||
String InputDefault::get_joy_guid_remapped(int p_device) const {
|
||||
return joy_names[p_device].uid;
|
||||
}
|
||||
|
||||
Array InputDefault::get_connected_joysticks() {
|
||||
Array ret;
|
||||
Map<int, Joystick>::Element *elem = joy_names.front();
|
||||
while (elem) {
|
||||
if (elem->get().connected) {
|
||||
ret.push_back(elem->key());
|
||||
}
|
||||
elem = elem->next();
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -75,6 +75,7 @@ class InputDefault : public Input {
|
|||
struct Joystick {
|
||||
StringName name;
|
||||
StringName uid;
|
||||
bool connected;
|
||||
bool last_buttons[JOY_BUTTON_MAX + 19]; //apparently SDL specifies 35 possible buttons on android
|
||||
float last_axis[JOY_AXIS_MAX];
|
||||
float filter;
|
||||
|
|
@ -93,6 +94,7 @@ class InputDefault : public Input {
|
|||
|
||||
last_buttons[i] = false;
|
||||
}
|
||||
connected = false;
|
||||
last_hat = HAT_MASK_CENTER;
|
||||
filter = 0.01f;
|
||||
mapping = -1;
|
||||
|
|
@ -168,6 +170,7 @@ public:
|
|||
|
||||
virtual float get_joy_axis(int p_device,int p_axis);
|
||||
String get_joy_name(int p_idx);
|
||||
virtual Array get_connected_joysticks();
|
||||
virtual Vector2 get_joy_vibration_strength(int p_device);
|
||||
virtual float get_joy_vibration_duration(int p_device);
|
||||
virtual uint64_t get_joy_vibration_timestamp(int p_device);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue