Ja es pot gastar el teclat com a control independent del primer mando

Ja pot jugar un jugador amb teclat i altre amb mando
Es pot asignar el teclat a qualsevol dels dos jugadors
Continua podentse gastar mando i teclat a l'hora per al mateix jugador
This commit is contained in:
2024-11-03 11:07:58 +01:00
parent a1ccb6102a
commit 86cd7b0f16
11 changed files with 306 additions and 293 deletions

View File

@@ -192,16 +192,16 @@ void Director::bindInputs()
}
// Mapea las asignaciones a los botones desde el archivo de configuración, si se da el caso
for (size_t i = 0; i < num_gamepads; ++i)
const size_t max_controllers = std::min(2, num_gamepads);
for (size_t i = 0; i < max_controllers; ++i)
{
for (size_t index = 0; index < options.controller.size(); ++index)
for (auto &controller : options.controllers)
{
if (Input::get()->getControllerName(i) == options.controller.at(index).name)
if (Input::get()->getControllerName(i) == controller.name)
{
options.controller.at(index).plugged = true;
for (size_t j = 0; j < options.controller.at(index).inputs.size(); ++j)
for (size_t j = 0; j < controller.inputs.size(); ++j)
{
Input::get()->bindGameControllerButton(i, options.controller.at(index).inputs.at(j), options.controller.at(index).buttons.at(j));
Input::get()->bindGameControllerButton(i, controller.inputs.at(j), controller.buttons.at(j));
}
}
}
@@ -220,13 +220,17 @@ void Director::bindInputs()
Input::get()->bindGameControllerButton(i, InputType::SWAP_CONTROLLERS, InputType::UP);
}
// Guarda las asignaciones de botones en las opciones
for (int i = 0; i < num_gamepads; ++i)
// Guarda las asignaciones de botones en las opciones de los dos primeros mandos
for (size_t i = 0; i < max_controllers; ++i)
{
options.controller.at(i).name = Input::get()->getControllerName(i);
for (size_t j = 0; j < options.controller.at(i).inputs.size(); ++j)
// Variables asociadas al mando
options.controllers.at(i).index = i;
options.controllers.at(i).name = Input::get()->getControllerName(i);
options.controllers.at(i).plugged = true;
// Asignaciones de botones
for (size_t j = 0; j < options.controllers.at(i).inputs.size(); ++j)
{
options.controller.at(i).buttons.at(j) = Input::get()->getControllerBinding(i, options.controller.at(i).inputs.at(j));
options.controllers.at(i).buttons.at(j) = Input::get()->getControllerBinding(i, options.controllers.at(i).inputs.at(j));
}
}
}