Ja es poden conectar i desconectar mandos en calent, que tot el mon s'entera

This commit is contained in:
2025-08-10 11:02:20 +02:00
parent 8eb8e07e0a
commit 983eb7ee6f
10 changed files with 109 additions and 64 deletions

View File

@@ -157,10 +157,12 @@ class GamepadManager {
std::swap(gamepads_[0].name, gamepads_[1].name);
std::swap(gamepads_[0].path, gamepads_[1].path);
for (auto player: players)
{
switch (player->getId())
{
resyncGamepadsWithPlayers();
}
void resyncGamepadsWithPlayers() {
for (auto player : players) {
switch (player->getId()) {
case Player::Id::PLAYER1:
player->setGamepad(gamepads_[0].instance);
break;
@@ -168,7 +170,7 @@ class GamepadManager {
player->setGamepad(gamepads_[1].instance);
break;
default:
break;
break;
}
}
}
@@ -229,7 +231,6 @@ class GamepadManager {
// Asigna el mando a un jugador
void assignTo(Input::Gamepad gamepad, Player::Id player_id) {
}
// Asigna los mandos físicos basándose en la configuración actual de nombres.
@@ -246,7 +247,7 @@ class GamepadManager {
private:
static constexpr std::string_view UNASSIGNED_TEXT = "---";
static constexpr size_t MAX_PLAYERS = 2;
std::array<Gamepad, MAX_PLAYERS> gamepads_; // Punteros a las estructuras de mandos de Options
std::array<Gamepad, MAX_PLAYERS> gamepads_; // Punteros a las estructuras de mandos de Options
std::vector<std::shared_ptr<Player>> players; // Punteros a los jugadores
// Convierte Player::Id a índice del array