| 646 | } |
| 647 | |
| 648 | void cfg_element::OnKeyDown(int key) { |
| 649 | if (key == KEY_RIGHT && m_curslot < (N_CFGELEM_SLOTS - 1)) { |
| 650 | m_curslot++; |
| 651 | } else if (key == KEY_LEFT && m_curslot > 0) { |
| 652 | m_curslot--; |
| 653 | } else if (key == (KEY_CTRLED + KEY_C)) { |
| 654 | // clear binding. |
| 655 | tCfgDataParts cfgparts; |
| 656 | ct_type ctype_fn[CTLBINDS_PER_FUNC]; |
| 657 | uint8_t cfgflags_fn[CTLBINDS_PER_FUNC]; |
| 658 | ct_config_data ccfgdata_fn; |
| 659 | |
| 660 | Controller->get_controller_function(m_fnid, ctype_fn, &ccfgdata_fn, cfgflags_fn); |
| 661 | parse_config_data(&cfgparts, ctype_fn[0], ctype_fn[1], ccfgdata_fn); |
| 662 | if (m_curslot == 0) { |
| 663 | cfgparts.bind_0 = NULL_BINDING; |
| 664 | cfgparts.ctrl_0 = NULL_CONTROLLER; |
| 665 | } else if (m_curslot == 1) { |
| 666 | cfgparts.bind_1 = NULL_BINDING; |
| 667 | cfgparts.ctrl_1 = NULL_CONTROLLER; |
| 668 | } |
| 669 | ccfgdata_fn = unify_config_data(&cfgparts); |
| 670 | Controller->set_controller_function(m_fnid, ctype_fn, ccfgdata_fn, cfgflags_fn); |
| 671 | |
| 672 | } else if (key == (KEY_SHIFTED + KEY_SLASH)) { |
| 673 | m_slot = CFGELEM_SLOT_CLEAR; |
| 674 | OnSelect(); |
| 675 | } |
| 676 | } |
| 677 | |
| 678 | void cfg_element::OnMouseBtnDown(int btn) { |
| 679 | if (btn == UILMSEBTN) { |
nothing calls this directly
no test coverage detected