Ja es por canviar el jugador que maneja el teclat "en calent" desde el service menu

This commit is contained in:
2025-08-08 13:21:14 +02:00
parent de5e99c932
commit add9f8df7a
7 changed files with 133 additions and 60 deletions

View File

@@ -245,7 +245,19 @@ class GamepadManager {
};
struct Keyboard {
Player::Id player_id = Player::Id::PLAYER1; // Jugador asociado al teclado
Player::Id player_id = Player::Id::PLAYER1; // Jugador asociado al teclado
std::vector<std::shared_ptr<Player>> players; // Punteros a los jugadores
void addPlayer(std::shared_ptr<Player> player) { players.push_back(player); } // Añade un jugador a la lista
void clearPlayers() { players.clear(); } // Limpia la lista de jugadores
// Asigna el teclado a un jugador
void assignTo(Player::Id player_id) {
this->player_id = player_id;
for (auto& player : players) {
player->setUsesKeyboard(player->getId() == player_id);
}
}
};
// --- Opciones pendientes de aplicar ---
@@ -277,6 +289,8 @@ void setKeyboardToPlayer(Player::Id player_id);
void swapKeyboard(); // Intercambia el teclado de jugador
void swapControllers(); // Intercambia los jugadores asignados a los dos primeros mandos
auto getPlayerWhoUsesKeyboard() -> Player::Id; // Averigua quién está usando el teclado
auto playerIdToString(Player::Id player_id) -> std::string; // Convierte un player id a texto segun Lang
auto stringToPlayerId(std::string name) -> Player::Id; // Convierte un texto a player id segun Lang
void applyPendingChanges(); // Aplica los cambios pendientes copiando los valores a sus variables
void checkPendingChanges(); // Verifica si hay cambios pendientes
auto assignGamepadByName(const std::string& gamepad_name, Player::Id player_id) -> bool; // Buscar y asignar un mando disponible por nombre