diff options
author | Stijn Buys <ingar@osirion.org> | 2015-02-08 21:51:53 +0000 |
---|---|---|
committer | Stijn Buys <ingar@osirion.org> | 2015-02-08 21:51:53 +0000 |
commit | 77d877160d5c3b8a7e9c30e81bd6ca1f4060b5f9 (patch) | |
tree | 7e3c8de8f0aeea2e03b086b5ff1a3c7b60892e25 /src/client/input.cc | |
parent | 4fdf7de0f1454966754bb22d1828fc2b69c172f4 (diff) |
Added a menu to configure key controls.
Diffstat (limited to 'src/client/input.cc')
-rw-r--r-- | src/client/input.cc | 36 |
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); } |