From 77d877160d5c3b8a7e9c30e81bd6ca1f4060b5f9 Mon Sep 17 00:00:00 2001 From: Stijn Buys Date: Sun, 8 Feb 2015 21:51:53 +0000 Subject: Added a menu to configure key controls. --- src/client/input.cc | 36 ++++++++++++++++++++++++------------ 1 file changed, 24 insertions(+), 12 deletions(-) (limited to 'src/client/input.cc') 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); } -- cgit v1.2.3