From ebfa731012e854d26d800b5abd56745cf9935098 Mon Sep 17 00:00:00 2001 From: Gilles Roudiere Date: Wed, 21 Feb 2018 22:06:34 +0100 Subject: Allow actions to provide an analog value --- core/input_map.h | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) (limited to 'core/input_map.h') diff --git a/core/input_map.h b/core/input_map.h index 9f3c13c2cf..a00be8c859 100644 --- a/core/input_map.h +++ b/core/input_map.h @@ -46,6 +46,7 @@ public: struct Action { int id; + float deadzone; List > inputs; }; @@ -54,7 +55,7 @@ private: mutable Map input_map; - List >::Element *_find_event(List > &p_list, const Ref &p_event, bool p_action_test = false) const; + List >::Element *_find_event(Action p_action, const Ref &p_event, bool *p_pressed = NULL, float *p_strength = NULL) const; Array _get_action_list(const StringName &p_action); Array _get_actions(); @@ -67,15 +68,17 @@ public: bool has_action(const StringName &p_action) const; List get_actions() const; - void add_action(const StringName &p_action); + void add_action(const StringName &p_action, float p_deadzone = 0.5); void erase_action(const StringName &p_action); + void action_set_deadzone(const StringName &p_action, float p_deadzone); void action_add_event(const StringName &p_action, const Ref &p_event); bool action_has_event(const StringName &p_action, const Ref &p_event); void action_erase_event(const StringName &p_action, const Ref &p_event); const List > *get_action_list(const StringName &p_action); bool event_is_action(const Ref &p_event, const StringName &p_action) const; + bool event_get_action_status(const Ref &p_event, const StringName &p_action, bool *p_pressed = NULL, float *p_strength = NULL) const; const Map &get_action_map() const; void load_from_globals(); -- cgit v1.2.3