summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--core/input_map.cpp62
-rw-r--r--core/input_map.h1
-rw-r--r--main/main.cpp5
3 files changed, 67 insertions, 1 deletions
diff --git a/core/input_map.cpp b/core/input_map.cpp
index 0506233116..c266220541 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;
@@ -321,6 +322,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() {
ERR_FAIL_COND(singleton);
diff --git a/core/input_map.h b/core/input_map.h
index 82b650516e..dc5a911963 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 fba7a781bf..2e30ed298a 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)));