mirror of
https://github.com/holub/mame
synced 2025-10-05 08:41:31 +03:00
Don't crash on input modules not derived from wininput_module (like "none")
This commit is contained in:
parent
432e378456
commit
fd56812b53
@ -23,20 +23,41 @@
|
||||
bool windows_osd_interface::should_hide_mouse() const
|
||||
{
|
||||
bool hidemouse = false;
|
||||
hidemouse |= downcast<wininput_module*>(m_keyboard_input)->should_hide_mouse();
|
||||
hidemouse |= downcast<wininput_module*>(m_mouse_input)->should_hide_mouse();
|
||||
hidemouse |= downcast<wininput_module*>(m_lightgun_input)->should_hide_mouse();
|
||||
hidemouse |= downcast<wininput_module*>(m_joystick_input)->should_hide_mouse();
|
||||
wininput_module* mod = nullptr;
|
||||
|
||||
mod = dynamic_cast<wininput_module*>(m_keyboard_input);
|
||||
if (mod) hidemouse |= mod->should_hide_mouse();
|
||||
|
||||
mod = dynamic_cast<wininput_module*>(m_mouse_input);
|
||||
if (mod) hidemouse |= mod->should_hide_mouse();
|
||||
|
||||
mod = dynamic_cast<wininput_module*>(m_lightgun_input);
|
||||
if (mod) hidemouse |= mod->should_hide_mouse();
|
||||
|
||||
mod = dynamic_cast<wininput_module*>(m_joystick_input);
|
||||
if (mod) hidemouse |= mod->should_hide_mouse();
|
||||
|
||||
return hidemouse;
|
||||
}
|
||||
|
||||
bool windows_osd_interface::handle_input_event(input_event eventid, void* eventdata) const
|
||||
{
|
||||
bool handled = false;
|
||||
handled |= downcast<wininput_module*>(m_keyboard_input)->handle_input_event(eventid, eventdata);
|
||||
handled |= downcast<wininput_module*>(m_mouse_input)->handle_input_event(eventid, eventdata);
|
||||
handled |= downcast<wininput_module*>(m_lightgun_input)->handle_input_event(eventid, eventdata);
|
||||
handled |= downcast<wininput_module*>(m_joystick_input)->handle_input_event(eventid, eventdata);
|
||||
|
||||
wininput_module* mod = nullptr;
|
||||
|
||||
mod = dynamic_cast<wininput_module*>(m_keyboard_input);
|
||||
if (mod) handled |= mod->handle_input_event(eventid, eventdata);
|
||||
|
||||
mod = dynamic_cast<wininput_module*>(m_mouse_input);
|
||||
if (mod) handled |= mod->handle_input_event(eventid, eventdata);
|
||||
|
||||
mod = dynamic_cast<wininput_module*>(m_lightgun_input);
|
||||
if (mod) handled |= mod->handle_input_event(eventid, eventdata);
|
||||
|
||||
mod = dynamic_cast<wininput_module*>(m_joystick_input);
|
||||
if (mod) handled |= mod->handle_input_event(eventid, eventdata);
|
||||
|
||||
return handled;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user