Use symbolic STATE_NONE for kconfig entries with no state bit

This commit is contained in:
Kp 2019-12-22 05:34:08 +00:00
parent 3eedd9234e
commit d2f2f98850
2 changed files with 90 additions and 89 deletions

View file

@ -111,6 +111,7 @@ fix Cruise_speed=0;
#define BT_JOY_BUTTON 3
#define BT_JOY_AXIS 4
#define BT_INVERT 5
#define STATE_NONE 0
#define STATE_BIT1 1
#define STATE_BIT2 2
#define STATE_BIT3 4

View file

@ -64,14 +64,14 @@ constexpr kc_item kc_keyboard[] = {
{DXX_KCONFIG_UI_KEYBOARD_LABEL_X2, DXX_KCONFIG_UI_KEYBOARD_X2_GROUP1_Y + DXX_KCONFIG_UI_ROW_CELL_HEIGHT( 0), DXX_KCONFIG_UI_KEYBOARD_INPUT_X2_C2, DXX_KCONFIG_UI_CELL_WIDTH, DXX_KCONFIG_UI_UDLR(), BT_KEY, STATE_BIT2, {&control_info::state_controls_t::fire_primary} },
{DXX_KCONFIG_UI_KEYBOARD_LABEL_X2, DXX_KCONFIG_UI_KEYBOARD_X2_GROUP1_Y + DXX_KCONFIG_UI_ROW_CELL_HEIGHT( 1), DXX_KCONFIG_UI_KEYBOARD_INPUT_X2_C1, DXX_KCONFIG_UI_CELL_WIDTH, DXX_KCONFIG_UI_LABEL("Fire secondary") DXX_KCONFIG_UI_UDLR(), BT_KEY, STATE_BIT1, {&control_info::state_controls_t::fire_secondary} },
{DXX_KCONFIG_UI_KEYBOARD_LABEL_X2, DXX_KCONFIG_UI_KEYBOARD_X2_GROUP1_Y + DXX_KCONFIG_UI_ROW_CELL_HEIGHT( 1), DXX_KCONFIG_UI_KEYBOARD_INPUT_X2_C2, DXX_KCONFIG_UI_CELL_WIDTH, DXX_KCONFIG_UI_UDLR(), BT_KEY, STATE_BIT2, {&control_info::state_controls_t::fire_secondary} },
{DXX_KCONFIG_UI_KEYBOARD_LABEL_X2, DXX_KCONFIG_UI_KEYBOARD_X2_GROUP1_Y + DXX_KCONFIG_UI_ROW_CELL_HEIGHT( 2), DXX_KCONFIG_UI_KEYBOARD_INPUT_X2_C1, DXX_KCONFIG_UI_CELL_WIDTH, DXX_KCONFIG_UI_LABEL("Fire flare") DXX_KCONFIG_UI_UDLR(), BT_KEY, 0, {&control_info::state_controls_t::fire_flare} },
{DXX_KCONFIG_UI_KEYBOARD_LABEL_X2, DXX_KCONFIG_UI_KEYBOARD_X2_GROUP1_Y + DXX_KCONFIG_UI_ROW_CELL_HEIGHT( 2), DXX_KCONFIG_UI_KEYBOARD_INPUT_X2_C2, DXX_KCONFIG_UI_CELL_WIDTH, DXX_KCONFIG_UI_UDLR(), BT_KEY, 0, {&control_info::state_controls_t::fire_flare} },
{DXX_KCONFIG_UI_KEYBOARD_LABEL_X2, DXX_KCONFIG_UI_KEYBOARD_X2_GROUP1_Y + DXX_KCONFIG_UI_ROW_CELL_HEIGHT( 2), DXX_KCONFIG_UI_KEYBOARD_INPUT_X2_C1, DXX_KCONFIG_UI_CELL_WIDTH, DXX_KCONFIG_UI_LABEL("Fire flare") DXX_KCONFIG_UI_UDLR(), BT_KEY, STATE_NONE, {&control_info::state_controls_t::fire_flare} },
{DXX_KCONFIG_UI_KEYBOARD_LABEL_X2, DXX_KCONFIG_UI_KEYBOARD_X2_GROUP1_Y + DXX_KCONFIG_UI_ROW_CELL_HEIGHT( 2), DXX_KCONFIG_UI_KEYBOARD_INPUT_X2_C2, DXX_KCONFIG_UI_CELL_WIDTH, DXX_KCONFIG_UI_UDLR(), BT_KEY, STATE_NONE, {&control_info::state_controls_t::fire_flare} },
{DXX_KCONFIG_UI_KEYBOARD_LABEL_X2, DXX_KCONFIG_UI_KEYBOARD_X2_GROUP3_Y + DXX_KCONFIG_UI_ROW_CELL_HEIGHT( 6), DXX_KCONFIG_UI_KEYBOARD_INPUT_X2_C1, DXX_KCONFIG_UI_CELL_WIDTH, DXX_KCONFIG_UI_LABEL("Accelerate") DXX_KCONFIG_UI_UDLR(), BT_KEY, STATE_BIT1, {&control_info::state_controls_t::accelerate} },
{DXX_KCONFIG_UI_KEYBOARD_LABEL_X2, DXX_KCONFIG_UI_KEYBOARD_X2_GROUP3_Y + DXX_KCONFIG_UI_ROW_CELL_HEIGHT( 6), DXX_KCONFIG_UI_KEYBOARD_INPUT_X2_C2, DXX_KCONFIG_UI_CELL_WIDTH, DXX_KCONFIG_UI_UDLR(), BT_KEY, STATE_BIT2, {&control_info::state_controls_t::accelerate} },
{DXX_KCONFIG_UI_KEYBOARD_LABEL_X2, DXX_KCONFIG_UI_KEYBOARD_X2_GROUP3_Y + DXX_KCONFIG_UI_ROW_CELL_HEIGHT( 7), DXX_KCONFIG_UI_KEYBOARD_INPUT_X2_C1, DXX_KCONFIG_UI_CELL_WIDTH, DXX_KCONFIG_UI_LABEL("Reverse") DXX_KCONFIG_UI_UDLR(), BT_KEY, STATE_BIT1, {&control_info::state_controls_t::reverse} },
{DXX_KCONFIG_UI_KEYBOARD_LABEL_X2, DXX_KCONFIG_UI_KEYBOARD_X2_GROUP3_Y + DXX_KCONFIG_UI_ROW_CELL_HEIGHT( 7), DXX_KCONFIG_UI_KEYBOARD_INPUT_X2_C2, DXX_KCONFIG_UI_CELL_WIDTH, DXX_KCONFIG_UI_UDLR(), BT_KEY, STATE_BIT2, {&control_info::state_controls_t::reverse} },
{DXX_KCONFIG_UI_KEYBOARD_LABEL_X2, DXX_KCONFIG_UI_KEYBOARD_X2_GROUP1_Y + DXX_KCONFIG_UI_ROW_CELL_HEIGHT( 3), DXX_KCONFIG_UI_KEYBOARD_INPUT_X2_C1, DXX_KCONFIG_UI_CELL_WIDTH, DXX_KCONFIG_UI_LABEL("Drop Bomb") DXX_KCONFIG_UI_UDLR(), BT_KEY, 0, {&control_info::state_controls_t::drop_bomb} },
{DXX_KCONFIG_UI_KEYBOARD_LABEL_X2, DXX_KCONFIG_UI_KEYBOARD_X2_GROUP1_Y + DXX_KCONFIG_UI_ROW_CELL_HEIGHT( 3), DXX_KCONFIG_UI_KEYBOARD_INPUT_X2_C2, DXX_KCONFIG_UI_CELL_WIDTH, DXX_KCONFIG_UI_UDLR(), BT_KEY, 0, {&control_info::state_controls_t::drop_bomb} },
{DXX_KCONFIG_UI_KEYBOARD_LABEL_X2, DXX_KCONFIG_UI_KEYBOARD_X2_GROUP1_Y + DXX_KCONFIG_UI_ROW_CELL_HEIGHT( 3), DXX_KCONFIG_UI_KEYBOARD_INPUT_X2_C1, DXX_KCONFIG_UI_CELL_WIDTH, DXX_KCONFIG_UI_LABEL("Drop Bomb") DXX_KCONFIG_UI_UDLR(), BT_KEY, STATE_NONE, {&control_info::state_controls_t::drop_bomb} },
{DXX_KCONFIG_UI_KEYBOARD_LABEL_X2, DXX_KCONFIG_UI_KEYBOARD_X2_GROUP1_Y + DXX_KCONFIG_UI_ROW_CELL_HEIGHT( 3), DXX_KCONFIG_UI_KEYBOARD_INPUT_X2_C2, DXX_KCONFIG_UI_CELL_WIDTH, DXX_KCONFIG_UI_UDLR(), BT_KEY, STATE_NONE, {&control_info::state_controls_t::drop_bomb} },
{DXX_KCONFIG_UI_KEYBOARD_LABEL_X2, DXX_KCONFIG_UI_KEYBOARD_X2_GROUP2_Y + DXX_KCONFIG_UI_ROW_CELL_HEIGHT( 4), DXX_KCONFIG_UI_KEYBOARD_INPUT_X2_C1, DXX_KCONFIG_UI_CELL_WIDTH, DXX_KCONFIG_UI_LABEL("REAR VIEW") DXX_KCONFIG_UI_UDLR(), BT_KEY, STATE_BIT1, {&control_info::state_controls_t::rear_view} },
{DXX_KCONFIG_UI_KEYBOARD_LABEL_X2, DXX_KCONFIG_UI_KEYBOARD_X2_GROUP2_Y + DXX_KCONFIG_UI_ROW_CELL_HEIGHT( 4), DXX_KCONFIG_UI_KEYBOARD_INPUT_X2_C2, DXX_KCONFIG_UI_CELL_WIDTH, DXX_KCONFIG_UI_UDLR(), BT_KEY, STATE_BIT2, {&control_info::state_controls_t::rear_view} },
#if defined(DXX_BUILD_DESCENT_I)
@ -79,15 +79,15 @@ constexpr kc_item kc_keyboard[] = {
{DXX_KCONFIG_UI_KEYBOARD_LABEL_X2, DXX_KCONFIG_UI_KEYBOARD_X2_GROUP4_Y + DXX_KCONFIG_UI_ROW_CELL_HEIGHT( 8), DXX_KCONFIG_UI_KEYBOARD_INPUT_X2_C2, DXX_KCONFIG_UI_CELL_WIDTH, DXX_KCONFIG_UI_UDLR(), BT_KEY, STATE_BIT2, {&control_info::state_controls_t::cruise_plus} },
{DXX_KCONFIG_UI_KEYBOARD_LABEL_X2, DXX_KCONFIG_UI_KEYBOARD_X2_GROUP4_Y + DXX_KCONFIG_UI_ROW_CELL_HEIGHT( 9), DXX_KCONFIG_UI_KEYBOARD_INPUT_X2_C1, DXX_KCONFIG_UI_CELL_WIDTH, DXX_KCONFIG_UI_LABEL("Cruise Slower") DXX_KCONFIG_UI_UDLR(), BT_KEY, STATE_BIT1, {&control_info::state_controls_t::cruise_minus} },
{DXX_KCONFIG_UI_KEYBOARD_LABEL_X2, DXX_KCONFIG_UI_KEYBOARD_X2_GROUP4_Y + DXX_KCONFIG_UI_ROW_CELL_HEIGHT( 9), DXX_KCONFIG_UI_KEYBOARD_INPUT_X2_C2, DXX_KCONFIG_UI_CELL_WIDTH, DXX_KCONFIG_UI_UDLR(), BT_KEY, STATE_BIT2, {&control_info::state_controls_t::cruise_minus} },
{DXX_KCONFIG_UI_KEYBOARD_LABEL_X2, DXX_KCONFIG_UI_KEYBOARD_X2_GROUP4_Y + DXX_KCONFIG_UI_ROW_CELL_HEIGHT(10), DXX_KCONFIG_UI_KEYBOARD_INPUT_X2_C1, DXX_KCONFIG_UI_CELL_WIDTH, DXX_KCONFIG_UI_LABEL("Cruise Off") DXX_KCONFIG_UI_UDLR(), BT_KEY, 0, {&control_info::state_controls_t::cruise_off} },
{DXX_KCONFIG_UI_KEYBOARD_LABEL_X2, DXX_KCONFIG_UI_KEYBOARD_X2_GROUP4_Y + DXX_KCONFIG_UI_ROW_CELL_HEIGHT(10), DXX_KCONFIG_UI_KEYBOARD_INPUT_X2_C2, DXX_KCONFIG_UI_CELL_WIDTH, DXX_KCONFIG_UI_UDLR(), BT_KEY, 0, {&control_info::state_controls_t::cruise_off} },
{DXX_KCONFIG_UI_KEYBOARD_LABEL_X2, DXX_KCONFIG_UI_KEYBOARD_X2_GROUP4_Y + DXX_KCONFIG_UI_ROW_CELL_HEIGHT(10), DXX_KCONFIG_UI_KEYBOARD_INPUT_X2_C1, DXX_KCONFIG_UI_CELL_WIDTH, DXX_KCONFIG_UI_LABEL("Cruise Off") DXX_KCONFIG_UI_UDLR(), BT_KEY, STATE_NONE, {&control_info::state_controls_t::cruise_off} },
{DXX_KCONFIG_UI_KEYBOARD_LABEL_X2, DXX_KCONFIG_UI_KEYBOARD_X2_GROUP4_Y + DXX_KCONFIG_UI_ROW_CELL_HEIGHT(10), DXX_KCONFIG_UI_KEYBOARD_INPUT_X2_C2, DXX_KCONFIG_UI_CELL_WIDTH, DXX_KCONFIG_UI_UDLR(), BT_KEY, STATE_NONE, {&control_info::state_controls_t::cruise_off} },
#elif defined(DXX_BUILD_DESCENT_II)
{DXX_KCONFIG_UI_KEYBOARD_LABEL_X2, DXX_KCONFIG_UI_KEYBOARD_X2_GROUP4_Y + DXX_KCONFIG_UI_ROW_CELL_HEIGHT( 9), DXX_KCONFIG_UI_KEYBOARD_INPUT_X2_C1, DXX_KCONFIG_UI_CELL_WIDTH, DXX_KCONFIG_UI_LABEL("Cruise Faster") DXX_KCONFIG_UI_UDLR(), BT_KEY, STATE_BIT1, {&control_info::state_controls_t::cruise_plus} },
{DXX_KCONFIG_UI_KEYBOARD_LABEL_X2, DXX_KCONFIG_UI_KEYBOARD_X2_GROUP4_Y + DXX_KCONFIG_UI_ROW_CELL_HEIGHT( 9), DXX_KCONFIG_UI_KEYBOARD_INPUT_X2_C2, DXX_KCONFIG_UI_CELL_WIDTH, DXX_KCONFIG_UI_UDLR(), BT_KEY, STATE_BIT2, {&control_info::state_controls_t::cruise_plus} },
{DXX_KCONFIG_UI_KEYBOARD_LABEL_X2, DXX_KCONFIG_UI_KEYBOARD_X2_GROUP4_Y + DXX_KCONFIG_UI_ROW_CELL_HEIGHT(10), DXX_KCONFIG_UI_KEYBOARD_INPUT_X2_C1, DXX_KCONFIG_UI_CELL_WIDTH, DXX_KCONFIG_UI_LABEL("Cruise Slower") DXX_KCONFIG_UI_UDLR(), BT_KEY, STATE_BIT1, {&control_info::state_controls_t::cruise_minus} },
{DXX_KCONFIG_UI_KEYBOARD_LABEL_X2, DXX_KCONFIG_UI_KEYBOARD_X2_GROUP4_Y + DXX_KCONFIG_UI_ROW_CELL_HEIGHT(10), DXX_KCONFIG_UI_KEYBOARD_INPUT_X2_C2, DXX_KCONFIG_UI_CELL_WIDTH, DXX_KCONFIG_UI_UDLR(), BT_KEY, STATE_BIT2, {&control_info::state_controls_t::cruise_minus} },
{DXX_KCONFIG_UI_KEYBOARD_LABEL_X2, DXX_KCONFIG_UI_KEYBOARD_X2_GROUP4_Y + DXX_KCONFIG_UI_ROW_CELL_HEIGHT(11), DXX_KCONFIG_UI_KEYBOARD_INPUT_X2_C1, DXX_KCONFIG_UI_CELL_WIDTH, DXX_KCONFIG_UI_LABEL("Cruise Off") DXX_KCONFIG_UI_UDLR(), BT_KEY, 0, {&control_info::state_controls_t::cruise_off} },
{DXX_KCONFIG_UI_KEYBOARD_LABEL_X2, DXX_KCONFIG_UI_KEYBOARD_X2_GROUP4_Y + DXX_KCONFIG_UI_ROW_CELL_HEIGHT(11), DXX_KCONFIG_UI_KEYBOARD_INPUT_X2_C2, DXX_KCONFIG_UI_CELL_WIDTH, DXX_KCONFIG_UI_UDLR(), BT_KEY, 0, {&control_info::state_controls_t::cruise_off} },
{DXX_KCONFIG_UI_KEYBOARD_LABEL_X2, DXX_KCONFIG_UI_KEYBOARD_X2_GROUP4_Y + DXX_KCONFIG_UI_ROW_CELL_HEIGHT(11), DXX_KCONFIG_UI_KEYBOARD_INPUT_X2_C1, DXX_KCONFIG_UI_CELL_WIDTH, DXX_KCONFIG_UI_LABEL("Cruise Off") DXX_KCONFIG_UI_UDLR(), BT_KEY, STATE_NONE, {&control_info::state_controls_t::cruise_off} },
{DXX_KCONFIG_UI_KEYBOARD_LABEL_X2, DXX_KCONFIG_UI_KEYBOARD_X2_GROUP4_Y + DXX_KCONFIG_UI_ROW_CELL_HEIGHT(11), DXX_KCONFIG_UI_KEYBOARD_INPUT_X2_C2, DXX_KCONFIG_UI_CELL_WIDTH, DXX_KCONFIG_UI_UDLR(), BT_KEY, STATE_NONE, {&control_info::state_controls_t::cruise_off} },
#endif
{DXX_KCONFIG_UI_KEYBOARD_LABEL_X2, DXX_KCONFIG_UI_KEYBOARD_X2_GROUP2_Y + DXX_KCONFIG_UI_ROW_CELL_HEIGHT( 5), DXX_KCONFIG_UI_KEYBOARD_INPUT_X2_C1, DXX_KCONFIG_UI_CELL_WIDTH, DXX_KCONFIG_UI_LABEL("Automap") DXX_KCONFIG_UI_UDLR(), BT_KEY, STATE_BIT1, {&control_info::state_controls_t::automap} },
{DXX_KCONFIG_UI_KEYBOARD_LABEL_X2, DXX_KCONFIG_UI_KEYBOARD_X2_GROUP2_Y + DXX_KCONFIG_UI_ROW_CELL_HEIGHT( 5), DXX_KCONFIG_UI_KEYBOARD_INPUT_X2_C2, DXX_KCONFIG_UI_CELL_WIDTH, DXX_KCONFIG_UI_UDLR(), BT_KEY, STATE_BIT2, {&control_info::state_controls_t::automap} },
@ -95,16 +95,16 @@ constexpr kc_item kc_keyboard[] = {
{DXX_KCONFIG_UI_KEYBOARD_LABEL_X2, DXX_KCONFIG_UI_KEYBOARD_X2_GROUP3_Y + DXX_KCONFIG_UI_ROW_CELL_HEIGHT( 8), DXX_KCONFIG_UI_KEYBOARD_INPUT_X2_C1, DXX_KCONFIG_UI_CELL_WIDTH, DXX_KCONFIG_UI_LABEL("Afterburner") DXX_KCONFIG_UI_UDLR(), BT_KEY, STATE_BIT1, {&control_info::state_controls_t::afterburner} },
{DXX_KCONFIG_UI_KEYBOARD_LABEL_X2, DXX_KCONFIG_UI_KEYBOARD_X2_GROUP3_Y + DXX_KCONFIG_UI_ROW_CELL_HEIGHT( 8), DXX_KCONFIG_UI_KEYBOARD_INPUT_X2_C2, DXX_KCONFIG_UI_CELL_WIDTH, DXX_KCONFIG_UI_UDLR(), BT_KEY, STATE_BIT2, {&control_info::state_controls_t::afterburner} },
#endif
{DXX_KCONFIG_UI_KEYBOARD_LABEL_X1, DXX_KCONFIG_UI_KEYBOARD_X1_GROUP4_Y + DXX_KCONFIG_UI_ROW_CELL_HEIGHT(12), DXX_KCONFIG_UI_KEYBOARD_INPUT_X1_C1, DXX_KCONFIG_UI_CELL_WIDTH, DXX_KCONFIG_UI_LABEL("Cycle Primary") DXX_KCONFIG_UI_UDLR(), BT_KEY, 0, {&control_info::state_controls_t::cycle_primary} },
{DXX_KCONFIG_UI_KEYBOARD_LABEL_X1, DXX_KCONFIG_UI_KEYBOARD_X1_GROUP4_Y + DXX_KCONFIG_UI_ROW_CELL_HEIGHT(12), DXX_KCONFIG_UI_KEYBOARD_INPUT_X1_C2, DXX_KCONFIG_UI_CELL_WIDTH, DXX_KCONFIG_UI_UDLR(), BT_KEY, 0, {&control_info::state_controls_t::cycle_primary} },
{DXX_KCONFIG_UI_KEYBOARD_LABEL_X1, DXX_KCONFIG_UI_KEYBOARD_X1_GROUP4_Y + DXX_KCONFIG_UI_ROW_CELL_HEIGHT(13), DXX_KCONFIG_UI_KEYBOARD_INPUT_X1_C1, DXX_KCONFIG_UI_CELL_WIDTH, DXX_KCONFIG_UI_LABEL("Cycle Second.") DXX_KCONFIG_UI_UDLR(), BT_KEY, 0, {&control_info::state_controls_t::cycle_secondary} },
{DXX_KCONFIG_UI_KEYBOARD_LABEL_X1, DXX_KCONFIG_UI_KEYBOARD_X1_GROUP4_Y + DXX_KCONFIG_UI_ROW_CELL_HEIGHT(13), DXX_KCONFIG_UI_KEYBOARD_INPUT_X1_C2, DXX_KCONFIG_UI_CELL_WIDTH, DXX_KCONFIG_UI_UDLR(), BT_KEY, 0, {&control_info::state_controls_t::cycle_secondary} },
{DXX_KCONFIG_UI_KEYBOARD_LABEL_X1, DXX_KCONFIG_UI_KEYBOARD_X1_GROUP4_Y + DXX_KCONFIG_UI_ROW_CELL_HEIGHT(12), DXX_KCONFIG_UI_KEYBOARD_INPUT_X1_C1, DXX_KCONFIG_UI_CELL_WIDTH, DXX_KCONFIG_UI_LABEL("Cycle Primary") DXX_KCONFIG_UI_UDLR(), BT_KEY, STATE_NONE, {&control_info::state_controls_t::cycle_primary} },
{DXX_KCONFIG_UI_KEYBOARD_LABEL_X1, DXX_KCONFIG_UI_KEYBOARD_X1_GROUP4_Y + DXX_KCONFIG_UI_ROW_CELL_HEIGHT(12), DXX_KCONFIG_UI_KEYBOARD_INPUT_X1_C2, DXX_KCONFIG_UI_CELL_WIDTH, DXX_KCONFIG_UI_UDLR(), BT_KEY, STATE_NONE, {&control_info::state_controls_t::cycle_primary} },
{DXX_KCONFIG_UI_KEYBOARD_LABEL_X1, DXX_KCONFIG_UI_KEYBOARD_X1_GROUP4_Y + DXX_KCONFIG_UI_ROW_CELL_HEIGHT(13), DXX_KCONFIG_UI_KEYBOARD_INPUT_X1_C1, DXX_KCONFIG_UI_CELL_WIDTH, DXX_KCONFIG_UI_LABEL("Cycle Second.") DXX_KCONFIG_UI_UDLR(), BT_KEY, STATE_NONE, {&control_info::state_controls_t::cycle_secondary} },
{DXX_KCONFIG_UI_KEYBOARD_LABEL_X1, DXX_KCONFIG_UI_KEYBOARD_X1_GROUP4_Y + DXX_KCONFIG_UI_ROW_CELL_HEIGHT(13), DXX_KCONFIG_UI_KEYBOARD_INPUT_X1_C2, DXX_KCONFIG_UI_CELL_WIDTH, DXX_KCONFIG_UI_UDLR(), BT_KEY, STATE_NONE, {&control_info::state_controls_t::cycle_secondary} },
#if defined(DXX_BUILD_DESCENT_II)
{DXX_KCONFIG_UI_KEYBOARD_LABEL_X2, DXX_KCONFIG_UI_KEYBOARD_X2_GROUP5_Y + DXX_KCONFIG_UI_ROW_CELL_HEIGHT(12), DXX_KCONFIG_UI_KEYBOARD_INPUT_X2_C1, DXX_KCONFIG_UI_CELL_WIDTH, DXX_KCONFIG_UI_LABEL("Headlight") DXX_KCONFIG_UI_UDLR(), BT_KEY, 0, {&control_info::state_controls_t::headlight} },
{DXX_KCONFIG_UI_KEYBOARD_LABEL_X2, DXX_KCONFIG_UI_KEYBOARD_X2_GROUP5_Y + DXX_KCONFIG_UI_ROW_CELL_HEIGHT(12), DXX_KCONFIG_UI_KEYBOARD_INPUT_X2_C2, DXX_KCONFIG_UI_CELL_WIDTH, DXX_KCONFIG_UI_UDLR(), BT_KEY, 0, {&control_info::state_controls_t::headlight} },
{DXX_KCONFIG_UI_KEYBOARD_LABEL_X2, DXX_KCONFIG_UI_KEYBOARD_X2_GROUP5_Y + DXX_KCONFIG_UI_ROW_CELL_HEIGHT(12), DXX_KCONFIG_UI_KEYBOARD_INPUT_X2_C1, DXX_KCONFIG_UI_CELL_WIDTH, DXX_KCONFIG_UI_LABEL("Headlight") DXX_KCONFIG_UI_UDLR(), BT_KEY, STATE_NONE, {&control_info::state_controls_t::headlight} },
{DXX_KCONFIG_UI_KEYBOARD_LABEL_X2, DXX_KCONFIG_UI_KEYBOARD_X2_GROUP5_Y + DXX_KCONFIG_UI_ROW_CELL_HEIGHT(12), DXX_KCONFIG_UI_KEYBOARD_INPUT_X2_C2, DXX_KCONFIG_UI_CELL_WIDTH, DXX_KCONFIG_UI_UDLR(), BT_KEY, STATE_NONE, {&control_info::state_controls_t::headlight} },
{DXX_KCONFIG_UI_KEYBOARD_LABEL_X2, DXX_KCONFIG_UI_KEYBOARD_X2_GROUP5_Y + DXX_KCONFIG_UI_ROW_CELL_HEIGHT(13), DXX_KCONFIG_UI_KEYBOARD_INPUT_X2_C1, DXX_KCONFIG_UI_CELL_WIDTH, DXX_KCONFIG_UI_LABEL("Energy->Shield") DXX_KCONFIG_UI_UDLR(), BT_KEY, STATE_BIT1, {&control_info::state_controls_t::energy_to_shield} },
{DXX_KCONFIG_UI_KEYBOARD_LABEL_X2, DXX_KCONFIG_UI_KEYBOARD_X2_GROUP5_Y + DXX_KCONFIG_UI_ROW_CELL_HEIGHT(13), DXX_KCONFIG_UI_KEYBOARD_INPUT_X2_C2, DXX_KCONFIG_UI_CELL_WIDTH, DXX_KCONFIG_UI_UDLR(), BT_KEY, STATE_BIT2, {&control_info::state_controls_t::energy_to_shield} },
{DXX_KCONFIG_UI_KEYBOARD_LABEL_X2, DXX_KCONFIG_UI_KEYBOARD_X2_GROUP5_Y + DXX_KCONFIG_UI_ROW_CELL_HEIGHT(14), DXX_KCONFIG_UI_KEYBOARD_INPUT_X2_C1, DXX_KCONFIG_UI_CELL_WIDTH, DXX_KCONFIG_UI_LABEL("Toggle Bomb") DXX_KCONFIG_UI_UDLR(), BT_KEY, 0, {&control_info::state_controls_t::toggle_bomb} },
{DXX_KCONFIG_UI_KEYBOARD_LABEL_X2, DXX_KCONFIG_UI_KEYBOARD_X2_GROUP5_Y + DXX_KCONFIG_UI_ROW_CELL_HEIGHT(14), DXX_KCONFIG_UI_KEYBOARD_INPUT_X2_C1, DXX_KCONFIG_UI_CELL_WIDTH, DXX_KCONFIG_UI_LABEL("Toggle Bomb") DXX_KCONFIG_UI_UDLR(), BT_KEY, STATE_NONE, {&control_info::state_controls_t::toggle_bomb} },
#endif
};
@ -144,7 +144,7 @@ constexpr kc_item kc_joystick[] = {
{DXX_KCONFIG_UI_JOYSTICK_BUTTONS_LABEL_X1, DXX_KCONFIG_UI_JOYSTICK_BUTTONS_TOP_Y + DXX_KCONFIG_UI_ROW_CELL_HEIGHT( 1), DXX_KCONFIG_UI_JOYSTICK_BUTTONS_INPUT_X1_C1, DXX_KCONFIG_UI_CELL_WIDTH, DXX_KCONFIG_UI_LABEL("Fire secondary") DXX_KCONFIG_UI_UDLR(), BT_JOY_BUTTON, STATE_BIT3, {&control_info::state_controls_t::fire_secondary} },
{DXX_KCONFIG_UI_JOYSTICK_BUTTONS_LABEL_X1, DXX_KCONFIG_UI_JOYSTICK_BUTTONS_TOP_Y + DXX_KCONFIG_UI_ROW_CELL_HEIGHT( 4), DXX_KCONFIG_UI_JOYSTICK_BUTTONS_INPUT_X1_C1, DXX_KCONFIG_UI_CELL_WIDTH, DXX_KCONFIG_UI_LABEL("Accelerate") DXX_KCONFIG_UI_UDLR(), BT_JOY_BUTTON, STATE_BIT3, {&control_info::state_controls_t::accelerate} },
{DXX_KCONFIG_UI_JOYSTICK_BUTTONS_LABEL_X1, DXX_KCONFIG_UI_JOYSTICK_BUTTONS_TOP_Y + DXX_KCONFIG_UI_ROW_CELL_HEIGHT( 5), DXX_KCONFIG_UI_JOYSTICK_BUTTONS_INPUT_X1_C1, DXX_KCONFIG_UI_CELL_WIDTH, DXX_KCONFIG_UI_LABEL("Reverse") DXX_KCONFIG_UI_UDLR(), BT_JOY_BUTTON, STATE_BIT3, {&control_info::state_controls_t::reverse} },
{DXX_KCONFIG_UI_JOYSTICK_BUTTONS_LABEL_X1, DXX_KCONFIG_UI_JOYSTICK_BUTTONS_TOP_Y + DXX_KCONFIG_UI_ROW_CELL_HEIGHT( 2), DXX_KCONFIG_UI_JOYSTICK_BUTTONS_INPUT_X1_C1, DXX_KCONFIG_UI_CELL_WIDTH, DXX_KCONFIG_UI_LABEL("Fire flare") DXX_KCONFIG_UI_UDLR(), BT_JOY_BUTTON, 0, {&control_info::state_controls_t::fire_flare} },
{DXX_KCONFIG_UI_JOYSTICK_BUTTONS_LABEL_X1, DXX_KCONFIG_UI_JOYSTICK_BUTTONS_TOP_Y + DXX_KCONFIG_UI_ROW_CELL_HEIGHT( 2), DXX_KCONFIG_UI_JOYSTICK_BUTTONS_INPUT_X1_C1, DXX_KCONFIG_UI_CELL_WIDTH, DXX_KCONFIG_UI_LABEL("Fire flare") DXX_KCONFIG_UI_UDLR(), BT_JOY_BUTTON, STATE_NONE, {&control_info::state_controls_t::fire_flare} },
{DXX_KCONFIG_UI_JOYSTICK_BUTTONS_LABEL_X2, DXX_KCONFIG_UI_JOYSTICK_BUTTONS_TOP_Y + DXX_KCONFIG_UI_ROW_CELL_HEIGHT( 0), DXX_KCONFIG_UI_JOYSTICK_BUTTONS_INPUT_X2_C1, DXX_KCONFIG_UI_CELL_WIDTH, DXX_KCONFIG_UI_LABEL("Slide on") DXX_KCONFIG_UI_UDLR(), BT_JOY_BUTTON, STATE_BIT3, {&control_info::state_controls_t::slide_on} },
{DXX_KCONFIG_UI_JOYSTICK_BUTTONS_LABEL_X2, DXX_KCONFIG_UI_JOYSTICK_BUTTONS_TOP_Y + DXX_KCONFIG_UI_ROW_CELL_HEIGHT( 1), DXX_KCONFIG_UI_JOYSTICK_BUTTONS_INPUT_X2_C1, DXX_KCONFIG_UI_CELL_WIDTH, DXX_KCONFIG_UI_LABEL("Slide left") DXX_KCONFIG_UI_UDLR(), BT_JOY_BUTTON, STATE_BIT3, {&control_info::state_controls_t::btn_slide_left} },
{DXX_KCONFIG_UI_JOYSTICK_BUTTONS_LABEL_X2, DXX_KCONFIG_UI_JOYSTICK_BUTTONS_TOP_Y + DXX_KCONFIG_UI_ROW_CELL_HEIGHT( 2), DXX_KCONFIG_UI_JOYSTICK_BUTTONS_INPUT_X2_C1, DXX_KCONFIG_UI_CELL_WIDTH, DXX_KCONFIG_UI_LABEL("Slide right") DXX_KCONFIG_UI_UDLR(), BT_JOY_BUTTON, STATE_BIT3, {&control_info::state_controls_t::btn_slide_right} },
@ -155,36 +155,36 @@ constexpr kc_item kc_joystick[] = {
{DXX_KCONFIG_UI_JOYSTICK_BUTTONS_LABEL_X2, DXX_KCONFIG_UI_JOYSTICK_BUTTONS_TOP_Y + DXX_KCONFIG_UI_ROW_CELL_HEIGHT( 7), DXX_KCONFIG_UI_JOYSTICK_BUTTONS_INPUT_X2_C1, DXX_KCONFIG_UI_CELL_WIDTH, DXX_KCONFIG_UI_LABEL("Bank right") DXX_KCONFIG_UI_UDLR(), BT_JOY_BUTTON, STATE_BIT3, {&control_info::state_controls_t::btn_bank_right} },
#endif
#if DXX_MAX_AXES_PER_JOYSTICK
{DXX_KCONFIG_UI_JOYSTICK_AXES_LABEL_X1, DXX_KCONFIG_UI_JOYSTICK_AXES_TOP_Y + DXX_KCONFIG_UI_ROW_CELL_HEIGHT( 2), DXX_KCONFIG_UI_JOYSTICK_AXES_INPUT_X1_C1, DXX_KCONFIG_UI_CELL_WIDTH, DXX_KCONFIG_UI_ENUM(pitch) DXX_KCONFIG_UI_LABEL("Pitch U/D") DXX_KCONFIG_UI_UDLR(), BT_JOY_AXIS, 0, {nullptr} },
{DXX_KCONFIG_UI_JOYSTICK_AXES_LABEL_X1, DXX_KCONFIG_UI_JOYSTICK_AXES_TOP_Y + DXX_KCONFIG_UI_ROW_CELL_HEIGHT( 2), DXX_KCONFIG_UI_JOYSTICK_AXES_INPUT_X1_CI, DXX_KCONFIG_UI_INVERT_FLAG_WIDTH, DXX_KCONFIG_UI_UDLR(), BT_INVERT, 0, {nullptr} },
{DXX_KCONFIG_UI_JOYSTICK_AXES_LABEL_X1, DXX_KCONFIG_UI_JOYSTICK_AXES_TOP_Y + DXX_KCONFIG_UI_ROW_CELL_HEIGHT( 3), DXX_KCONFIG_UI_JOYSTICK_AXES_INPUT_X1_C1, DXX_KCONFIG_UI_CELL_WIDTH, DXX_KCONFIG_UI_ENUM(turn) DXX_KCONFIG_UI_LABEL("Turn L/R") DXX_KCONFIG_UI_UDLR(), BT_JOY_AXIS, 0, {nullptr} },
{DXX_KCONFIG_UI_JOYSTICK_AXES_LABEL_X1, DXX_KCONFIG_UI_JOYSTICK_AXES_TOP_Y + DXX_KCONFIG_UI_ROW_CELL_HEIGHT( 3), DXX_KCONFIG_UI_JOYSTICK_AXES_INPUT_X1_CI, DXX_KCONFIG_UI_INVERT_FLAG_WIDTH, DXX_KCONFIG_UI_UDLR(), BT_INVERT, 0, {nullptr} },
{DXX_KCONFIG_UI_JOYSTICK_AXES_LABEL_X2, DXX_KCONFIG_UI_JOYSTICK_AXES_TOP_Y + DXX_KCONFIG_UI_ROW_CELL_HEIGHT( 2), DXX_KCONFIG_UI_JOYSTICK_AXES_INPUT_X2_C1, DXX_KCONFIG_UI_CELL_WIDTH, DXX_KCONFIG_UI_ENUM(slide_lr) DXX_KCONFIG_UI_LABEL("Slide L/R") DXX_KCONFIG_UI_UDLR(), BT_JOY_AXIS, 0, {nullptr} },
{DXX_KCONFIG_UI_JOYSTICK_AXES_LABEL_X2, DXX_KCONFIG_UI_JOYSTICK_AXES_TOP_Y + DXX_KCONFIG_UI_ROW_CELL_HEIGHT( 2), DXX_KCONFIG_UI_JOYSTICK_AXES_INPUT_X2_CI, DXX_KCONFIG_UI_INVERT_FLAG_WIDTH, DXX_KCONFIG_UI_UDLR(), BT_INVERT, 0, {nullptr} },
{DXX_KCONFIG_UI_JOYSTICK_AXES_LABEL_X2, DXX_KCONFIG_UI_JOYSTICK_AXES_TOP_Y + DXX_KCONFIG_UI_ROW_CELL_HEIGHT( 3), DXX_KCONFIG_UI_JOYSTICK_AXES_INPUT_X2_C1, DXX_KCONFIG_UI_CELL_WIDTH, DXX_KCONFIG_UI_ENUM(slide_ud) DXX_KCONFIG_UI_LABEL("Slide U/D") DXX_KCONFIG_UI_UDLR(), BT_JOY_AXIS, 0, {nullptr} },
{DXX_KCONFIG_UI_JOYSTICK_AXES_LABEL_X2, DXX_KCONFIG_UI_JOYSTICK_AXES_TOP_Y + DXX_KCONFIG_UI_ROW_CELL_HEIGHT( 3), DXX_KCONFIG_UI_JOYSTICK_AXES_INPUT_X2_CI, DXX_KCONFIG_UI_INVERT_FLAG_WIDTH, DXX_KCONFIG_UI_UDLR(), BT_INVERT, 0, {nullptr} },
{DXX_KCONFIG_UI_JOYSTICK_AXES_LABEL_X2, DXX_KCONFIG_UI_JOYSTICK_AXES_TOP_Y + DXX_KCONFIG_UI_ROW_CELL_HEIGHT( 4), DXX_KCONFIG_UI_JOYSTICK_AXES_INPUT_X2_C1, DXX_KCONFIG_UI_CELL_WIDTH, DXX_KCONFIG_UI_ENUM(bank) DXX_KCONFIG_UI_LABEL("Bank L/R") DXX_KCONFIG_UI_UDLR(), BT_JOY_AXIS, 0, {nullptr} },
{DXX_KCONFIG_UI_JOYSTICK_AXES_LABEL_X2, DXX_KCONFIG_UI_JOYSTICK_AXES_TOP_Y + DXX_KCONFIG_UI_ROW_CELL_HEIGHT( 4), DXX_KCONFIG_UI_JOYSTICK_AXES_INPUT_X2_CI, DXX_KCONFIG_UI_INVERT_FLAG_WIDTH, DXX_KCONFIG_UI_UDLR(), BT_INVERT, 0, {nullptr} },
{DXX_KCONFIG_UI_JOYSTICK_AXES_LABEL_X2, DXX_KCONFIG_UI_JOYSTICK_AXES_TOP_Y + DXX_KCONFIG_UI_ROW_CELL_HEIGHT( 5), DXX_KCONFIG_UI_JOYSTICK_AXES_INPUT_X2_C1, DXX_KCONFIG_UI_CELL_WIDTH, DXX_KCONFIG_UI_ENUM(throttle) DXX_KCONFIG_UI_LABEL("Throttle") DXX_KCONFIG_UI_UDLR(), BT_JOY_AXIS, 0, {nullptr} },
{DXX_KCONFIG_UI_JOYSTICK_AXES_LABEL_X2, DXX_KCONFIG_UI_JOYSTICK_AXES_TOP_Y + DXX_KCONFIG_UI_ROW_CELL_HEIGHT( 5), DXX_KCONFIG_UI_JOYSTICK_AXES_INPUT_X2_CI, DXX_KCONFIG_UI_INVERT_FLAG_WIDTH, DXX_KCONFIG_UI_UDLR(), BT_INVERT, 0, {nullptr} },
{DXX_KCONFIG_UI_JOYSTICK_AXES_LABEL_X1, DXX_KCONFIG_UI_JOYSTICK_AXES_TOP_Y + DXX_KCONFIG_UI_ROW_CELL_HEIGHT( 2), DXX_KCONFIG_UI_JOYSTICK_AXES_INPUT_X1_C1, DXX_KCONFIG_UI_CELL_WIDTH, DXX_KCONFIG_UI_ENUM(pitch) DXX_KCONFIG_UI_LABEL("Pitch U/D") DXX_KCONFIG_UI_UDLR(), BT_JOY_AXIS, STATE_NONE, {nullptr} },
{DXX_KCONFIG_UI_JOYSTICK_AXES_LABEL_X1, DXX_KCONFIG_UI_JOYSTICK_AXES_TOP_Y + DXX_KCONFIG_UI_ROW_CELL_HEIGHT( 2), DXX_KCONFIG_UI_JOYSTICK_AXES_INPUT_X1_CI, DXX_KCONFIG_UI_INVERT_FLAG_WIDTH, DXX_KCONFIG_UI_UDLR(), BT_INVERT, STATE_NONE, {nullptr} },
{DXX_KCONFIG_UI_JOYSTICK_AXES_LABEL_X1, DXX_KCONFIG_UI_JOYSTICK_AXES_TOP_Y + DXX_KCONFIG_UI_ROW_CELL_HEIGHT( 3), DXX_KCONFIG_UI_JOYSTICK_AXES_INPUT_X1_C1, DXX_KCONFIG_UI_CELL_WIDTH, DXX_KCONFIG_UI_ENUM(turn) DXX_KCONFIG_UI_LABEL("Turn L/R") DXX_KCONFIG_UI_UDLR(), BT_JOY_AXIS, STATE_NONE, {nullptr} },
{DXX_KCONFIG_UI_JOYSTICK_AXES_LABEL_X1, DXX_KCONFIG_UI_JOYSTICK_AXES_TOP_Y + DXX_KCONFIG_UI_ROW_CELL_HEIGHT( 3), DXX_KCONFIG_UI_JOYSTICK_AXES_INPUT_X1_CI, DXX_KCONFIG_UI_INVERT_FLAG_WIDTH, DXX_KCONFIG_UI_UDLR(), BT_INVERT, STATE_NONE, {nullptr} },
{DXX_KCONFIG_UI_JOYSTICK_AXES_LABEL_X2, DXX_KCONFIG_UI_JOYSTICK_AXES_TOP_Y + DXX_KCONFIG_UI_ROW_CELL_HEIGHT( 2), DXX_KCONFIG_UI_JOYSTICK_AXES_INPUT_X2_C1, DXX_KCONFIG_UI_CELL_WIDTH, DXX_KCONFIG_UI_ENUM(slide_lr) DXX_KCONFIG_UI_LABEL("Slide L/R") DXX_KCONFIG_UI_UDLR(), BT_JOY_AXIS, STATE_NONE, {nullptr} },
{DXX_KCONFIG_UI_JOYSTICK_AXES_LABEL_X2, DXX_KCONFIG_UI_JOYSTICK_AXES_TOP_Y + DXX_KCONFIG_UI_ROW_CELL_HEIGHT( 2), DXX_KCONFIG_UI_JOYSTICK_AXES_INPUT_X2_CI, DXX_KCONFIG_UI_INVERT_FLAG_WIDTH, DXX_KCONFIG_UI_UDLR(), BT_INVERT, STATE_NONE, {nullptr} },
{DXX_KCONFIG_UI_JOYSTICK_AXES_LABEL_X2, DXX_KCONFIG_UI_JOYSTICK_AXES_TOP_Y + DXX_KCONFIG_UI_ROW_CELL_HEIGHT( 3), DXX_KCONFIG_UI_JOYSTICK_AXES_INPUT_X2_C1, DXX_KCONFIG_UI_CELL_WIDTH, DXX_KCONFIG_UI_ENUM(slide_ud) DXX_KCONFIG_UI_LABEL("Slide U/D") DXX_KCONFIG_UI_UDLR(), BT_JOY_AXIS, STATE_NONE, {nullptr} },
{DXX_KCONFIG_UI_JOYSTICK_AXES_LABEL_X2, DXX_KCONFIG_UI_JOYSTICK_AXES_TOP_Y + DXX_KCONFIG_UI_ROW_CELL_HEIGHT( 3), DXX_KCONFIG_UI_JOYSTICK_AXES_INPUT_X2_CI, DXX_KCONFIG_UI_INVERT_FLAG_WIDTH, DXX_KCONFIG_UI_UDLR(), BT_INVERT, STATE_NONE, {nullptr} },
{DXX_KCONFIG_UI_JOYSTICK_AXES_LABEL_X2, DXX_KCONFIG_UI_JOYSTICK_AXES_TOP_Y + DXX_KCONFIG_UI_ROW_CELL_HEIGHT( 4), DXX_KCONFIG_UI_JOYSTICK_AXES_INPUT_X2_C1, DXX_KCONFIG_UI_CELL_WIDTH, DXX_KCONFIG_UI_ENUM(bank) DXX_KCONFIG_UI_LABEL("Bank L/R") DXX_KCONFIG_UI_UDLR(), BT_JOY_AXIS, STATE_NONE, {nullptr} },
{DXX_KCONFIG_UI_JOYSTICK_AXES_LABEL_X2, DXX_KCONFIG_UI_JOYSTICK_AXES_TOP_Y + DXX_KCONFIG_UI_ROW_CELL_HEIGHT( 4), DXX_KCONFIG_UI_JOYSTICK_AXES_INPUT_X2_CI, DXX_KCONFIG_UI_INVERT_FLAG_WIDTH, DXX_KCONFIG_UI_UDLR(), BT_INVERT, STATE_NONE, {nullptr} },
{DXX_KCONFIG_UI_JOYSTICK_AXES_LABEL_X2, DXX_KCONFIG_UI_JOYSTICK_AXES_TOP_Y + DXX_KCONFIG_UI_ROW_CELL_HEIGHT( 5), DXX_KCONFIG_UI_JOYSTICK_AXES_INPUT_X2_C1, DXX_KCONFIG_UI_CELL_WIDTH, DXX_KCONFIG_UI_ENUM(throttle) DXX_KCONFIG_UI_LABEL("Throttle") DXX_KCONFIG_UI_UDLR(), BT_JOY_AXIS, STATE_NONE, {nullptr} },
{DXX_KCONFIG_UI_JOYSTICK_AXES_LABEL_X2, DXX_KCONFIG_UI_JOYSTICK_AXES_TOP_Y + DXX_KCONFIG_UI_ROW_CELL_HEIGHT( 5), DXX_KCONFIG_UI_JOYSTICK_AXES_INPUT_X2_CI, DXX_KCONFIG_UI_INVERT_FLAG_WIDTH, DXX_KCONFIG_UI_UDLR(), BT_INVERT, STATE_NONE, {nullptr} },
#endif
#if DXX_MAX_BUTTONS_PER_JOYSTICK || DXX_MAX_HATS_PER_JOYSTICK
{DXX_KCONFIG_UI_JOYSTICK_BUTTONS_LABEL_X1, DXX_KCONFIG_UI_JOYSTICK_BUTTONS_TOP_Y + DXX_KCONFIG_UI_ROW_CELL_HEIGHT( 6), DXX_KCONFIG_UI_JOYSTICK_BUTTONS_INPUT_X1_C1, DXX_KCONFIG_UI_CELL_WIDTH, DXX_KCONFIG_UI_LABEL("Rear view") DXX_KCONFIG_UI_UDLR(), BT_JOY_BUTTON, STATE_BIT3, {&control_info::state_controls_t::rear_view} },
{DXX_KCONFIG_UI_JOYSTICK_BUTTONS_LABEL_X1, DXX_KCONFIG_UI_JOYSTICK_BUTTONS_TOP_Y + DXX_KCONFIG_UI_ROW_CELL_HEIGHT( 3), DXX_KCONFIG_UI_JOYSTICK_BUTTONS_INPUT_X1_C1, DXX_KCONFIG_UI_CELL_WIDTH, DXX_KCONFIG_UI_LABEL("Drop bomb") DXX_KCONFIG_UI_UDLR(), BT_JOY_BUTTON, 0, {&control_info::state_controls_t::drop_bomb} },
{DXX_KCONFIG_UI_JOYSTICK_BUTTONS_LABEL_X1, DXX_KCONFIG_UI_JOYSTICK_BUTTONS_TOP_Y + DXX_KCONFIG_UI_ROW_CELL_HEIGHT( 3), DXX_KCONFIG_UI_JOYSTICK_BUTTONS_INPUT_X1_C1, DXX_KCONFIG_UI_CELL_WIDTH, DXX_KCONFIG_UI_LABEL("Drop bomb") DXX_KCONFIG_UI_UDLR(), BT_JOY_BUTTON, STATE_NONE, {&control_info::state_controls_t::drop_bomb} },
#if defined(DXX_BUILD_DESCENT_I)
{DXX_KCONFIG_UI_JOYSTICK_BUTTONS_LABEL_X1, DXX_KCONFIG_UI_JOYSTICK_BUTTONS_TOP_Y + DXX_KCONFIG_UI_ROW_CELL_HEIGHT( 7), DXX_KCONFIG_UI_JOYSTICK_BUTTONS_INPUT_X1_C1, DXX_KCONFIG_UI_CELL_WIDTH, DXX_KCONFIG_UI_LABEL("Automap") DXX_KCONFIG_UI_UDLR(), BT_JOY_BUTTON, STATE_BIT3, {&control_info::state_controls_t::automap} },
{DXX_KCONFIG_UI_JOYSTICK_BUTTONS_LABEL_X1, DXX_KCONFIG_UI_JOYSTICK_BUTTONS_TOP_Y + DXX_KCONFIG_UI_ROW_CELL_HEIGHT( 7), DXX_KCONFIG_UI_JOYSTICK_BUTTONS_INPUT_X1_C2, DXX_KCONFIG_UI_CELL_WIDTH, DXX_KCONFIG_UI_UDLR(), BT_JOY_BUTTON, STATE_BIT4, {&control_info::state_controls_t::automap} },
#elif defined(DXX_BUILD_DESCENT_II)
{DXX_KCONFIG_UI_JOYSTICK_BUTTONS_LABEL_X1, DXX_KCONFIG_UI_JOYSTICK_BUTTONS_TOP_Y + DXX_KCONFIG_UI_ROW_CELL_HEIGHT( 7), DXX_KCONFIG_UI_JOYSTICK_BUTTONS_INPUT_X1_C1, DXX_KCONFIG_UI_CELL_WIDTH, DXX_KCONFIG_UI_LABEL("Afterburner") DXX_KCONFIG_UI_UDLR(), BT_JOY_BUTTON, STATE_BIT3, {&control_info::state_controls_t::afterburner} },
{DXX_KCONFIG_UI_JOYSTICK_BUTTONS_LABEL_X2, DXX_KCONFIG_UI_JOYSTICK_BUTTONS_TOP_Y + DXX_KCONFIG_UI_ROW_CELL_HEIGHT( 8), DXX_KCONFIG_UI_JOYSTICK_BUTTONS_INPUT_X2_C1, DXX_KCONFIG_UI_CELL_WIDTH, DXX_KCONFIG_UI_LABEL("Cycle Primary") DXX_KCONFIG_UI_UDLR(), BT_JOY_BUTTON, 0, {&control_info::state_controls_t::cycle_primary} },
{DXX_KCONFIG_UI_JOYSTICK_BUTTONS_LABEL_X2, DXX_KCONFIG_UI_JOYSTICK_BUTTONS_TOP_Y + DXX_KCONFIG_UI_ROW_CELL_HEIGHT( 9), DXX_KCONFIG_UI_JOYSTICK_BUTTONS_INPUT_X2_C1, DXX_KCONFIG_UI_CELL_WIDTH, DXX_KCONFIG_UI_LABEL("Cycle Secondary") DXX_KCONFIG_UI_UDLR(), BT_JOY_BUTTON, 0, {&control_info::state_controls_t::cycle_secondary} },
{DXX_KCONFIG_UI_JOYSTICK_BUTTONS_LABEL_X1, DXX_KCONFIG_UI_JOYSTICK_BUTTONS_TOP_Y + DXX_KCONFIG_UI_ROW_CELL_HEIGHT( 8), DXX_KCONFIG_UI_JOYSTICK_BUTTONS_INPUT_X1_C1, DXX_KCONFIG_UI_CELL_WIDTH, DXX_KCONFIG_UI_LABEL("Headlight") DXX_KCONFIG_UI_UDLR(), BT_JOY_BUTTON, 0, {&control_info::state_controls_t::headlight} },
{DXX_KCONFIG_UI_JOYSTICK_BUTTONS_LABEL_X2, DXX_KCONFIG_UI_JOYSTICK_BUTTONS_TOP_Y + DXX_KCONFIG_UI_ROW_CELL_HEIGHT( 8), DXX_KCONFIG_UI_JOYSTICK_BUTTONS_INPUT_X2_C1, DXX_KCONFIG_UI_CELL_WIDTH, DXX_KCONFIG_UI_LABEL("Cycle Primary") DXX_KCONFIG_UI_UDLR(), BT_JOY_BUTTON, STATE_NONE, {&control_info::state_controls_t::cycle_primary} },
{DXX_KCONFIG_UI_JOYSTICK_BUTTONS_LABEL_X2, DXX_KCONFIG_UI_JOYSTICK_BUTTONS_TOP_Y + DXX_KCONFIG_UI_ROW_CELL_HEIGHT( 9), DXX_KCONFIG_UI_JOYSTICK_BUTTONS_INPUT_X2_C1, DXX_KCONFIG_UI_CELL_WIDTH, DXX_KCONFIG_UI_LABEL("Cycle Secondary") DXX_KCONFIG_UI_UDLR(), BT_JOY_BUTTON, STATE_NONE, {&control_info::state_controls_t::cycle_secondary} },
{DXX_KCONFIG_UI_JOYSTICK_BUTTONS_LABEL_X1, DXX_KCONFIG_UI_JOYSTICK_BUTTONS_TOP_Y + DXX_KCONFIG_UI_ROW_CELL_HEIGHT( 8), DXX_KCONFIG_UI_JOYSTICK_BUTTONS_INPUT_X1_C1, DXX_KCONFIG_UI_CELL_WIDTH, DXX_KCONFIG_UI_LABEL("Headlight") DXX_KCONFIG_UI_UDLR(), BT_JOY_BUTTON, STATE_NONE, {&control_info::state_controls_t::headlight} },
#endif
{DXX_KCONFIG_UI_JOYSTICK_BUTTONS_LABEL_X1, DXX_KCONFIG_UI_JOYSTICK_BUTTONS_TOP_Y + DXX_KCONFIG_UI_ROW_CELL_HEIGHT( 0), DXX_KCONFIG_UI_JOYSTICK_BUTTONS_INPUT_X1_C2, DXX_KCONFIG_UI_CELL_WIDTH, DXX_KCONFIG_UI_LABEL("Fire primary") DXX_KCONFIG_UI_UDLR(), BT_JOY_BUTTON, STATE_BIT4, {&control_info::state_controls_t::fire_primary} },
{DXX_KCONFIG_UI_JOYSTICK_BUTTONS_LABEL_X1, DXX_KCONFIG_UI_JOYSTICK_BUTTONS_TOP_Y + DXX_KCONFIG_UI_ROW_CELL_HEIGHT( 1), DXX_KCONFIG_UI_JOYSTICK_BUTTONS_INPUT_X1_C2, DXX_KCONFIG_UI_CELL_WIDTH, DXX_KCONFIG_UI_LABEL("Fire secondary") DXX_KCONFIG_UI_UDLR(), BT_JOY_BUTTON, STATE_BIT4, {&control_info::state_controls_t::fire_secondary} },
{DXX_KCONFIG_UI_JOYSTICK_BUTTONS_LABEL_X1, DXX_KCONFIG_UI_JOYSTICK_BUTTONS_TOP_Y + DXX_KCONFIG_UI_ROW_CELL_HEIGHT( 4), DXX_KCONFIG_UI_JOYSTICK_BUTTONS_INPUT_X1_C2, DXX_KCONFIG_UI_CELL_WIDTH, DXX_KCONFIG_UI_LABEL("Accelerate") DXX_KCONFIG_UI_UDLR(), BT_JOY_BUTTON, STATE_BIT4, {&control_info::state_controls_t::accelerate} },
{DXX_KCONFIG_UI_JOYSTICK_BUTTONS_LABEL_X1, DXX_KCONFIG_UI_JOYSTICK_BUTTONS_TOP_Y + DXX_KCONFIG_UI_ROW_CELL_HEIGHT( 5), DXX_KCONFIG_UI_JOYSTICK_BUTTONS_INPUT_X1_C2, DXX_KCONFIG_UI_CELL_WIDTH, DXX_KCONFIG_UI_LABEL("Reverse") DXX_KCONFIG_UI_UDLR(), BT_JOY_BUTTON, STATE_BIT4, {&control_info::state_controls_t::reverse} },
{DXX_KCONFIG_UI_JOYSTICK_BUTTONS_LABEL_X1, DXX_KCONFIG_UI_JOYSTICK_BUTTONS_TOP_Y + DXX_KCONFIG_UI_ROW_CELL_HEIGHT( 2), DXX_KCONFIG_UI_JOYSTICK_BUTTONS_INPUT_X1_C2, DXX_KCONFIG_UI_CELL_WIDTH, DXX_KCONFIG_UI_LABEL("Fire flare") DXX_KCONFIG_UI_UDLR(), BT_JOY_BUTTON, 0, {&control_info::state_controls_t::fire_flare} },
{DXX_KCONFIG_UI_JOYSTICK_BUTTONS_LABEL_X1, DXX_KCONFIG_UI_JOYSTICK_BUTTONS_TOP_Y + DXX_KCONFIG_UI_ROW_CELL_HEIGHT( 2), DXX_KCONFIG_UI_JOYSTICK_BUTTONS_INPUT_X1_C2, DXX_KCONFIG_UI_CELL_WIDTH, DXX_KCONFIG_UI_LABEL("Fire flare") DXX_KCONFIG_UI_UDLR(), BT_JOY_BUTTON, STATE_NONE, {&control_info::state_controls_t::fire_flare} },
{DXX_KCONFIG_UI_JOYSTICK_BUTTONS_LABEL_X2, DXX_KCONFIG_UI_JOYSTICK_BUTTONS_TOP_Y + DXX_KCONFIG_UI_ROW_CELL_HEIGHT( 0), DXX_KCONFIG_UI_JOYSTICK_BUTTONS_INPUT_X2_C2, DXX_KCONFIG_UI_CELL_WIDTH, DXX_KCONFIG_UI_LABEL("Slide on") DXX_KCONFIG_UI_UDLR(), BT_JOY_BUTTON, STATE_BIT4, {&control_info::state_controls_t::slide_on} },
{DXX_KCONFIG_UI_JOYSTICK_BUTTONS_LABEL_X2, DXX_KCONFIG_UI_JOYSTICK_BUTTONS_TOP_Y + DXX_KCONFIG_UI_ROW_CELL_HEIGHT( 1), DXX_KCONFIG_UI_JOYSTICK_BUTTONS_INPUT_X2_C2, DXX_KCONFIG_UI_CELL_WIDTH, DXX_KCONFIG_UI_LABEL("Slide left") DXX_KCONFIG_UI_UDLR(), BT_JOY_BUTTON, STATE_BIT4, {&control_info::state_controls_t::btn_slide_left} },
{DXX_KCONFIG_UI_JOYSTICK_BUTTONS_LABEL_X2, DXX_KCONFIG_UI_JOYSTICK_BUTTONS_TOP_Y + DXX_KCONFIG_UI_ROW_CELL_HEIGHT( 2), DXX_KCONFIG_UI_JOYSTICK_BUTTONS_INPUT_X2_C2, DXX_KCONFIG_UI_CELL_WIDTH, DXX_KCONFIG_UI_LABEL("Slide right") DXX_KCONFIG_UI_UDLR(), BT_JOY_BUTTON, STATE_BIT4, {&control_info::state_controls_t::btn_slide_right} },
@ -194,23 +194,23 @@ constexpr kc_item kc_joystick[] = {
{DXX_KCONFIG_UI_JOYSTICK_BUTTONS_LABEL_X2, DXX_KCONFIG_UI_JOYSTICK_BUTTONS_TOP_Y + DXX_KCONFIG_UI_ROW_CELL_HEIGHT( 6), DXX_KCONFIG_UI_JOYSTICK_BUTTONS_INPUT_X2_C2, DXX_KCONFIG_UI_CELL_WIDTH, DXX_KCONFIG_UI_LABEL("Bank left") DXX_KCONFIG_UI_UDLR(), BT_JOY_BUTTON, STATE_BIT4, {&control_info::state_controls_t::btn_bank_left} },
{DXX_KCONFIG_UI_JOYSTICK_BUTTONS_LABEL_X2, DXX_KCONFIG_UI_JOYSTICK_BUTTONS_TOP_Y + DXX_KCONFIG_UI_ROW_CELL_HEIGHT( 7), DXX_KCONFIG_UI_JOYSTICK_BUTTONS_INPUT_X2_C2, DXX_KCONFIG_UI_CELL_WIDTH, DXX_KCONFIG_UI_LABEL("Bank right") DXX_KCONFIG_UI_UDLR(), BT_JOY_BUTTON, STATE_BIT4, {&control_info::state_controls_t::btn_bank_right} },
{DXX_KCONFIG_UI_JOYSTICK_BUTTONS_LABEL_X1, DXX_KCONFIG_UI_JOYSTICK_BUTTONS_TOP_Y + DXX_KCONFIG_UI_ROW_CELL_HEIGHT( 6), DXX_KCONFIG_UI_JOYSTICK_BUTTONS_INPUT_X1_C2, DXX_KCONFIG_UI_CELL_WIDTH, DXX_KCONFIG_UI_LABEL("Rear view") DXX_KCONFIG_UI_UDLR(), BT_JOY_BUTTON, STATE_BIT4, {&control_info::state_controls_t::rear_view} },
{DXX_KCONFIG_UI_JOYSTICK_BUTTONS_LABEL_X1, DXX_KCONFIG_UI_JOYSTICK_BUTTONS_TOP_Y + DXX_KCONFIG_UI_ROW_CELL_HEIGHT( 3), DXX_KCONFIG_UI_JOYSTICK_BUTTONS_INPUT_X1_C2, DXX_KCONFIG_UI_CELL_WIDTH, DXX_KCONFIG_UI_LABEL("Drop bomb") DXX_KCONFIG_UI_UDLR(), BT_JOY_BUTTON, 0, {&control_info::state_controls_t::drop_bomb} },
{DXX_KCONFIG_UI_JOYSTICK_BUTTONS_LABEL_X1, DXX_KCONFIG_UI_JOYSTICK_BUTTONS_TOP_Y + DXX_KCONFIG_UI_ROW_CELL_HEIGHT( 3), DXX_KCONFIG_UI_JOYSTICK_BUTTONS_INPUT_X1_C2, DXX_KCONFIG_UI_CELL_WIDTH, DXX_KCONFIG_UI_LABEL("Drop bomb") DXX_KCONFIG_UI_UDLR(), BT_JOY_BUTTON, STATE_NONE, {&control_info::state_controls_t::drop_bomb} },
#if defined(DXX_BUILD_DESCENT_I)
{DXX_KCONFIG_UI_JOYSTICK_BUTTONS_LABEL_X2, DXX_KCONFIG_UI_JOYSTICK_BUTTONS_TOP_Y + DXX_KCONFIG_UI_ROW_CELL_HEIGHT( 8), DXX_KCONFIG_UI_JOYSTICK_BUTTONS_INPUT_X2_C1, DXX_KCONFIG_UI_CELL_WIDTH, DXX_KCONFIG_UI_LABEL("Cycle Primary") DXX_KCONFIG_UI_UDLR(), BT_JOY_BUTTON, 0, {&control_info::state_controls_t::cycle_primary} },
{DXX_KCONFIG_UI_JOYSTICK_BUTTONS_LABEL_X2, DXX_KCONFIG_UI_JOYSTICK_BUTTONS_TOP_Y + DXX_KCONFIG_UI_ROW_CELL_HEIGHT( 9), DXX_KCONFIG_UI_JOYSTICK_BUTTONS_INPUT_X2_C1, DXX_KCONFIG_UI_CELL_WIDTH, DXX_KCONFIG_UI_LABEL("Cycle Secondary") DXX_KCONFIG_UI_UDLR(), BT_JOY_BUTTON, 0, {&control_info::state_controls_t::cycle_secondary} },
{DXX_KCONFIG_UI_JOYSTICK_BUTTONS_LABEL_X2, DXX_KCONFIG_UI_JOYSTICK_BUTTONS_TOP_Y + DXX_KCONFIG_UI_ROW_CELL_HEIGHT( 8), DXX_KCONFIG_UI_JOYSTICK_BUTTONS_INPUT_X2_C1, DXX_KCONFIG_UI_CELL_WIDTH, DXX_KCONFIG_UI_LABEL("Cycle Primary") DXX_KCONFIG_UI_UDLR(), BT_JOY_BUTTON, STATE_NONE, {&control_info::state_controls_t::cycle_primary} },
{DXX_KCONFIG_UI_JOYSTICK_BUTTONS_LABEL_X2, DXX_KCONFIG_UI_JOYSTICK_BUTTONS_TOP_Y + DXX_KCONFIG_UI_ROW_CELL_HEIGHT( 9), DXX_KCONFIG_UI_JOYSTICK_BUTTONS_INPUT_X2_C1, DXX_KCONFIG_UI_CELL_WIDTH, DXX_KCONFIG_UI_LABEL("Cycle Secondary") DXX_KCONFIG_UI_UDLR(), BT_JOY_BUTTON, STATE_NONE, {&control_info::state_controls_t::cycle_secondary} },
#elif defined(DXX_BUILD_DESCENT_II)
{DXX_KCONFIG_UI_JOYSTICK_BUTTONS_LABEL_X1, DXX_KCONFIG_UI_JOYSTICK_BUTTONS_TOP_Y + DXX_KCONFIG_UI_ROW_CELL_HEIGHT( 7), DXX_KCONFIG_UI_JOYSTICK_BUTTONS_INPUT_X1_C2, DXX_KCONFIG_UI_CELL_WIDTH, DXX_KCONFIG_UI_LABEL(DXX_KCONFIG_UI_LABEL_BLANK) DXX_KCONFIG_UI_UDLR(), BT_JOY_BUTTON, STATE_BIT4, {&control_info::state_controls_t::afterburner} },
#endif
{DXX_KCONFIG_UI_JOYSTICK_BUTTONS_LABEL_X2, DXX_KCONFIG_UI_JOYSTICK_BUTTONS_TOP_Y + DXX_KCONFIG_UI_ROW_CELL_HEIGHT( 8), DXX_KCONFIG_UI_JOYSTICK_BUTTONS_INPUT_X2_C2, DXX_KCONFIG_UI_CELL_WIDTH, DXX_KCONFIG_UI_LABEL(DXX_KCONFIG_UI_LABEL_BLANK) DXX_KCONFIG_UI_UDLR(), BT_JOY_BUTTON, 0, {&control_info::state_controls_t::cycle_primary} },
{DXX_KCONFIG_UI_JOYSTICK_BUTTONS_LABEL_X2, DXX_KCONFIG_UI_JOYSTICK_BUTTONS_TOP_Y + DXX_KCONFIG_UI_ROW_CELL_HEIGHT( 9), DXX_KCONFIG_UI_JOYSTICK_BUTTONS_INPUT_X2_C2, DXX_KCONFIG_UI_CELL_WIDTH, DXX_KCONFIG_UI_LABEL(DXX_KCONFIG_UI_LABEL_BLANK) DXX_KCONFIG_UI_UDLR(), BT_JOY_BUTTON, 0, {&control_info::state_controls_t::cycle_secondary} },
{DXX_KCONFIG_UI_JOYSTICK_BUTTONS_LABEL_X2, DXX_KCONFIG_UI_JOYSTICK_BUTTONS_TOP_Y + DXX_KCONFIG_UI_ROW_CELL_HEIGHT( 8), DXX_KCONFIG_UI_JOYSTICK_BUTTONS_INPUT_X2_C2, DXX_KCONFIG_UI_CELL_WIDTH, DXX_KCONFIG_UI_LABEL(DXX_KCONFIG_UI_LABEL_BLANK) DXX_KCONFIG_UI_UDLR(), BT_JOY_BUTTON, STATE_NONE, {&control_info::state_controls_t::cycle_primary} },
{DXX_KCONFIG_UI_JOYSTICK_BUTTONS_LABEL_X2, DXX_KCONFIG_UI_JOYSTICK_BUTTONS_TOP_Y + DXX_KCONFIG_UI_ROW_CELL_HEIGHT( 9), DXX_KCONFIG_UI_JOYSTICK_BUTTONS_INPUT_X2_C2, DXX_KCONFIG_UI_CELL_WIDTH, DXX_KCONFIG_UI_LABEL(DXX_KCONFIG_UI_LABEL_BLANK) DXX_KCONFIG_UI_UDLR(), BT_JOY_BUTTON, STATE_NONE, {&control_info::state_controls_t::cycle_secondary} },
#if defined(DXX_BUILD_DESCENT_II)
{DXX_KCONFIG_UI_JOYSTICK_BUTTONS_LABEL_X1, DXX_KCONFIG_UI_JOYSTICK_BUTTONS_TOP_Y + DXX_KCONFIG_UI_ROW_CELL_HEIGHT( 8), DXX_KCONFIG_UI_JOYSTICK_BUTTONS_INPUT_X1_C2, DXX_KCONFIG_UI_CELL_WIDTH, DXX_KCONFIG_UI_LABEL(DXX_KCONFIG_UI_LABEL_BLANK) DXX_KCONFIG_UI_UDLR(), BT_JOY_BUTTON, 0, {&control_info::state_controls_t::headlight} },
{DXX_KCONFIG_UI_JOYSTICK_BUTTONS_LABEL_X1, DXX_KCONFIG_UI_JOYSTICK_BUTTONS_TOP_Y + DXX_KCONFIG_UI_ROW_CELL_HEIGHT( 8), DXX_KCONFIG_UI_JOYSTICK_BUTTONS_INPUT_X1_C2, DXX_KCONFIG_UI_CELL_WIDTH, DXX_KCONFIG_UI_LABEL(DXX_KCONFIG_UI_LABEL_BLANK) DXX_KCONFIG_UI_UDLR(), BT_JOY_BUTTON, STATE_NONE, {&control_info::state_controls_t::headlight} },
{DXX_KCONFIG_UI_JOYSTICK_BUTTONS_LABEL_X1, DXX_KCONFIG_UI_JOYSTICK_BUTTONS_TOP_Y + DXX_KCONFIG_UI_ROW_CELL_HEIGHT(10), DXX_KCONFIG_UI_JOYSTICK_BUTTONS_INPUT_X1_C1, DXX_KCONFIG_UI_CELL_WIDTH, DXX_KCONFIG_UI_LABEL("Automap") DXX_KCONFIG_UI_UDLR(), BT_JOY_BUTTON, STATE_BIT3, {&control_info::state_controls_t::automap} },
{DXX_KCONFIG_UI_JOYSTICK_BUTTONS_LABEL_X1, DXX_KCONFIG_UI_JOYSTICK_BUTTONS_TOP_Y + DXX_KCONFIG_UI_ROW_CELL_HEIGHT(10), DXX_KCONFIG_UI_JOYSTICK_BUTTONS_INPUT_X1_C2, DXX_KCONFIG_UI_CELL_WIDTH, DXX_KCONFIG_UI_UDLR(), BT_JOY_BUTTON, STATE_BIT4, {&control_info::state_controls_t::automap} },
{DXX_KCONFIG_UI_JOYSTICK_BUTTONS_LABEL_X1, DXX_KCONFIG_UI_JOYSTICK_BUTTONS_TOP_Y + DXX_KCONFIG_UI_ROW_CELL_HEIGHT( 9), DXX_KCONFIG_UI_JOYSTICK_BUTTONS_INPUT_X1_C1, DXX_KCONFIG_UI_CELL_WIDTH, DXX_KCONFIG_UI_LABEL("Energy->Shield") DXX_KCONFIG_UI_UDLR(), BT_JOY_BUTTON, STATE_BIT3, {&control_info::state_controls_t::energy_to_shield} },
{DXX_KCONFIG_UI_JOYSTICK_BUTTONS_LABEL_X1, DXX_KCONFIG_UI_JOYSTICK_BUTTONS_TOP_Y + DXX_KCONFIG_UI_ROW_CELL_HEIGHT( 9), DXX_KCONFIG_UI_JOYSTICK_BUTTONS_INPUT_X1_C2, DXX_KCONFIG_UI_CELL_WIDTH, DXX_KCONFIG_UI_UDLR(), BT_JOY_BUTTON, STATE_BIT4, {&control_info::state_controls_t::energy_to_shield} },
{DXX_KCONFIG_UI_JOYSTICK_BUTTONS_LABEL_X2, DXX_KCONFIG_UI_JOYSTICK_BUTTONS_TOP_Y + DXX_KCONFIG_UI_ROW_CELL_HEIGHT(10), DXX_KCONFIG_UI_JOYSTICK_BUTTONS_INPUT_X2_C1, DXX_KCONFIG_UI_CELL_WIDTH, DXX_KCONFIG_UI_LABEL("Toggle Bomb") DXX_KCONFIG_UI_UDLR(), BT_JOY_BUTTON, 0, {&control_info::state_controls_t::toggle_bomb} },
{DXX_KCONFIG_UI_JOYSTICK_BUTTONS_LABEL_X2, DXX_KCONFIG_UI_JOYSTICK_BUTTONS_TOP_Y + DXX_KCONFIG_UI_ROW_CELL_HEIGHT(10), DXX_KCONFIG_UI_JOYSTICK_BUTTONS_INPUT_X2_C2, DXX_KCONFIG_UI_CELL_WIDTH, DXX_KCONFIG_UI_UDLR(), BT_JOY_BUTTON, 0, {&control_info::state_controls_t::toggle_bomb} },
{DXX_KCONFIG_UI_JOYSTICK_BUTTONS_LABEL_X2, DXX_KCONFIG_UI_JOYSTICK_BUTTONS_TOP_Y + DXX_KCONFIG_UI_ROW_CELL_HEIGHT(10), DXX_KCONFIG_UI_JOYSTICK_BUTTONS_INPUT_X2_C1, DXX_KCONFIG_UI_CELL_WIDTH, DXX_KCONFIG_UI_LABEL("Toggle Bomb") DXX_KCONFIG_UI_UDLR(), BT_JOY_BUTTON, STATE_NONE, {&control_info::state_controls_t::toggle_bomb} },
{DXX_KCONFIG_UI_JOYSTICK_BUTTONS_LABEL_X2, DXX_KCONFIG_UI_JOYSTICK_BUTTONS_TOP_Y + DXX_KCONFIG_UI_ROW_CELL_HEIGHT(10), DXX_KCONFIG_UI_JOYSTICK_BUTTONS_INPUT_X2_C2, DXX_KCONFIG_UI_CELL_WIDTH, DXX_KCONFIG_UI_UDLR(), BT_JOY_BUTTON, STATE_NONE, {&control_info::state_controls_t::toggle_bomb} },
#endif
#endif
};
@ -248,7 +248,7 @@ constexpr kc_item kc_mouse[] = {
{DXX_KCONFIG_UI_MOUSE_BUTTONS_LABEL_X1, DXX_KCONFIG_UI_MOUSE_BUTTONS_TOP_Y + DXX_KCONFIG_UI_ROW_CELL_HEIGHT( 1), DXX_KCONFIG_UI_MOUSE_BUTTONS_INPUT_X1, DXX_KCONFIG_UI_CELL_WIDTH, DXX_KCONFIG_UI_LABEL("Fire secondary") DXX_KCONFIG_UI_UDLR(), BT_MOUSE_BUTTON, STATE_BIT5, {&control_info::state_controls_t::fire_secondary} },
{DXX_KCONFIG_UI_MOUSE_BUTTONS_LABEL_X1, DXX_KCONFIG_UI_MOUSE_BUTTONS_TOP_Y + DXX_KCONFIG_UI_ROW_CELL_HEIGHT( 4), DXX_KCONFIG_UI_MOUSE_BUTTONS_INPUT_X1, DXX_KCONFIG_UI_CELL_WIDTH, DXX_KCONFIG_UI_LABEL("Accelerate") DXX_KCONFIG_UI_UDLR(), BT_MOUSE_BUTTON, STATE_BIT5, {&control_info::state_controls_t::accelerate} },
{DXX_KCONFIG_UI_MOUSE_BUTTONS_LABEL_X1, DXX_KCONFIG_UI_MOUSE_BUTTONS_TOP_Y + DXX_KCONFIG_UI_ROW_CELL_HEIGHT( 5), DXX_KCONFIG_UI_MOUSE_BUTTONS_INPUT_X1, DXX_KCONFIG_UI_CELL_WIDTH, DXX_KCONFIG_UI_LABEL("reverse") DXX_KCONFIG_UI_UDLR(), BT_MOUSE_BUTTON, STATE_BIT5, {&control_info::state_controls_t::reverse} },
{DXX_KCONFIG_UI_MOUSE_BUTTONS_LABEL_X1, DXX_KCONFIG_UI_MOUSE_BUTTONS_TOP_Y + DXX_KCONFIG_UI_ROW_CELL_HEIGHT( 2), DXX_KCONFIG_UI_MOUSE_BUTTONS_INPUT_X1, DXX_KCONFIG_UI_CELL_WIDTH, DXX_KCONFIG_UI_LABEL("Fire flare") DXX_KCONFIG_UI_UDLR(), BT_MOUSE_BUTTON, 0, {&control_info::state_controls_t::fire_flare} },
{DXX_KCONFIG_UI_MOUSE_BUTTONS_LABEL_X1, DXX_KCONFIG_UI_MOUSE_BUTTONS_TOP_Y + DXX_KCONFIG_UI_ROW_CELL_HEIGHT( 2), DXX_KCONFIG_UI_MOUSE_BUTTONS_INPUT_X1, DXX_KCONFIG_UI_CELL_WIDTH, DXX_KCONFIG_UI_LABEL("Fire flare") DXX_KCONFIG_UI_UDLR(), BT_MOUSE_BUTTON, STATE_NONE, {&control_info::state_controls_t::fire_flare} },
{DXX_KCONFIG_UI_MOUSE_BUTTONS_LABEL_X2, DXX_KCONFIG_UI_MOUSE_BUTTONS_TOP_Y + DXX_KCONFIG_UI_ROW_CELL_HEIGHT( 0), DXX_KCONFIG_UI_MOUSE_BUTTONS_INPUT_X2, DXX_KCONFIG_UI_CELL_WIDTH, DXX_KCONFIG_UI_LABEL("Slide on") DXX_KCONFIG_UI_UDLR(), BT_MOUSE_BUTTON, STATE_BIT5, {&control_info::state_controls_t::slide_on} },
{DXX_KCONFIG_UI_MOUSE_BUTTONS_LABEL_X2, DXX_KCONFIG_UI_MOUSE_BUTTONS_TOP_Y + DXX_KCONFIG_UI_ROW_CELL_HEIGHT( 1), DXX_KCONFIG_UI_MOUSE_BUTTONS_INPUT_X2, DXX_KCONFIG_UI_CELL_WIDTH, DXX_KCONFIG_UI_LABEL("Slide left") DXX_KCONFIG_UI_UDLR(), BT_MOUSE_BUTTON, STATE_BIT5, {&control_info::state_controls_t::btn_slide_left} },
{DXX_KCONFIG_UI_MOUSE_BUTTONS_LABEL_X2, DXX_KCONFIG_UI_MOUSE_BUTTONS_TOP_Y + DXX_KCONFIG_UI_ROW_CELL_HEIGHT( 2), DXX_KCONFIG_UI_MOUSE_BUTTONS_INPUT_X2, DXX_KCONFIG_UI_CELL_WIDTH, DXX_KCONFIG_UI_LABEL("Slide right") DXX_KCONFIG_UI_UDLR(), BT_MOUSE_BUTTON, STATE_BIT5, {&control_info::state_controls_t::btn_slide_right} },
@ -257,27 +257,27 @@ constexpr kc_item kc_mouse[] = {
{DXX_KCONFIG_UI_MOUSE_BUTTONS_LABEL_X2, DXX_KCONFIG_UI_MOUSE_BUTTONS_TOP_Y + DXX_KCONFIG_UI_ROW_CELL_HEIGHT( 5), DXX_KCONFIG_UI_MOUSE_BUTTONS_INPUT_X2, DXX_KCONFIG_UI_CELL_WIDTH, DXX_KCONFIG_UI_LABEL("Bank on") DXX_KCONFIG_UI_UDLR(), BT_MOUSE_BUTTON, STATE_BIT5, {&control_info::state_controls_t::bank_on} },
{DXX_KCONFIG_UI_MOUSE_BUTTONS_LABEL_X2, DXX_KCONFIG_UI_MOUSE_BUTTONS_TOP_Y + DXX_KCONFIG_UI_ROW_CELL_HEIGHT( 6), DXX_KCONFIG_UI_MOUSE_BUTTONS_INPUT_X2, DXX_KCONFIG_UI_CELL_WIDTH, DXX_KCONFIG_UI_LABEL("Bank left") DXX_KCONFIG_UI_UDLR(), BT_MOUSE_BUTTON, STATE_BIT5, {&control_info::state_controls_t::btn_bank_left} },
{DXX_KCONFIG_UI_MOUSE_BUTTONS_LABEL_X2, DXX_KCONFIG_UI_MOUSE_BUTTONS_TOP_Y + DXX_KCONFIG_UI_ROW_CELL_HEIGHT( 7), DXX_KCONFIG_UI_MOUSE_BUTTONS_INPUT_X2, DXX_KCONFIG_UI_CELL_WIDTH, DXX_KCONFIG_UI_LABEL("Bank right") DXX_KCONFIG_UI_UDLR(), BT_MOUSE_BUTTON, STATE_BIT5, {&control_info::state_controls_t::btn_bank_right} },
{DXX_KCONFIG_UI_MOUSE_BUTTONS_LABEL_X1, DXX_KCONFIG_UI_MOUSE_AXES_TOP_Y + DXX_KCONFIG_UI_ROW_CELL_HEIGHT( 0), DXX_KCONFIG_UI_MOUSE_AXES_INPUT_X1_C1, DXX_KCONFIG_UI_CELL_WIDTH, DXX_KCONFIG_UI_ENUM(pitch) DXX_KCONFIG_UI_LABEL("Pitch U/D") DXX_KCONFIG_UI_UDLR(), BT_MOUSE_AXIS, 0, {nullptr} },
{DXX_KCONFIG_UI_MOUSE_BUTTONS_LABEL_X1, DXX_KCONFIG_UI_MOUSE_AXES_TOP_Y + DXX_KCONFIG_UI_ROW_CELL_HEIGHT( 0), DXX_KCONFIG_UI_MOUSE_AXES_INPUT_X1_CI, DXX_KCONFIG_UI_INVERT_FLAG_WIDTH, DXX_KCONFIG_UI_UDLR(), BT_INVERT, 0, {nullptr} },
{DXX_KCONFIG_UI_MOUSE_BUTTONS_LABEL_X1, DXX_KCONFIG_UI_MOUSE_AXES_TOP_Y + DXX_KCONFIG_UI_ROW_CELL_HEIGHT( 1), DXX_KCONFIG_UI_MOUSE_AXES_INPUT_X1_C1, DXX_KCONFIG_UI_CELL_WIDTH, DXX_KCONFIG_UI_LABEL("Turn L/R") DXX_KCONFIG_UI_UDLR(), BT_MOUSE_AXIS, 0, {nullptr} },
{DXX_KCONFIG_UI_MOUSE_BUTTONS_LABEL_X1, DXX_KCONFIG_UI_MOUSE_AXES_TOP_Y + DXX_KCONFIG_UI_ROW_CELL_HEIGHT( 1), DXX_KCONFIG_UI_MOUSE_AXES_INPUT_X1_CI, DXX_KCONFIG_UI_INVERT_FLAG_WIDTH, DXX_KCONFIG_UI_UDLR(), BT_INVERT, 0, {nullptr} },
{DXX_KCONFIG_UI_MOUSE_BUTTONS_LABEL_X1, DXX_KCONFIG_UI_MOUSE_AXES_TOP_Y + DXX_KCONFIG_UI_ROW_CELL_HEIGHT( 2), DXX_KCONFIG_UI_MOUSE_AXES_INPUT_X1_C1, DXX_KCONFIG_UI_CELL_WIDTH, DXX_KCONFIG_UI_LABEL("Slide L/R") DXX_KCONFIG_UI_UDLR(), BT_MOUSE_AXIS, 0, {nullptr} },
{DXX_KCONFIG_UI_MOUSE_BUTTONS_LABEL_X1, DXX_KCONFIG_UI_MOUSE_AXES_TOP_Y + DXX_KCONFIG_UI_ROW_CELL_HEIGHT( 2), DXX_KCONFIG_UI_MOUSE_AXES_INPUT_X1_CI, DXX_KCONFIG_UI_INVERT_FLAG_WIDTH, DXX_KCONFIG_UI_UDLR(), BT_INVERT, 0, {nullptr} },
{DXX_KCONFIG_UI_MOUSE_BUTTONS_LABEL_X1, DXX_KCONFIG_UI_MOUSE_AXES_TOP_Y + DXX_KCONFIG_UI_ROW_CELL_HEIGHT( 3), DXX_KCONFIG_UI_MOUSE_AXES_INPUT_X1_C1, DXX_KCONFIG_UI_CELL_WIDTH, DXX_KCONFIG_UI_LABEL("Slide U/D") DXX_KCONFIG_UI_UDLR(), BT_MOUSE_AXIS, 0, {nullptr} },
{DXX_KCONFIG_UI_MOUSE_BUTTONS_LABEL_X1, DXX_KCONFIG_UI_MOUSE_AXES_TOP_Y + DXX_KCONFIG_UI_ROW_CELL_HEIGHT( 3), DXX_KCONFIG_UI_MOUSE_AXES_INPUT_X1_CI, DXX_KCONFIG_UI_INVERT_FLAG_WIDTH, DXX_KCONFIG_UI_UDLR(), BT_INVERT, 0, {nullptr} },
{DXX_KCONFIG_UI_MOUSE_BUTTONS_LABEL_X2, DXX_KCONFIG_UI_MOUSE_AXES_TOP_Y + DXX_KCONFIG_UI_ROW_CELL_HEIGHT( 0), DXX_KCONFIG_UI_MOUSE_AXES_INPUT_X2_C1, DXX_KCONFIG_UI_CELL_WIDTH, DXX_KCONFIG_UI_LABEL("Bank L/R") DXX_KCONFIG_UI_UDLR(), BT_MOUSE_AXIS, 0, {nullptr} },
{DXX_KCONFIG_UI_MOUSE_BUTTONS_LABEL_X2, DXX_KCONFIG_UI_MOUSE_AXES_TOP_Y + DXX_KCONFIG_UI_ROW_CELL_HEIGHT( 0), DXX_KCONFIG_UI_MOUSE_AXES_INPUT_X2_CI, DXX_KCONFIG_UI_INVERT_FLAG_WIDTH, DXX_KCONFIG_UI_UDLR(), BT_INVERT, 0, {nullptr} },
{DXX_KCONFIG_UI_MOUSE_BUTTONS_LABEL_X2, DXX_KCONFIG_UI_MOUSE_AXES_TOP_Y + DXX_KCONFIG_UI_ROW_CELL_HEIGHT( 1), DXX_KCONFIG_UI_MOUSE_AXES_INPUT_X2_C1, DXX_KCONFIG_UI_CELL_WIDTH, DXX_KCONFIG_UI_LABEL("Throttle") DXX_KCONFIG_UI_UDLR(), BT_MOUSE_AXIS, 0, {nullptr} },
{DXX_KCONFIG_UI_MOUSE_BUTTONS_LABEL_X2, DXX_KCONFIG_UI_MOUSE_AXES_TOP_Y + DXX_KCONFIG_UI_ROW_CELL_HEIGHT( 1), DXX_KCONFIG_UI_MOUSE_AXES_INPUT_X2_CI, DXX_KCONFIG_UI_INVERT_FLAG_WIDTH, DXX_KCONFIG_UI_UDLR(), BT_INVERT, 0, {nullptr} },
{DXX_KCONFIG_UI_MOUSE_BUTTONS_LABEL_X1, DXX_KCONFIG_UI_MOUSE_AXES_TOP_Y + DXX_KCONFIG_UI_ROW_CELL_HEIGHT( 0), DXX_KCONFIG_UI_MOUSE_AXES_INPUT_X1_C1, DXX_KCONFIG_UI_CELL_WIDTH, DXX_KCONFIG_UI_ENUM(pitch) DXX_KCONFIG_UI_LABEL("Pitch U/D") DXX_KCONFIG_UI_UDLR(), BT_MOUSE_AXIS, STATE_NONE, {nullptr} },
{DXX_KCONFIG_UI_MOUSE_BUTTONS_LABEL_X1, DXX_KCONFIG_UI_MOUSE_AXES_TOP_Y + DXX_KCONFIG_UI_ROW_CELL_HEIGHT( 0), DXX_KCONFIG_UI_MOUSE_AXES_INPUT_X1_CI, DXX_KCONFIG_UI_INVERT_FLAG_WIDTH, DXX_KCONFIG_UI_UDLR(), BT_INVERT, STATE_NONE, {nullptr} },
{DXX_KCONFIG_UI_MOUSE_BUTTONS_LABEL_X1, DXX_KCONFIG_UI_MOUSE_AXES_TOP_Y + DXX_KCONFIG_UI_ROW_CELL_HEIGHT( 1), DXX_KCONFIG_UI_MOUSE_AXES_INPUT_X1_C1, DXX_KCONFIG_UI_CELL_WIDTH, DXX_KCONFIG_UI_LABEL("Turn L/R") DXX_KCONFIG_UI_UDLR(), BT_MOUSE_AXIS, STATE_NONE, {nullptr} },
{DXX_KCONFIG_UI_MOUSE_BUTTONS_LABEL_X1, DXX_KCONFIG_UI_MOUSE_AXES_TOP_Y + DXX_KCONFIG_UI_ROW_CELL_HEIGHT( 1), DXX_KCONFIG_UI_MOUSE_AXES_INPUT_X1_CI, DXX_KCONFIG_UI_INVERT_FLAG_WIDTH, DXX_KCONFIG_UI_UDLR(), BT_INVERT, STATE_NONE, {nullptr} },
{DXX_KCONFIG_UI_MOUSE_BUTTONS_LABEL_X1, DXX_KCONFIG_UI_MOUSE_AXES_TOP_Y + DXX_KCONFIG_UI_ROW_CELL_HEIGHT( 2), DXX_KCONFIG_UI_MOUSE_AXES_INPUT_X1_C1, DXX_KCONFIG_UI_CELL_WIDTH, DXX_KCONFIG_UI_LABEL("Slide L/R") DXX_KCONFIG_UI_UDLR(), BT_MOUSE_AXIS, STATE_NONE, {nullptr} },
{DXX_KCONFIG_UI_MOUSE_BUTTONS_LABEL_X1, DXX_KCONFIG_UI_MOUSE_AXES_TOP_Y + DXX_KCONFIG_UI_ROW_CELL_HEIGHT( 2), DXX_KCONFIG_UI_MOUSE_AXES_INPUT_X1_CI, DXX_KCONFIG_UI_INVERT_FLAG_WIDTH, DXX_KCONFIG_UI_UDLR(), BT_INVERT, STATE_NONE, {nullptr} },
{DXX_KCONFIG_UI_MOUSE_BUTTONS_LABEL_X1, DXX_KCONFIG_UI_MOUSE_AXES_TOP_Y + DXX_KCONFIG_UI_ROW_CELL_HEIGHT( 3), DXX_KCONFIG_UI_MOUSE_AXES_INPUT_X1_C1, DXX_KCONFIG_UI_CELL_WIDTH, DXX_KCONFIG_UI_LABEL("Slide U/D") DXX_KCONFIG_UI_UDLR(), BT_MOUSE_AXIS, STATE_NONE, {nullptr} },
{DXX_KCONFIG_UI_MOUSE_BUTTONS_LABEL_X1, DXX_KCONFIG_UI_MOUSE_AXES_TOP_Y + DXX_KCONFIG_UI_ROW_CELL_HEIGHT( 3), DXX_KCONFIG_UI_MOUSE_AXES_INPUT_X1_CI, DXX_KCONFIG_UI_INVERT_FLAG_WIDTH, DXX_KCONFIG_UI_UDLR(), BT_INVERT, STATE_NONE, {nullptr} },
{DXX_KCONFIG_UI_MOUSE_BUTTONS_LABEL_X2, DXX_KCONFIG_UI_MOUSE_AXES_TOP_Y + DXX_KCONFIG_UI_ROW_CELL_HEIGHT( 0), DXX_KCONFIG_UI_MOUSE_AXES_INPUT_X2_C1, DXX_KCONFIG_UI_CELL_WIDTH, DXX_KCONFIG_UI_LABEL("Bank L/R") DXX_KCONFIG_UI_UDLR(), BT_MOUSE_AXIS, STATE_NONE, {nullptr} },
{DXX_KCONFIG_UI_MOUSE_BUTTONS_LABEL_X2, DXX_KCONFIG_UI_MOUSE_AXES_TOP_Y + DXX_KCONFIG_UI_ROW_CELL_HEIGHT( 0), DXX_KCONFIG_UI_MOUSE_AXES_INPUT_X2_CI, DXX_KCONFIG_UI_INVERT_FLAG_WIDTH, DXX_KCONFIG_UI_UDLR(), BT_INVERT, STATE_NONE, {nullptr} },
{DXX_KCONFIG_UI_MOUSE_BUTTONS_LABEL_X2, DXX_KCONFIG_UI_MOUSE_AXES_TOP_Y + DXX_KCONFIG_UI_ROW_CELL_HEIGHT( 1), DXX_KCONFIG_UI_MOUSE_AXES_INPUT_X2_C1, DXX_KCONFIG_UI_CELL_WIDTH, DXX_KCONFIG_UI_LABEL("Throttle") DXX_KCONFIG_UI_UDLR(), BT_MOUSE_AXIS, STATE_NONE, {nullptr} },
{DXX_KCONFIG_UI_MOUSE_BUTTONS_LABEL_X2, DXX_KCONFIG_UI_MOUSE_AXES_TOP_Y + DXX_KCONFIG_UI_ROW_CELL_HEIGHT( 1), DXX_KCONFIG_UI_MOUSE_AXES_INPUT_X2_CI, DXX_KCONFIG_UI_INVERT_FLAG_WIDTH, DXX_KCONFIG_UI_UDLR(), BT_INVERT, STATE_NONE, {nullptr} },
{DXX_KCONFIG_UI_MOUSE_BUTTONS_LABEL_X1, DXX_KCONFIG_UI_MOUSE_BUTTONS_TOP_Y + DXX_KCONFIG_UI_ROW_CELL_HEIGHT( 6), DXX_KCONFIG_UI_MOUSE_BUTTONS_INPUT_X1, DXX_KCONFIG_UI_CELL_WIDTH, DXX_KCONFIG_UI_LABEL("REAR VIEW") DXX_KCONFIG_UI_UDLR(), BT_MOUSE_BUTTON, STATE_BIT5, {&control_info::state_controls_t::rear_view} },
{DXX_KCONFIG_UI_MOUSE_BUTTONS_LABEL_X1, DXX_KCONFIG_UI_MOUSE_BUTTONS_TOP_Y + DXX_KCONFIG_UI_ROW_CELL_HEIGHT( 3), DXX_KCONFIG_UI_MOUSE_BUTTONS_INPUT_X1, DXX_KCONFIG_UI_CELL_WIDTH, DXX_KCONFIG_UI_LABEL("Drop Bomb") DXX_KCONFIG_UI_UDLR(), BT_MOUSE_BUTTON, 0, {&control_info::state_controls_t::drop_bomb} },
{DXX_KCONFIG_UI_MOUSE_BUTTONS_LABEL_X1, DXX_KCONFIG_UI_MOUSE_BUTTONS_TOP_Y + DXX_KCONFIG_UI_ROW_CELL_HEIGHT( 3), DXX_KCONFIG_UI_MOUSE_BUTTONS_INPUT_X1, DXX_KCONFIG_UI_CELL_WIDTH, DXX_KCONFIG_UI_LABEL("Drop Bomb") DXX_KCONFIG_UI_UDLR(), BT_MOUSE_BUTTON, STATE_NONE, {&control_info::state_controls_t::drop_bomb} },
#if defined(DXX_BUILD_DESCENT_I)
{DXX_KCONFIG_UI_MOUSE_BUTTONS_LABEL_X1, DXX_KCONFIG_UI_MOUSE_BUTTONS_TOP_Y + DXX_KCONFIG_UI_ROW_CELL_HEIGHT( 7), DXX_KCONFIG_UI_MOUSE_BUTTONS_INPUT_X1, DXX_KCONFIG_UI_CELL_WIDTH, DXX_KCONFIG_UI_LABEL("Cycle Primary") DXX_KCONFIG_UI_UDLR(), BT_MOUSE_BUTTON, 0, {&control_info::state_controls_t::cycle_primary} },
{DXX_KCONFIG_UI_MOUSE_BUTTONS_LABEL_X1, DXX_KCONFIG_UI_MOUSE_BUTTONS_TOP_Y + DXX_KCONFIG_UI_ROW_CELL_HEIGHT( 8), DXX_KCONFIG_UI_MOUSE_BUTTONS_INPUT_X1, DXX_KCONFIG_UI_CELL_WIDTH, DXX_KCONFIG_UI_LABEL("Cycle Secondary") DXX_KCONFIG_UI_UDLR(), BT_MOUSE_BUTTON, 0, {&control_info::state_controls_t::cycle_secondary} },
{DXX_KCONFIG_UI_MOUSE_BUTTONS_LABEL_X1, DXX_KCONFIG_UI_MOUSE_BUTTONS_TOP_Y + DXX_KCONFIG_UI_ROW_CELL_HEIGHT( 7), DXX_KCONFIG_UI_MOUSE_BUTTONS_INPUT_X1, DXX_KCONFIG_UI_CELL_WIDTH, DXX_KCONFIG_UI_LABEL("Cycle Primary") DXX_KCONFIG_UI_UDLR(), BT_MOUSE_BUTTON, STATE_NONE, {&control_info::state_controls_t::cycle_primary} },
{DXX_KCONFIG_UI_MOUSE_BUTTONS_LABEL_X1, DXX_KCONFIG_UI_MOUSE_BUTTONS_TOP_Y + DXX_KCONFIG_UI_ROW_CELL_HEIGHT( 8), DXX_KCONFIG_UI_MOUSE_BUTTONS_INPUT_X1, DXX_KCONFIG_UI_CELL_WIDTH, DXX_KCONFIG_UI_LABEL("Cycle Secondary") DXX_KCONFIG_UI_UDLR(), BT_MOUSE_BUTTON, STATE_NONE, {&control_info::state_controls_t::cycle_secondary} },
#elif defined(DXX_BUILD_DESCENT_II)
{DXX_KCONFIG_UI_MOUSE_BUTTONS_LABEL_X1, DXX_KCONFIG_UI_MOUSE_BUTTONS_TOP_Y + DXX_KCONFIG_UI_ROW_CELL_HEIGHT( 7), DXX_KCONFIG_UI_MOUSE_BUTTONS_INPUT_X1, DXX_KCONFIG_UI_CELL_WIDTH, DXX_KCONFIG_UI_LABEL("Afterburner") DXX_KCONFIG_UI_UDLR(), BT_MOUSE_BUTTON, STATE_BIT5, {&control_info::state_controls_t::afterburner} },
{DXX_KCONFIG_UI_MOUSE_BUTTONS_LABEL_X1, DXX_KCONFIG_UI_MOUSE_BUTTONS_TOP_Y + DXX_KCONFIG_UI_ROW_CELL_HEIGHT( 8), DXX_KCONFIG_UI_MOUSE_BUTTONS_INPUT_X1, DXX_KCONFIG_UI_CELL_WIDTH, DXX_KCONFIG_UI_LABEL("Cycle Primary") DXX_KCONFIG_UI_UDLR(), BT_MOUSE_BUTTON, 0, {&control_info::state_controls_t::cycle_primary} },
{DXX_KCONFIG_UI_MOUSE_BUTTONS_LABEL_X1, DXX_KCONFIG_UI_MOUSE_BUTTONS_TOP_Y + DXX_KCONFIG_UI_ROW_CELL_HEIGHT( 9), DXX_KCONFIG_UI_MOUSE_BUTTONS_INPUT_X1, DXX_KCONFIG_UI_CELL_WIDTH, DXX_KCONFIG_UI_LABEL("Cycle Secondary") DXX_KCONFIG_UI_UDLR(), BT_MOUSE_BUTTON, 0, {&control_info::state_controls_t::cycle_secondary} },
{DXX_KCONFIG_UI_MOUSE_BUTTONS_LABEL_X1, DXX_KCONFIG_UI_MOUSE_BUTTONS_TOP_Y + DXX_KCONFIG_UI_ROW_CELL_HEIGHT( 8), DXX_KCONFIG_UI_MOUSE_BUTTONS_INPUT_X1, DXX_KCONFIG_UI_CELL_WIDTH, DXX_KCONFIG_UI_LABEL("Cycle Primary") DXX_KCONFIG_UI_UDLR(), BT_MOUSE_BUTTON, STATE_NONE, {&control_info::state_controls_t::cycle_primary} },
{DXX_KCONFIG_UI_MOUSE_BUTTONS_LABEL_X1, DXX_KCONFIG_UI_MOUSE_BUTTONS_TOP_Y + DXX_KCONFIG_UI_ROW_CELL_HEIGHT( 9), DXX_KCONFIG_UI_MOUSE_BUTTONS_INPUT_X1, DXX_KCONFIG_UI_CELL_WIDTH, DXX_KCONFIG_UI_LABEL("Cycle Secondary") DXX_KCONFIG_UI_UDLR(), BT_MOUSE_BUTTON, STATE_NONE, {&control_info::state_controls_t::cycle_secondary} },
#endif
};
@ -288,36 +288,36 @@ constexpr kc_item kc_mouse[] = {
#define DXX_KCONFIG_UI_WEAPON_KEYS_TOP_Y 69
constexpr kc_item kc_rebirth[] = {
{DXX_KCONFIG_UI_WEAPON_KEYS_LABEL_X1, DXX_KCONFIG_UI_WEAPON_KEYS_TOP_Y + DXX_KCONFIG_UI_ROW_CELL_HEIGHT( 0), DXX_KCONFIG_UI_WEAPON_KEYS_INPUT_X1_C1, DXX_KCONFIG_UI_CELL_WIDTH, DXX_KCONFIG_UI_LABEL(WEAPON_STRING_LASER) DXX_KCONFIG_UI_UDLR(), BT_KEY, 0, {&control_info::state_controls_t::select_weapon} },
{DXX_KCONFIG_UI_WEAPON_KEYS_LABEL_X1, DXX_KCONFIG_UI_WEAPON_KEYS_TOP_Y + DXX_KCONFIG_UI_ROW_CELL_HEIGHT( 0), DXX_KCONFIG_UI_WEAPON_KEYS_INPUT_X1_C2, DXX_KCONFIG_ITEM_JOY_WIDTH(DXX_KCONFIG_UI_CELL_WIDTH), DXX_KCONFIG_UI_UDLR(), BT_JOY_BUTTON, 0, {&control_info::state_controls_t::select_weapon} },
{DXX_KCONFIG_UI_WEAPON_KEYS_LABEL_X1, DXX_KCONFIG_UI_WEAPON_KEYS_TOP_Y + DXX_KCONFIG_UI_ROW_CELL_HEIGHT( 0), DXX_KCONFIG_UI_WEAPON_KEYS_INPUT_X1_C3, DXX_KCONFIG_UI_CELL_WIDTH, DXX_KCONFIG_UI_UDLR(), BT_MOUSE_BUTTON, 0, {&control_info::state_controls_t::select_weapon} },
{DXX_KCONFIG_UI_WEAPON_KEYS_LABEL_X1, DXX_KCONFIG_UI_WEAPON_KEYS_TOP_Y + DXX_KCONFIG_UI_ROW_CELL_HEIGHT( 1), DXX_KCONFIG_UI_WEAPON_KEYS_INPUT_X1_C1, DXX_KCONFIG_UI_CELL_WIDTH, DXX_KCONFIG_UI_LABEL(WEAPON_STRING_VULCAN) DXX_KCONFIG_UI_UDLR(), BT_KEY, 0, {&control_info::state_controls_t::select_weapon} },
{DXX_KCONFIG_UI_WEAPON_KEYS_LABEL_X1, DXX_KCONFIG_UI_WEAPON_KEYS_TOP_Y + DXX_KCONFIG_UI_ROW_CELL_HEIGHT( 1), DXX_KCONFIG_UI_WEAPON_KEYS_INPUT_X1_C2, DXX_KCONFIG_ITEM_JOY_WIDTH(DXX_KCONFIG_UI_CELL_WIDTH), DXX_KCONFIG_UI_UDLR(), BT_JOY_BUTTON, 0, {&control_info::state_controls_t::select_weapon} },
{DXX_KCONFIG_UI_WEAPON_KEYS_LABEL_X1, DXX_KCONFIG_UI_WEAPON_KEYS_TOP_Y + DXX_KCONFIG_UI_ROW_CELL_HEIGHT( 1), DXX_KCONFIG_UI_WEAPON_KEYS_INPUT_X1_C3, DXX_KCONFIG_UI_CELL_WIDTH, DXX_KCONFIG_UI_UDLR(), BT_MOUSE_BUTTON, 0, {&control_info::state_controls_t::select_weapon} },
{DXX_KCONFIG_UI_WEAPON_KEYS_LABEL_X1, DXX_KCONFIG_UI_WEAPON_KEYS_TOP_Y + DXX_KCONFIG_UI_ROW_CELL_HEIGHT( 2), DXX_KCONFIG_UI_WEAPON_KEYS_INPUT_X1_C1, DXX_KCONFIG_UI_CELL_WIDTH, DXX_KCONFIG_UI_LABEL(WEAPON_STRING_SPREADFIRE) DXX_KCONFIG_UI_UDLR(), BT_KEY, 0, {&control_info::state_controls_t::select_weapon} },
{DXX_KCONFIG_UI_WEAPON_KEYS_LABEL_X1, DXX_KCONFIG_UI_WEAPON_KEYS_TOP_Y + DXX_KCONFIG_UI_ROW_CELL_HEIGHT( 2), DXX_KCONFIG_UI_WEAPON_KEYS_INPUT_X1_C2, DXX_KCONFIG_ITEM_JOY_WIDTH(DXX_KCONFIG_UI_CELL_WIDTH), DXX_KCONFIG_UI_UDLR(), BT_JOY_BUTTON, 0, {&control_info::state_controls_t::select_weapon} },
{DXX_KCONFIG_UI_WEAPON_KEYS_LABEL_X1, DXX_KCONFIG_UI_WEAPON_KEYS_TOP_Y + DXX_KCONFIG_UI_ROW_CELL_HEIGHT( 2), DXX_KCONFIG_UI_WEAPON_KEYS_INPUT_X1_C3, DXX_KCONFIG_UI_CELL_WIDTH, DXX_KCONFIG_UI_UDLR(), BT_MOUSE_BUTTON, 0, {&control_info::state_controls_t::select_weapon} },
{DXX_KCONFIG_UI_WEAPON_KEYS_LABEL_X1, DXX_KCONFIG_UI_WEAPON_KEYS_TOP_Y + DXX_KCONFIG_UI_ROW_CELL_HEIGHT( 3), DXX_KCONFIG_UI_WEAPON_KEYS_INPUT_X1_C1, DXX_KCONFIG_UI_CELL_WIDTH, DXX_KCONFIG_UI_LABEL(WEAPON_STRING_PLASMA) DXX_KCONFIG_UI_UDLR(), BT_KEY, 0, {&control_info::state_controls_t::select_weapon} },
{DXX_KCONFIG_UI_WEAPON_KEYS_LABEL_X1, DXX_KCONFIG_UI_WEAPON_KEYS_TOP_Y + DXX_KCONFIG_UI_ROW_CELL_HEIGHT( 3), DXX_KCONFIG_UI_WEAPON_KEYS_INPUT_X1_C2, DXX_KCONFIG_ITEM_JOY_WIDTH(DXX_KCONFIG_UI_CELL_WIDTH), DXX_KCONFIG_UI_UDLR(), BT_JOY_BUTTON, 0, {&control_info::state_controls_t::select_weapon} },
{DXX_KCONFIG_UI_WEAPON_KEYS_LABEL_X1, DXX_KCONFIG_UI_WEAPON_KEYS_TOP_Y + DXX_KCONFIG_UI_ROW_CELL_HEIGHT( 3), DXX_KCONFIG_UI_WEAPON_KEYS_INPUT_X1_C3, DXX_KCONFIG_UI_CELL_WIDTH, DXX_KCONFIG_UI_UDLR(), BT_MOUSE_BUTTON, 0, {&control_info::state_controls_t::select_weapon} },
{DXX_KCONFIG_UI_WEAPON_KEYS_LABEL_X1, DXX_KCONFIG_UI_WEAPON_KEYS_TOP_Y + DXX_KCONFIG_UI_ROW_CELL_HEIGHT( 4), DXX_KCONFIG_UI_WEAPON_KEYS_INPUT_X1_C1, DXX_KCONFIG_UI_CELL_WIDTH, DXX_KCONFIG_UI_LABEL(WEAPON_STRING_FUSION) DXX_KCONFIG_UI_UDLR(), BT_KEY, 0, {&control_info::state_controls_t::select_weapon} },
{DXX_KCONFIG_UI_WEAPON_KEYS_LABEL_X1, DXX_KCONFIG_UI_WEAPON_KEYS_TOP_Y + DXX_KCONFIG_UI_ROW_CELL_HEIGHT( 4), DXX_KCONFIG_UI_WEAPON_KEYS_INPUT_X1_C2, DXX_KCONFIG_ITEM_JOY_WIDTH(DXX_KCONFIG_UI_CELL_WIDTH), DXX_KCONFIG_UI_UDLR(), BT_JOY_BUTTON, 0, {&control_info::state_controls_t::select_weapon} },
{DXX_KCONFIG_UI_WEAPON_KEYS_LABEL_X1, DXX_KCONFIG_UI_WEAPON_KEYS_TOP_Y + DXX_KCONFIG_UI_ROW_CELL_HEIGHT( 4), DXX_KCONFIG_UI_WEAPON_KEYS_INPUT_X1_C3, DXX_KCONFIG_UI_CELL_WIDTH, DXX_KCONFIG_UI_UDLR(), BT_MOUSE_BUTTON, 0, {&control_info::state_controls_t::select_weapon} },
{DXX_KCONFIG_UI_WEAPON_KEYS_LABEL_X1, DXX_KCONFIG_UI_WEAPON_KEYS_TOP_Y + DXX_KCONFIG_UI_ROW_CELL_HEIGHT( 5), DXX_KCONFIG_UI_WEAPON_KEYS_INPUT_X1_C1, DXX_KCONFIG_UI_CELL_WIDTH, DXX_KCONFIG_UI_LABEL(WEAPON_STRING_CONCUSSION) DXX_KCONFIG_UI_UDLR(), BT_KEY, 0, {&control_info::state_controls_t::select_weapon} },
{DXX_KCONFIG_UI_WEAPON_KEYS_LABEL_X1, DXX_KCONFIG_UI_WEAPON_KEYS_TOP_Y + DXX_KCONFIG_UI_ROW_CELL_HEIGHT( 5), DXX_KCONFIG_UI_WEAPON_KEYS_INPUT_X1_C2, DXX_KCONFIG_ITEM_JOY_WIDTH(DXX_KCONFIG_UI_CELL_WIDTH), DXX_KCONFIG_UI_UDLR(), BT_JOY_BUTTON, 0, {&control_info::state_controls_t::select_weapon} },
{DXX_KCONFIG_UI_WEAPON_KEYS_LABEL_X1, DXX_KCONFIG_UI_WEAPON_KEYS_TOP_Y + DXX_KCONFIG_UI_ROW_CELL_HEIGHT( 5), DXX_KCONFIG_UI_WEAPON_KEYS_INPUT_X1_C3, DXX_KCONFIG_UI_CELL_WIDTH, DXX_KCONFIG_UI_UDLR(), BT_MOUSE_BUTTON, 0, {&control_info::state_controls_t::select_weapon} },
{DXX_KCONFIG_UI_WEAPON_KEYS_LABEL_X1, DXX_KCONFIG_UI_WEAPON_KEYS_TOP_Y + DXX_KCONFIG_UI_ROW_CELL_HEIGHT( 6), DXX_KCONFIG_UI_WEAPON_KEYS_INPUT_X1_C1, DXX_KCONFIG_UI_CELL_WIDTH, DXX_KCONFIG_UI_LABEL(WEAPON_STRING_HOMING) DXX_KCONFIG_UI_UDLR(), BT_KEY, 0, {&control_info::state_controls_t::select_weapon} },
{DXX_KCONFIG_UI_WEAPON_KEYS_LABEL_X1, DXX_KCONFIG_UI_WEAPON_KEYS_TOP_Y + DXX_KCONFIG_UI_ROW_CELL_HEIGHT( 6), DXX_KCONFIG_UI_WEAPON_KEYS_INPUT_X1_C2, DXX_KCONFIG_ITEM_JOY_WIDTH(DXX_KCONFIG_UI_CELL_WIDTH), DXX_KCONFIG_UI_UDLR(), BT_JOY_BUTTON, 0, {&control_info::state_controls_t::select_weapon} },
{DXX_KCONFIG_UI_WEAPON_KEYS_LABEL_X1, DXX_KCONFIG_UI_WEAPON_KEYS_TOP_Y + DXX_KCONFIG_UI_ROW_CELL_HEIGHT( 6), DXX_KCONFIG_UI_WEAPON_KEYS_INPUT_X1_C3, DXX_KCONFIG_UI_CELL_WIDTH, DXX_KCONFIG_UI_UDLR(), BT_MOUSE_BUTTON, 0, {&control_info::state_controls_t::select_weapon} },
{DXX_KCONFIG_UI_WEAPON_KEYS_LABEL_X1, DXX_KCONFIG_UI_WEAPON_KEYS_TOP_Y + DXX_KCONFIG_UI_ROW_CELL_HEIGHT( 7), DXX_KCONFIG_UI_WEAPON_KEYS_INPUT_X1_C1, DXX_KCONFIG_UI_CELL_WIDTH, DXX_KCONFIG_UI_LABEL(WEAPON_STRING_PROXIMITY) DXX_KCONFIG_UI_UDLR(), BT_KEY, 0, {&control_info::state_controls_t::select_weapon} },
{DXX_KCONFIG_UI_WEAPON_KEYS_LABEL_X1, DXX_KCONFIG_UI_WEAPON_KEYS_TOP_Y + DXX_KCONFIG_UI_ROW_CELL_HEIGHT( 7), DXX_KCONFIG_UI_WEAPON_KEYS_INPUT_X1_C2, DXX_KCONFIG_ITEM_JOY_WIDTH(DXX_KCONFIG_UI_CELL_WIDTH), DXX_KCONFIG_UI_UDLR(), BT_JOY_BUTTON, 0, {&control_info::state_controls_t::select_weapon} },
{DXX_KCONFIG_UI_WEAPON_KEYS_LABEL_X1, DXX_KCONFIG_UI_WEAPON_KEYS_TOP_Y + DXX_KCONFIG_UI_ROW_CELL_HEIGHT( 7), DXX_KCONFIG_UI_WEAPON_KEYS_INPUT_X1_C3, DXX_KCONFIG_UI_CELL_WIDTH, DXX_KCONFIG_UI_UDLR(), BT_MOUSE_BUTTON, 0, {&control_info::state_controls_t::select_weapon} },
{DXX_KCONFIG_UI_WEAPON_KEYS_LABEL_X1, DXX_KCONFIG_UI_WEAPON_KEYS_TOP_Y + DXX_KCONFIG_UI_ROW_CELL_HEIGHT( 8), DXX_KCONFIG_UI_WEAPON_KEYS_INPUT_X1_C1, DXX_KCONFIG_UI_CELL_WIDTH, DXX_KCONFIG_UI_LABEL(WEAPON_STRING_SMART) DXX_KCONFIG_UI_UDLR(), BT_KEY, 0, {&control_info::state_controls_t::select_weapon} },
{DXX_KCONFIG_UI_WEAPON_KEYS_LABEL_X1, DXX_KCONFIG_UI_WEAPON_KEYS_TOP_Y + DXX_KCONFIG_UI_ROW_CELL_HEIGHT( 8), DXX_KCONFIG_UI_WEAPON_KEYS_INPUT_X1_C2, DXX_KCONFIG_ITEM_JOY_WIDTH(DXX_KCONFIG_UI_CELL_WIDTH), DXX_KCONFIG_UI_UDLR(), BT_JOY_BUTTON, 0, {&control_info::state_controls_t::select_weapon} },
{DXX_KCONFIG_UI_WEAPON_KEYS_LABEL_X1, DXX_KCONFIG_UI_WEAPON_KEYS_TOP_Y + DXX_KCONFIG_UI_ROW_CELL_HEIGHT( 8), DXX_KCONFIG_UI_WEAPON_KEYS_INPUT_X1_C3, DXX_KCONFIG_UI_CELL_WIDTH, DXX_KCONFIG_UI_UDLR(), BT_MOUSE_BUTTON, 0, {&control_info::state_controls_t::select_weapon} },
{DXX_KCONFIG_UI_WEAPON_KEYS_LABEL_X1, DXX_KCONFIG_UI_WEAPON_KEYS_TOP_Y + DXX_KCONFIG_UI_ROW_CELL_HEIGHT( 9), DXX_KCONFIG_UI_WEAPON_KEYS_INPUT_X1_C1, DXX_KCONFIG_UI_CELL_WIDTH, DXX_KCONFIG_UI_LABEL(WEAPON_STRING_MEGA) DXX_KCONFIG_UI_UDLR(), BT_KEY, 0, {&control_info::state_controls_t::select_weapon} },
{DXX_KCONFIG_UI_WEAPON_KEYS_LABEL_X1, DXX_KCONFIG_UI_WEAPON_KEYS_TOP_Y + DXX_KCONFIG_UI_ROW_CELL_HEIGHT( 9), DXX_KCONFIG_UI_WEAPON_KEYS_INPUT_X1_C2, DXX_KCONFIG_ITEM_JOY_WIDTH(DXX_KCONFIG_UI_CELL_WIDTH), DXX_KCONFIG_UI_UDLR(), BT_JOY_BUTTON, 0, {&control_info::state_controls_t::select_weapon} },
{DXX_KCONFIG_UI_WEAPON_KEYS_LABEL_X1, DXX_KCONFIG_UI_WEAPON_KEYS_TOP_Y + DXX_KCONFIG_UI_ROW_CELL_HEIGHT( 9), DXX_KCONFIG_UI_WEAPON_KEYS_INPUT_X1_C3, DXX_KCONFIG_UI_CELL_WIDTH, DXX_KCONFIG_UI_UDLR(), BT_MOUSE_BUTTON, 0, {&control_info::state_controls_t::select_weapon} },
{DXX_KCONFIG_UI_WEAPON_KEYS_LABEL_X1, DXX_KCONFIG_UI_WEAPON_KEYS_TOP_Y + DXX_KCONFIG_UI_ROW_CELL_HEIGHT( 0), DXX_KCONFIG_UI_WEAPON_KEYS_INPUT_X1_C1, DXX_KCONFIG_UI_CELL_WIDTH, DXX_KCONFIG_UI_LABEL(WEAPON_STRING_LASER) DXX_KCONFIG_UI_UDLR(), BT_KEY, STATE_NONE, {&control_info::state_controls_t::select_weapon} },
{DXX_KCONFIG_UI_WEAPON_KEYS_LABEL_X1, DXX_KCONFIG_UI_WEAPON_KEYS_TOP_Y + DXX_KCONFIG_UI_ROW_CELL_HEIGHT( 0), DXX_KCONFIG_UI_WEAPON_KEYS_INPUT_X1_C2, DXX_KCONFIG_ITEM_JOY_WIDTH(DXX_KCONFIG_UI_CELL_WIDTH), DXX_KCONFIG_UI_UDLR(), BT_JOY_BUTTON, STATE_NONE, {&control_info::state_controls_t::select_weapon} },
{DXX_KCONFIG_UI_WEAPON_KEYS_LABEL_X1, DXX_KCONFIG_UI_WEAPON_KEYS_TOP_Y + DXX_KCONFIG_UI_ROW_CELL_HEIGHT( 0), DXX_KCONFIG_UI_WEAPON_KEYS_INPUT_X1_C3, DXX_KCONFIG_UI_CELL_WIDTH, DXX_KCONFIG_UI_UDLR(), BT_MOUSE_BUTTON, STATE_NONE, {&control_info::state_controls_t::select_weapon} },
{DXX_KCONFIG_UI_WEAPON_KEYS_LABEL_X1, DXX_KCONFIG_UI_WEAPON_KEYS_TOP_Y + DXX_KCONFIG_UI_ROW_CELL_HEIGHT( 1), DXX_KCONFIG_UI_WEAPON_KEYS_INPUT_X1_C1, DXX_KCONFIG_UI_CELL_WIDTH, DXX_KCONFIG_UI_LABEL(WEAPON_STRING_VULCAN) DXX_KCONFIG_UI_UDLR(), BT_KEY, STATE_NONE, {&control_info::state_controls_t::select_weapon} },
{DXX_KCONFIG_UI_WEAPON_KEYS_LABEL_X1, DXX_KCONFIG_UI_WEAPON_KEYS_TOP_Y + DXX_KCONFIG_UI_ROW_CELL_HEIGHT( 1), DXX_KCONFIG_UI_WEAPON_KEYS_INPUT_X1_C2, DXX_KCONFIG_ITEM_JOY_WIDTH(DXX_KCONFIG_UI_CELL_WIDTH), DXX_KCONFIG_UI_UDLR(), BT_JOY_BUTTON, STATE_NONE, {&control_info::state_controls_t::select_weapon} },
{DXX_KCONFIG_UI_WEAPON_KEYS_LABEL_X1, DXX_KCONFIG_UI_WEAPON_KEYS_TOP_Y + DXX_KCONFIG_UI_ROW_CELL_HEIGHT( 1), DXX_KCONFIG_UI_WEAPON_KEYS_INPUT_X1_C3, DXX_KCONFIG_UI_CELL_WIDTH, DXX_KCONFIG_UI_UDLR(), BT_MOUSE_BUTTON, STATE_NONE, {&control_info::state_controls_t::select_weapon} },
{DXX_KCONFIG_UI_WEAPON_KEYS_LABEL_X1, DXX_KCONFIG_UI_WEAPON_KEYS_TOP_Y + DXX_KCONFIG_UI_ROW_CELL_HEIGHT( 2), DXX_KCONFIG_UI_WEAPON_KEYS_INPUT_X1_C1, DXX_KCONFIG_UI_CELL_WIDTH, DXX_KCONFIG_UI_LABEL(WEAPON_STRING_SPREADFIRE) DXX_KCONFIG_UI_UDLR(), BT_KEY, STATE_NONE, {&control_info::state_controls_t::select_weapon} },
{DXX_KCONFIG_UI_WEAPON_KEYS_LABEL_X1, DXX_KCONFIG_UI_WEAPON_KEYS_TOP_Y + DXX_KCONFIG_UI_ROW_CELL_HEIGHT( 2), DXX_KCONFIG_UI_WEAPON_KEYS_INPUT_X1_C2, DXX_KCONFIG_ITEM_JOY_WIDTH(DXX_KCONFIG_UI_CELL_WIDTH), DXX_KCONFIG_UI_UDLR(), BT_JOY_BUTTON, STATE_NONE, {&control_info::state_controls_t::select_weapon} },
{DXX_KCONFIG_UI_WEAPON_KEYS_LABEL_X1, DXX_KCONFIG_UI_WEAPON_KEYS_TOP_Y + DXX_KCONFIG_UI_ROW_CELL_HEIGHT( 2), DXX_KCONFIG_UI_WEAPON_KEYS_INPUT_X1_C3, DXX_KCONFIG_UI_CELL_WIDTH, DXX_KCONFIG_UI_UDLR(), BT_MOUSE_BUTTON, STATE_NONE, {&control_info::state_controls_t::select_weapon} },
{DXX_KCONFIG_UI_WEAPON_KEYS_LABEL_X1, DXX_KCONFIG_UI_WEAPON_KEYS_TOP_Y + DXX_KCONFIG_UI_ROW_CELL_HEIGHT( 3), DXX_KCONFIG_UI_WEAPON_KEYS_INPUT_X1_C1, DXX_KCONFIG_UI_CELL_WIDTH, DXX_KCONFIG_UI_LABEL(WEAPON_STRING_PLASMA) DXX_KCONFIG_UI_UDLR(), BT_KEY, STATE_NONE, {&control_info::state_controls_t::select_weapon} },
{DXX_KCONFIG_UI_WEAPON_KEYS_LABEL_X1, DXX_KCONFIG_UI_WEAPON_KEYS_TOP_Y + DXX_KCONFIG_UI_ROW_CELL_HEIGHT( 3), DXX_KCONFIG_UI_WEAPON_KEYS_INPUT_X1_C2, DXX_KCONFIG_ITEM_JOY_WIDTH(DXX_KCONFIG_UI_CELL_WIDTH), DXX_KCONFIG_UI_UDLR(), BT_JOY_BUTTON, STATE_NONE, {&control_info::state_controls_t::select_weapon} },
{DXX_KCONFIG_UI_WEAPON_KEYS_LABEL_X1, DXX_KCONFIG_UI_WEAPON_KEYS_TOP_Y + DXX_KCONFIG_UI_ROW_CELL_HEIGHT( 3), DXX_KCONFIG_UI_WEAPON_KEYS_INPUT_X1_C3, DXX_KCONFIG_UI_CELL_WIDTH, DXX_KCONFIG_UI_UDLR(), BT_MOUSE_BUTTON, STATE_NONE, {&control_info::state_controls_t::select_weapon} },
{DXX_KCONFIG_UI_WEAPON_KEYS_LABEL_X1, DXX_KCONFIG_UI_WEAPON_KEYS_TOP_Y + DXX_KCONFIG_UI_ROW_CELL_HEIGHT( 4), DXX_KCONFIG_UI_WEAPON_KEYS_INPUT_X1_C1, DXX_KCONFIG_UI_CELL_WIDTH, DXX_KCONFIG_UI_LABEL(WEAPON_STRING_FUSION) DXX_KCONFIG_UI_UDLR(), BT_KEY, STATE_NONE, {&control_info::state_controls_t::select_weapon} },
{DXX_KCONFIG_UI_WEAPON_KEYS_LABEL_X1, DXX_KCONFIG_UI_WEAPON_KEYS_TOP_Y + DXX_KCONFIG_UI_ROW_CELL_HEIGHT( 4), DXX_KCONFIG_UI_WEAPON_KEYS_INPUT_X1_C2, DXX_KCONFIG_ITEM_JOY_WIDTH(DXX_KCONFIG_UI_CELL_WIDTH), DXX_KCONFIG_UI_UDLR(), BT_JOY_BUTTON, STATE_NONE, {&control_info::state_controls_t::select_weapon} },
{DXX_KCONFIG_UI_WEAPON_KEYS_LABEL_X1, DXX_KCONFIG_UI_WEAPON_KEYS_TOP_Y + DXX_KCONFIG_UI_ROW_CELL_HEIGHT( 4), DXX_KCONFIG_UI_WEAPON_KEYS_INPUT_X1_C3, DXX_KCONFIG_UI_CELL_WIDTH, DXX_KCONFIG_UI_UDLR(), BT_MOUSE_BUTTON, STATE_NONE, {&control_info::state_controls_t::select_weapon} },
{DXX_KCONFIG_UI_WEAPON_KEYS_LABEL_X1, DXX_KCONFIG_UI_WEAPON_KEYS_TOP_Y + DXX_KCONFIG_UI_ROW_CELL_HEIGHT( 5), DXX_KCONFIG_UI_WEAPON_KEYS_INPUT_X1_C1, DXX_KCONFIG_UI_CELL_WIDTH, DXX_KCONFIG_UI_LABEL(WEAPON_STRING_CONCUSSION) DXX_KCONFIG_UI_UDLR(), BT_KEY, STATE_NONE, {&control_info::state_controls_t::select_weapon} },
{DXX_KCONFIG_UI_WEAPON_KEYS_LABEL_X1, DXX_KCONFIG_UI_WEAPON_KEYS_TOP_Y + DXX_KCONFIG_UI_ROW_CELL_HEIGHT( 5), DXX_KCONFIG_UI_WEAPON_KEYS_INPUT_X1_C2, DXX_KCONFIG_ITEM_JOY_WIDTH(DXX_KCONFIG_UI_CELL_WIDTH), DXX_KCONFIG_UI_UDLR(), BT_JOY_BUTTON, STATE_NONE, {&control_info::state_controls_t::select_weapon} },
{DXX_KCONFIG_UI_WEAPON_KEYS_LABEL_X1, DXX_KCONFIG_UI_WEAPON_KEYS_TOP_Y + DXX_KCONFIG_UI_ROW_CELL_HEIGHT( 5), DXX_KCONFIG_UI_WEAPON_KEYS_INPUT_X1_C3, DXX_KCONFIG_UI_CELL_WIDTH, DXX_KCONFIG_UI_UDLR(), BT_MOUSE_BUTTON, STATE_NONE, {&control_info::state_controls_t::select_weapon} },
{DXX_KCONFIG_UI_WEAPON_KEYS_LABEL_X1, DXX_KCONFIG_UI_WEAPON_KEYS_TOP_Y + DXX_KCONFIG_UI_ROW_CELL_HEIGHT( 6), DXX_KCONFIG_UI_WEAPON_KEYS_INPUT_X1_C1, DXX_KCONFIG_UI_CELL_WIDTH, DXX_KCONFIG_UI_LABEL(WEAPON_STRING_HOMING) DXX_KCONFIG_UI_UDLR(), BT_KEY, STATE_NONE, {&control_info::state_controls_t::select_weapon} },
{DXX_KCONFIG_UI_WEAPON_KEYS_LABEL_X1, DXX_KCONFIG_UI_WEAPON_KEYS_TOP_Y + DXX_KCONFIG_UI_ROW_CELL_HEIGHT( 6), DXX_KCONFIG_UI_WEAPON_KEYS_INPUT_X1_C2, DXX_KCONFIG_ITEM_JOY_WIDTH(DXX_KCONFIG_UI_CELL_WIDTH), DXX_KCONFIG_UI_UDLR(), BT_JOY_BUTTON, STATE_NONE, {&control_info::state_controls_t::select_weapon} },
{DXX_KCONFIG_UI_WEAPON_KEYS_LABEL_X1, DXX_KCONFIG_UI_WEAPON_KEYS_TOP_Y + DXX_KCONFIG_UI_ROW_CELL_HEIGHT( 6), DXX_KCONFIG_UI_WEAPON_KEYS_INPUT_X1_C3, DXX_KCONFIG_UI_CELL_WIDTH, DXX_KCONFIG_UI_UDLR(), BT_MOUSE_BUTTON, STATE_NONE, {&control_info::state_controls_t::select_weapon} },
{DXX_KCONFIG_UI_WEAPON_KEYS_LABEL_X1, DXX_KCONFIG_UI_WEAPON_KEYS_TOP_Y + DXX_KCONFIG_UI_ROW_CELL_HEIGHT( 7), DXX_KCONFIG_UI_WEAPON_KEYS_INPUT_X1_C1, DXX_KCONFIG_UI_CELL_WIDTH, DXX_KCONFIG_UI_LABEL(WEAPON_STRING_PROXIMITY) DXX_KCONFIG_UI_UDLR(), BT_KEY, STATE_NONE, {&control_info::state_controls_t::select_weapon} },
{DXX_KCONFIG_UI_WEAPON_KEYS_LABEL_X1, DXX_KCONFIG_UI_WEAPON_KEYS_TOP_Y + DXX_KCONFIG_UI_ROW_CELL_HEIGHT( 7), DXX_KCONFIG_UI_WEAPON_KEYS_INPUT_X1_C2, DXX_KCONFIG_ITEM_JOY_WIDTH(DXX_KCONFIG_UI_CELL_WIDTH), DXX_KCONFIG_UI_UDLR(), BT_JOY_BUTTON, STATE_NONE, {&control_info::state_controls_t::select_weapon} },
{DXX_KCONFIG_UI_WEAPON_KEYS_LABEL_X1, DXX_KCONFIG_UI_WEAPON_KEYS_TOP_Y + DXX_KCONFIG_UI_ROW_CELL_HEIGHT( 7), DXX_KCONFIG_UI_WEAPON_KEYS_INPUT_X1_C3, DXX_KCONFIG_UI_CELL_WIDTH, DXX_KCONFIG_UI_UDLR(), BT_MOUSE_BUTTON, STATE_NONE, {&control_info::state_controls_t::select_weapon} },
{DXX_KCONFIG_UI_WEAPON_KEYS_LABEL_X1, DXX_KCONFIG_UI_WEAPON_KEYS_TOP_Y + DXX_KCONFIG_UI_ROW_CELL_HEIGHT( 8), DXX_KCONFIG_UI_WEAPON_KEYS_INPUT_X1_C1, DXX_KCONFIG_UI_CELL_WIDTH, DXX_KCONFIG_UI_LABEL(WEAPON_STRING_SMART) DXX_KCONFIG_UI_UDLR(), BT_KEY, STATE_NONE, {&control_info::state_controls_t::select_weapon} },
{DXX_KCONFIG_UI_WEAPON_KEYS_LABEL_X1, DXX_KCONFIG_UI_WEAPON_KEYS_TOP_Y + DXX_KCONFIG_UI_ROW_CELL_HEIGHT( 8), DXX_KCONFIG_UI_WEAPON_KEYS_INPUT_X1_C2, DXX_KCONFIG_ITEM_JOY_WIDTH(DXX_KCONFIG_UI_CELL_WIDTH), DXX_KCONFIG_UI_UDLR(), BT_JOY_BUTTON, STATE_NONE, {&control_info::state_controls_t::select_weapon} },
{DXX_KCONFIG_UI_WEAPON_KEYS_LABEL_X1, DXX_KCONFIG_UI_WEAPON_KEYS_TOP_Y + DXX_KCONFIG_UI_ROW_CELL_HEIGHT( 8), DXX_KCONFIG_UI_WEAPON_KEYS_INPUT_X1_C3, DXX_KCONFIG_UI_CELL_WIDTH, DXX_KCONFIG_UI_UDLR(), BT_MOUSE_BUTTON, STATE_NONE, {&control_info::state_controls_t::select_weapon} },
{DXX_KCONFIG_UI_WEAPON_KEYS_LABEL_X1, DXX_KCONFIG_UI_WEAPON_KEYS_TOP_Y + DXX_KCONFIG_UI_ROW_CELL_HEIGHT( 9), DXX_KCONFIG_UI_WEAPON_KEYS_INPUT_X1_C1, DXX_KCONFIG_UI_CELL_WIDTH, DXX_KCONFIG_UI_LABEL(WEAPON_STRING_MEGA) DXX_KCONFIG_UI_UDLR(), BT_KEY, STATE_NONE, {&control_info::state_controls_t::select_weapon} },
{DXX_KCONFIG_UI_WEAPON_KEYS_LABEL_X1, DXX_KCONFIG_UI_WEAPON_KEYS_TOP_Y + DXX_KCONFIG_UI_ROW_CELL_HEIGHT( 9), DXX_KCONFIG_UI_WEAPON_KEYS_INPUT_X1_C2, DXX_KCONFIG_ITEM_JOY_WIDTH(DXX_KCONFIG_UI_CELL_WIDTH), DXX_KCONFIG_UI_UDLR(), BT_JOY_BUTTON, STATE_NONE, {&control_info::state_controls_t::select_weapon} },
{DXX_KCONFIG_UI_WEAPON_KEYS_LABEL_X1, DXX_KCONFIG_UI_WEAPON_KEYS_TOP_Y + DXX_KCONFIG_UI_ROW_CELL_HEIGHT( 9), DXX_KCONFIG_UI_WEAPON_KEYS_INPUT_X1_C3, DXX_KCONFIG_UI_CELL_WIDTH, DXX_KCONFIG_UI_UDLR(), BT_MOUSE_BUTTON, STATE_NONE, {&control_info::state_controls_t::select_weapon} },
};
#undef DXX_KCONFIG_UI_WEAPON_KEYS_INPUT_X1_C3