Project::OSiRiON - Git repositories
Project::OSiRiON
News . About . Screenshots . Downloads . Forum . Wiki . Tracker . Git
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStijn Buys <ingar@osirion.org>2015-02-08 21:51:53 +0000
committerStijn Buys <ingar@osirion.org>2015-02-08 21:51:53 +0000
commit77d877160d5c3b8a7e9c30e81bd6ca1f4060b5f9 (patch)
tree7e3c8de8f0aeea2e03b086b5ff1a3c7b60892e25 /src/client/input.cc
parent4fdf7de0f1454966754bb22d1828fc2b69c172f4 (diff)
Added a menu to configure key controls.
Diffstat (limited to 'src/client/input.cc')
-rw-r--r--src/client/input.cc36
1 files changed, 24 insertions, 12 deletions
diff --git a/src/client/input.cc b/src/client/input.cc
index 0ffffad..72fa5af 100644
--- a/src/client/input.cc
+++ b/src/client/input.cc
@@ -804,6 +804,10 @@ void frame()
case SDL_MOUSEBUTTONDOWN:
key = keyboard->press(512 + event.button.button);
pressed = true;
+
+ last_key = key; // remember the last key that was pressed
+ last_key_time = client()->time();
+
if ((key && console_key_pressed(key)) || ui::root()->input_mouse_button(true, event.button.button))
{
key = 0;
@@ -830,25 +834,31 @@ void frame()
break;
case SDL_MOUSEWHEEL:
+ if (event.wheel.y > 0)
+ {
+ key = keyboard->press(600);
+ } else if (event.wheel.y < 0)
+ {
+ key = keyboard->press(601);
+ }
+ pressed = true;
+
+ last_key = key; // remember the last key that was pressed
+ last_key_time = client()->time();
+
if (ui::root()->input_mouse_wheel(math::Vector2f((float)event.wheel.x, (float) event.wheel.y)))
{
key = 0;
- } else
- {
- if (event.wheel.y > 0)
- {
- key = keyboard->press(600);
- } else if (event.wheel.y < 0)
- {
- key = keyboard->press(601);
- }
- pressed = true;
}
break;
case SDL_JOYBUTTONDOWN:
key = keyboard->press(564 + event.jbutton.button);
pressed = true;
+
+ last_key = key; // remember the last key that was pressed
+ last_key_time = client()->time();
+
break;
case SDL_JOYBUTTONUP:
@@ -865,6 +875,10 @@ void frame()
keyboard_modifiers = event.key.keysym.mod;
key = keyboard->press(event.key.keysym.scancode);
pressed = true;
+
+ last_key = key; // remember the last key that was pressed
+ last_key_time = client()->time();
+
if ((key && console_key_pressed(key)) || ui::root()->input_key(true, Keyboard::translate_keysym(event.key.keysym.sym, keyboard_modifiers), keyboard_modifiers))
{
key = 0;
@@ -891,8 +905,6 @@ void frame()
if (key) {
if (pressed) {
key_pressed(key);
- last_key = key; // remember the last key that was pressed
- last_key_time = client()->time();
} else {
key_released(key);
}