From 64fd75d91a65d6fe05cf6c3578f53f85b4c92c27 Mon Sep 17 00:00:00 2001 From: Juan Linietsky Date: Sun, 5 Jun 2016 01:19:42 -0300 Subject: [PATCH] Make Input Actions config not affect the editor --- core/input_map.cpp | 62 ++++++++++++++++++++++++++++++++++++++++++++++ core/input_map.h | 1 + main/main.cpp | 5 +++- 3 files changed, 67 insertions(+), 1 deletion(-) diff --git a/core/input_map.cpp b/core/input_map.cpp index 0506233116c..c266220541d 100644 --- a/core/input_map.cpp +++ b/core/input_map.cpp @@ -28,6 +28,7 @@ /*************************************************************************/ #include "input_map.h" #include "globals.h" +#include "os/keyboard.h" InputMap *InputMap::singleton=NULL; @@ -319,6 +320,67 @@ void InputMap::load_from_globals() { } +} + +void InputMap::load_default() { + + InputEvent key; + key.type=InputEvent::KEY; + + add_action("input/ui_accept"); + key.key.scancode=KEY_RETURN; + action_add_event("input/ui_accept",key); + key.key.scancode=KEY_ENTER; + action_add_event("input/ui_accept",key); + key.key.scancode=KEY_SPACE; + action_add_event("input/ui_accept",key); + + add_action("input/ui_select"); + key.key.scancode=KEY_SPACE; + action_add_event("input/ui_select",key); + + add_action("input/ui_cancel"); + key.key.scancode=KEY_ESCAPE; + action_add_event("input/ui_cancel",key); + + add_action("input/ui_focus_next"); + key.key.scancode=KEY_TAB; + action_add_event("input/ui_focus_next",key); + + add_action("input/ui_focus_prev"); + key.key.scancode=KEY_TAB; + key.key.mod.shift=true; + action_add_event("input/ui_focus_prev",key); + key.key.mod.shift=false; + + add_action("input/ui_left"); + key.key.scancode=KEY_LEFT; + action_add_event("input/ui_left",key); + + add_action("input/ui_right"); + key.key.scancode=KEY_RIGHT; + action_add_event("input/ui_right",key); + + add_action("input/ui_up"); + key.key.scancode=KEY_UP; + action_add_event("input/ui_up",key); + + add_action("input/ui_down"); + key.key.scancode=KEY_DOWN; + action_add_event("input/ui_down",key); + + + add_action("input/ui_page_up"); + key.key.scancode=KEY_PAGEUP; + action_add_event("input/ui_page_up",key); + + add_action("input/ui_page_down"); + key.key.scancode=KEY_PAGEDOWN; + action_add_event("input/ui_page_down",key); + +// set("display/orientation", "landscape"); + + } InputMap::InputMap() { diff --git a/core/input_map.h b/core/input_map.h index 82b650516ee..dc5a9119636 100644 --- a/core/input_map.h +++ b/core/input_map.h @@ -74,6 +74,7 @@ public: void load_from_globals(); + void load_default(); InputMap(); }; diff --git a/main/main.cpp b/main/main.cpp index fba7a781bf3..2e30ed298a5 100644 --- a/main/main.cpp +++ b/main/main.cpp @@ -688,7 +688,10 @@ Error Main::setup(const char *execpath,int argc, char *argv[],bool p_second_phas #endif - input_map->load_from_globals(); + if (editor) + input_map->load_default(); //keys for editor + else + input_map->load_from_globals(); //keys for game if (video_driver=="") // specified in engine.cfg video_driver=_GLOBAL_DEF("display/driver",Variant((const char*)OS::get_singleton()->get_video_driver_name(0)));