void Client::set_key(MappedKey::Device dev, int param) { set_key(dev, param, binding.left, PlayerKeyStateLeft); set_key(dev, param, binding.right, PlayerKeyStateRight); set_key(dev, param, binding.up, PlayerKeyStateUp); set_key(dev, param, binding.down, PlayerKeyStateDown); set_key(dev, param, binding.jump, PlayerKeyStateJump); set_key(dev, param, binding.fire, PlayerKeyStateFire); set_key(dev, param, binding.drop1, PlayerKeyStateDrop1); set_key(dev, param, binding.drop2, PlayerKeyStateDrop2); set_key(dev, param, binding.drop3, PlayerKeyStateDrop3); if (binding.chat.device == dev && binding.chat.param == param) { if (!get_stack_count()) { subsystem.clear_input_buffer(); int vw = subsystem.get_view_width(); int vh = subsystem.get_view_height(); int ww = 350; int wh = 30; GuiWindow *window = push_window(1, 1, ww, wh, "Enter Message"); window->set_on_keydown(static_window_keydown, this); window->set_on_joybuttondown(static_window_joybutton_down, this); ww = window->get_client_width(); chat_textbox = create_textbox(window, Spc, Spc, ww - 2 * Spc, ""); window->set_height(window->get_height() - window->get_client_height() + 2 * Spc + chat_textbox->get_height()); window->set_x(vw / 2 - window->get_client_width() / 2); window->set_y(vh / 2 - window->get_client_height() / 2); chat_textbox->set_focus(); if (me) { me->state.client_server_state.key_states = 0; } } } if (binding.stats.device == dev && binding.stats.param == param) { if (!get_stack_count()) { if (tournament) { tournament->show_stats(true); } } } if (binding.escape.device == dev && binding.escape.param == param) { show_options_menu(); } }
void OptionsMenu::capture_key(GuiTextbox *ck_selected) { int vw = subsystem.get_view_width(); int vh = subsystem.get_view_height(); int ww = 200; int wh = 83; int bw = 140; this->ck_selected = ck_selected; GuiWindow *window = gui.push_window(vw / 2 - ww / 2, vh / 2- wh / 2, ww, wh, "Capturing"); window->set_on_keydown(static_capture_keydown, this); window->set_on_joybuttondown(static_capture_joybuttondown, this); std::string text("Press key or use joystick..."); Font *f = gui.get_font(); int tw = f->get_text_width(text); int fh = f->get_font_height(); gui.create_label(window, ww / 2 - tw / 2, window->get_client_height() / 2 - fh / 2 - 10, text); bw = 55; gui.create_button(window, ww / 2 - bw / 2, wh - 43, bw, 18, "Cancel", static_abort_capture_click, this); }