From 3204befd1eb42cc87ae296148e1361a8b001d08d Mon Sep 17 00:00:00 2001 From: Andreas Haas Date: Fri, 26 May 2017 21:14:59 +0200 Subject: [PATCH] Fix InputEvent actions. The `InputEvent::is_action(pressed|released)` methods weren't implemented yet. Also fixed a typo in `InputDefault` that prevented `Input.is_action(pressed|released)` from working. --- core/os/input_event.cpp | 4 ++-- main/input_default.cpp | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/core/os/input_event.cpp b/core/os/input_event.cpp index cf3b8f74eca..7ec76c1eed4 100644 --- a/core/os/input_event.cpp +++ b/core/os/input_event.cpp @@ -62,11 +62,11 @@ bool InputEvent::is_action(const StringName &p_action) const { bool InputEvent::is_action_pressed(const StringName &p_action) const { - return false; // InputMap::get_singleton()->event_is_action(Ref(this),p_action); + return (is_pressed() && !is_echo() && is_action(p_action)); } bool InputEvent::is_action_released(const StringName &p_action) const { - return false; + return (!is_pressed() && is_action(p_action)); } bool InputEvent::is_echo() const { diff --git a/main/input_default.cpp b/main/input_default.cpp index 9e11a595dc7..0de30e5e9e3 100644 --- a/main/input_default.cpp +++ b/main/input_default.cpp @@ -369,7 +369,7 @@ void InputDefault::parse_input_event(const Ref &p_event) { set_joy_axis(jm->get_device(), jm->get_axis(), jm->get_axis_value()); } - if (p_event->is_echo()) { + if (!p_event->is_echo()) { for (const Map::Element *E = InputMap::get_singleton()->get_action_map().front(); E; E = E->next()) { if (InputMap::get_singleton()->event_is_action(p_event, E->key()) && is_action_pressed(E->key()) != p_event->is_pressed()) {