Fix no-joystick build
When joystick support is not present, `event_joystick_get_button` is not
declared in joy.h.
Fixes: c24864b180
("make menus controllable with joystick")
This commit is contained in:
parent
3ee3ac7b7a
commit
b3c3066a38
|
@ -443,12 +443,14 @@ void joy_close()
|
|||
joybutton_text.clear();
|
||||
}
|
||||
|
||||
#if DXX_MAX_AXES_PER_JOYSTICK
|
||||
const d_event_joystick_axis_value &event_joystick_get_axis(const d_event &event)
|
||||
{
|
||||
auto &e = static_cast<const d_event_joystick_moved &>(event);
|
||||
Assert(e.type == EVENT_JOYSTICK_MOVED);
|
||||
return e;
|
||||
}
|
||||
#endif
|
||||
|
||||
void joy_flush()
|
||||
{
|
||||
|
@ -465,12 +467,14 @@ void joy_flush()
|
|||
#endif
|
||||
}
|
||||
|
||||
#if DXX_MAX_BUTTONS_PER_JOYSTICK
|
||||
int event_joystick_get_button(const d_event &event)
|
||||
{
|
||||
auto &e = static_cast<const d_event_joystickbutton &>(event);
|
||||
Assert(e.type == EVENT_JOYSTICK_BUTTON_DOWN || e.type == EVENT_JOYSTICK_BUTTON_UP);
|
||||
return e.button;
|
||||
}
|
||||
#endif
|
||||
|
||||
int apply_deadzone(int value, int deadzone)
|
||||
{
|
||||
|
@ -482,10 +486,10 @@ int apply_deadzone(int value, int deadzone)
|
|||
return 0;
|
||||
}
|
||||
|
||||
#if DXX_MAX_BUTTONS_PER_JOYSTICK
|
||||
bool joy_translate_menu_key(const d_event &event) {
|
||||
if (event.type != EVENT_JOYSTICK_BUTTON_DOWN)
|
||||
return false;
|
||||
#if DXX_MAX_JOYSTICKS
|
||||
auto &e = static_cast<const d_event_joystickbutton &>(event);
|
||||
assert(e.button < joy_key_map.size());
|
||||
auto key = joy_key_map[e.button];
|
||||
|
@ -495,8 +499,8 @@ bool joy_translate_menu_key(const d_event &event) {
|
|||
return true;
|
||||
}
|
||||
return false;
|
||||
#endif
|
||||
}
|
||||
#endif
|
||||
|
||||
}
|
||||
#endif
|
||||
|
|
|
@ -24,9 +24,13 @@ enum event_type : unsigned
|
|||
EVENT_IDLE = 0,
|
||||
EVENT_QUIT,
|
||||
|
||||
#if DXX_MAX_BUTTONS_PER_JOYSTICK
|
||||
EVENT_JOYSTICK_BUTTON_DOWN,
|
||||
EVENT_JOYSTICK_BUTTON_UP,
|
||||
#endif
|
||||
#if DXX_MAX_AXES_PER_JOYSTICK
|
||||
EVENT_JOYSTICK_MOVED,
|
||||
#endif
|
||||
|
||||
EVENT_MOUSE_BUTTON_DOWN,
|
||||
EVENT_MOUSE_BUTTON_UP,
|
||||
|
|
|
@ -34,10 +34,7 @@ struct d_event_joystick_axis_value
|
|||
|
||||
extern void joy_init();
|
||||
extern void joy_close();
|
||||
const d_event_joystick_axis_value &event_joystick_get_axis(const d_event &event);
|
||||
extern void joy_flush();
|
||||
bool joy_translate_menu_key(const d_event &event);
|
||||
extern int event_joystick_get_button(const d_event &event);
|
||||
extern int apply_deadzone(int value, int deadzone);
|
||||
|
||||
}
|
||||
|
@ -50,6 +47,8 @@ extern int apply_deadzone(int value, int deadzone);
|
|||
namespace dcx {
|
||||
|
||||
#if DXX_MAX_BUTTONS_PER_JOYSTICK
|
||||
bool joy_translate_menu_key(const d_event &event);
|
||||
int event_joystick_get_button(const d_event &event);
|
||||
window_event_result joy_button_handler(const SDL_JoyButtonEvent *jbe);
|
||||
#else
|
||||
#define joy_button_handler(jbe) (static_cast<const SDL_JoyButtonEvent *const &>(jbe), window_event_result::ignored)
|
||||
|
@ -62,6 +61,7 @@ window_event_result joy_hat_handler(const SDL_JoyHatEvent *jhe);
|
|||
#endif
|
||||
|
||||
#if DXX_MAX_AXES_PER_JOYSTICK
|
||||
const d_event_joystick_axis_value &event_joystick_get_axis(const d_event &event);
|
||||
window_event_result joy_axis_handler(const SDL_JoyAxisEvent *jae);
|
||||
#else
|
||||
#define joy_axis_handler(jbe) (static_cast<const SDL_JoyAxisEvent *const &>(jbe), window_event_result::ignored)
|
||||
|
|
|
@ -1116,9 +1116,13 @@ window_event_result editor_handler(UI_DIALOG *, const d_event &event, unused_ui_
|
|||
if (!keyd_pressed[ KEY_LCTRL ] && !keyd_pressed[ KEY_RCTRL ])
|
||||
break;
|
||||
DXX_BOOST_FALLTHROUGH;
|
||||
#if DXX_MAX_BUTTONS_PER_JOYSTICK
|
||||
case EVENT_JOYSTICK_BUTTON_UP:
|
||||
case EVENT_JOYSTICK_BUTTON_DOWN:
|
||||
#endif
|
||||
#if DXX_MAX_AXES_PER_JOYSTICK
|
||||
case EVENT_JOYSTICK_MOVED:
|
||||
#endif
|
||||
case EVENT_KEY_COMMAND:
|
||||
case EVENT_KEY_RELEASE:
|
||||
case EVENT_IDLE:
|
||||
|
|
|
@ -1104,9 +1104,13 @@ window_event_result automap::event_handler(const d_event &event)
|
|||
#endif
|
||||
|
||||
case EVENT_IDLE:
|
||||
#if DXX_MAX_BUTTONS_PER_JOYSTICK
|
||||
case EVENT_JOYSTICK_BUTTON_UP:
|
||||
case EVENT_JOYSTICK_BUTTON_DOWN:
|
||||
#endif
|
||||
#if DXX_MAX_AXES_PER_JOYSTICK
|
||||
case EVENT_JOYSTICK_MOVED:
|
||||
#endif
|
||||
case EVENT_MOUSE_BUTTON_UP:
|
||||
case EVENT_MOUSE_BUTTON_DOWN:
|
||||
case EVENT_MOUSE_MOVED:
|
||||
|
|
|
@ -132,8 +132,10 @@ window_event_result credits_window::event_handler(const d_event &event)
|
|||
}
|
||||
break;
|
||||
|
||||
#if DXX_MAX_BUTTONS_PER_JOYSTICK
|
||||
case EVENT_JOYSTICK_BUTTON_DOWN:
|
||||
return window_event_result::close;
|
||||
#endif
|
||||
|
||||
case EVENT_IDLE:
|
||||
if (done > NUM_LINES)
|
||||
|
|
|
@ -1597,9 +1597,13 @@ window_event_result game_window::event_handler(const d_event &event)
|
|||
key_toggle_repeat(1);
|
||||
break;
|
||||
|
||||
#if DXX_MAX_BUTTONS_PER_JOYSTICK
|
||||
case EVENT_JOYSTICK_BUTTON_UP:
|
||||
case EVENT_JOYSTICK_BUTTON_DOWN:
|
||||
#endif
|
||||
#if DXX_MAX_AXES_PER_JOYSTICK
|
||||
case EVENT_JOYSTICK_MOVED:
|
||||
#endif
|
||||
case EVENT_MOUSE_BUTTON_UP:
|
||||
case EVENT_MOUSE_BUTTON_DOWN:
|
||||
case EVENT_MOUSE_MOVED:
|
||||
|
|
|
@ -485,7 +485,11 @@ static int HandleDeathInput(const d_event &event)
|
|||
}
|
||||
|
||||
if (RespawnMode == RespawnPress::Any
|
||||
? (event.type == EVENT_JOYSTICK_BUTTON_UP || event.type == EVENT_MOUSE_BUTTON_UP)
|
||||
? (
|
||||
#if DXX_MAX_BUTTONS_PER_JOYSTICK
|
||||
event.type == EVENT_JOYSTICK_BUTTON_UP ||
|
||||
#endif
|
||||
event.type == EVENT_MOUSE_BUTTON_UP)
|
||||
: (Controls.state.fire_primary || Controls.state.fire_secondary || Controls.state.fire_flare))
|
||||
return 1;
|
||||
return 0;
|
||||
|
|
|
@ -715,8 +715,10 @@ namespace {
|
|||
|
||||
window_event_result kc_menu::event_handler(const d_event &event)
|
||||
{
|
||||
#if DXX_MAX_BUTTONS_PER_JOYSTICK
|
||||
if (!changing && joy_translate_menu_key(event))
|
||||
return window_event_result::handled;
|
||||
#endif
|
||||
|
||||
switch (event.type)
|
||||
{
|
||||
|
@ -917,7 +919,7 @@ static void kc_change_key( kc_menu &menu,const d_event &event, kc_mitem &mitem )
|
|||
kc_set_exclusive_binding(menu, mitem, BT_KEY, keycode);
|
||||
}
|
||||
|
||||
#if DXX_MAX_BUTTONS_PER_JOYSTICK || DXX_MAX_HATS_PER_JOYSTICK
|
||||
#if DXX_MAX_BUTTONS_PER_JOYSTICK
|
||||
static void kc_change_joybutton( kc_menu &menu,const d_event &event, kc_mitem &mitem )
|
||||
{
|
||||
int button = 255;
|
||||
|
@ -1152,7 +1154,7 @@ void kconfig_read_controls(control_info &Controls, const d_event &event, int aut
|
|||
}
|
||||
}
|
||||
break;
|
||||
#if DXX_MAX_BUTTONS_PER_JOYSTICK || DXX_MAX_HATS_PER_JOYSTICK || DXX_MAX_AXES_PER_JOYSTICK
|
||||
#if DXX_MAX_BUTTONS_PER_JOYSTICK
|
||||
case EVENT_JOYSTICK_BUTTON_DOWN:
|
||||
case EVENT_JOYSTICK_BUTTON_UP:
|
||||
if (!(PlayerCfg.ControlType & CONTROL_USING_JOYSTICK))
|
||||
|
|
|
@ -1572,8 +1572,10 @@ static window_event_result newmenu_draw(window *wind, newmenu *menu)
|
|||
|
||||
static window_event_result newmenu_handler(window *wind,const d_event &event, newmenu *menu)
|
||||
{
|
||||
#if DXX_MAX_BUTTONS_PER_JOYSTICK
|
||||
if (joy_translate_menu_key(event))
|
||||
return window_event_result::handled;
|
||||
#endif
|
||||
|
||||
if (menu->subfunction)
|
||||
{
|
||||
|
@ -2187,8 +2189,10 @@ static window_event_result listbox_handler(window *wind,const d_event &event, li
|
|||
return rval; // event handled
|
||||
}
|
||||
|
||||
#if DXX_MAX_BUTTONS_PER_JOYSTICK
|
||||
if (joy_translate_menu_key(event))
|
||||
return window_event_result::handled;
|
||||
#endif
|
||||
|
||||
switch (event.type)
|
||||
{
|
||||
|
|
|
@ -404,8 +404,10 @@ static window_event_result scores_handler(window *wind,const d_event &event, sco
|
|||
}
|
||||
break;
|
||||
|
||||
#if DXX_MAX_BUTTONS_PER_JOYSTICK
|
||||
case EVENT_JOYSTICK_BUTTON_DOWN:
|
||||
return window_event_result::close;
|
||||
#endif
|
||||
|
||||
case EVENT_IDLE:
|
||||
timer_delay2(50);
|
||||
|
|
|
@ -145,11 +145,10 @@ static window_event_result title_handler(window *, const d_event &event, title_s
|
|||
}
|
||||
return result;
|
||||
|
||||
#if DXX_MAX_BUTTONS_PER_JOYSTICK
|
||||
case EVENT_JOYSTICK_BUTTON_DOWN:
|
||||
{
|
||||
return window_event_result::close;
|
||||
}
|
||||
break;
|
||||
#endif
|
||||
|
||||
case EVENT_IDLE:
|
||||
timer_delay2(50);
|
||||
|
@ -1555,6 +1554,7 @@ static window_event_result briefing_handler(window *, const d_event &event, brie
|
|||
}
|
||||
break;
|
||||
|
||||
#if DXX_MAX_BUTTONS_PER_JOYSTICK
|
||||
case EVENT_JOYSTICK_BUTTON_DOWN:
|
||||
// using joy_translate_menu_key doesn't work here for unclear
|
||||
// reasons, so we build a reasonable facsimile right here
|
||||
|
@ -1572,6 +1572,7 @@ static window_event_result briefing_handler(window *, const d_event &event, brie
|
|||
else
|
||||
br->delay_count = 0;
|
||||
return window_event_result::handled;
|
||||
#endif
|
||||
|
||||
case EVENT_KEY_COMMAND:
|
||||
{
|
||||
|
|
Loading…
Reference in a new issue