Controls: extract init_joysticks (#15597)

This commit is contained in:
wrrrzr 2024-12-29 00:05:01 +03:00 committed by GitHub
parent 35bc217ba8
commit cca65fde08
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 22 additions and 16 deletions

@ -301,24 +301,29 @@ void ClientLauncher::init_input()
else
input = new RealInputHandler(receiver);
if (g_settings->getBool("enable_joysticks")) {
irr::core::array<irr::SJoystickInfo> infos;
std::vector<irr::SJoystickInfo> joystick_infos;
if (g_settings->getBool("enable_joysticks"))
init_joysticks();
}
// Make sure this is called maximum once per
// irrlicht device, otherwise it will give you
// multiple events for the same joystick.
if (m_rendering_engine->get_raw_device()->activateJoysticks(infos)) {
infostream << "Joystick support enabled" << std::endl;
joystick_infos.reserve(infos.size());
for (u32 i = 0; i < infos.size(); i++) {
joystick_infos.push_back(infos[i]);
}
input->joystick.onJoystickConnect(joystick_infos);
} else {
errorstream << "Could not activate joystick support." << std::endl;
}
void ClientLauncher::init_joysticks()
{
irr::core::array<irr::SJoystickInfo> infos;
std::vector<irr::SJoystickInfo> joystick_infos;
// Make sure this is called maximum once per
// irrlicht device, otherwise it will give you
// multiple events for the same joystick.
if (!m_rendering_engine->get_raw_device()->activateJoysticks(infos)) {
errorstream << "Could not activate joystick support." << std::endl;
return;
}
infostream << "Joystick support enabled" << std::endl;
joystick_infos.reserve(infos.size());
for (u32 i = 0; i < infos.size(); i++) {
joystick_infos.push_back(infos[i]);
}
input->joystick.onJoystickConnect(joystick_infos);
}
void ClientLauncher::setting_changed_callback(const std::string &name, void *data)

@ -26,6 +26,7 @@ private:
void init_args(GameStartData &start_data, const Settings &cmd_args);
bool init_engine();
void init_input();
void init_joysticks();
static void setting_changed_callback(const std::string &name, void *data);
void config_guienv();