migrant input: commit abans que gemini destroçe algo
This commit is contained in:
@@ -1217,13 +1217,11 @@ auto Game::getPlayer(Player::Id id) -> std::shared_ptr<Player> {
|
||||
|
||||
// Obtiene un controlador a partir del "id" del jugador
|
||||
auto Game::getController(Player::Id player_id) -> int {
|
||||
auto it = std::find_if(Options::gamepads.begin(), Options::gamepads.end(), [player_id](const auto &controller) { return controller->player_id == player_id; });
|
||||
|
||||
if (it != Options::gamepads.end()) {
|
||||
return std::distance(Options::gamepads.begin(), it);
|
||||
switch (player_id) {
|
||||
case Player::Id::PLAYER1: return 0;
|
||||
case Player::Id::PLAYER2: return 1;
|
||||
default: return -1;
|
||||
}
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
// Gestiona la entrada durante el juego
|
||||
@@ -1599,7 +1597,7 @@ void Game::initPlayers(Player::Id player_id) {
|
||||
auto player1 = std::make_unique<Player>(config_player1);
|
||||
player1->setScoreBoardPanel(Scoreboard::Id::LEFT);
|
||||
player1->setName(Lang::getText("[SCOREBOARD] 1"));
|
||||
player1->setGamepad(Options::gamepads.front()->instance);
|
||||
player1->setGamepad(Options::gamepads.getGamepad(Player::Id::PLAYER1).instance);
|
||||
player1->setUsesKeyboard(Player::Id::PLAYER1 == Options::keyboard.player_id);
|
||||
player1->setPlayingState(Player::State::WAITING);
|
||||
players_.push_back(std::move(player1));
|
||||
@@ -1619,7 +1617,7 @@ void Game::initPlayers(Player::Id player_id) {
|
||||
auto player2 = std::make_unique<Player>(config_player2);
|
||||
player2->setScoreBoardPanel(Scoreboard::Id::RIGHT);
|
||||
player2->setName(Lang::getText("[SCOREBOARD] 2"));
|
||||
player2->setGamepad(Options::gamepads.back()->instance);
|
||||
player2->setGamepad(Options::gamepads.getGamepad(Player::Id::PLAYER2).instance);
|
||||
player2->setUsesKeyboard(Player::Id::PLAYER2 == Options::keyboard.player_id);
|
||||
player2->setPlayingState(Player::State::WAITING);
|
||||
players_.push_back(std::move(player2));
|
||||
|
||||
@@ -213,12 +213,12 @@ void Title::printColorValue(const Color& color) {
|
||||
void Title::handleControlKeys(SDL_Keycode key) {
|
||||
switch (key) {
|
||||
case SDLK_1:
|
||||
define_buttons_->enable(Options::gamepads.at(0));
|
||||
define_buttons_->enable(&Options::gamepads.getGamepad(Player::Id::PLAYER1));
|
||||
resetCounter();
|
||||
break;
|
||||
|
||||
case SDLK_2:
|
||||
define_buttons_->enable(Options::gamepads.at(1));
|
||||
define_buttons_->enable(&Options::gamepads.getGamepad(Player::Id::PLAYER2));
|
||||
resetCounter();
|
||||
break;
|
||||
|
||||
@@ -263,13 +263,13 @@ auto Title::shouldSkipInputCheck() const -> bool {
|
||||
|
||||
void Title::processControllerInputs() {
|
||||
for (const auto& controller : Options::gamepads) {
|
||||
if (isStartButtonPressed(controller)) {
|
||||
handleStartButtonPress(controller);
|
||||
if (isStartButtonPressed(&controller)) {
|
||||
handleStartButtonPress(&controller);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
auto Title::isStartButtonPressed(std::shared_ptr<Options::Gamepad> controller) -> bool {
|
||||
auto Title::isStartButtonPressed(const Options::Gamepad *controller) -> bool {
|
||||
return Input::get()->checkAction(
|
||||
Input::Action::START,
|
||||
Input::DO_NOT_ALLOW_REPEAT,
|
||||
@@ -277,7 +277,7 @@ auto Title::isStartButtonPressed(std::shared_ptr<Options::Gamepad> controller) -
|
||||
controller->instance);
|
||||
}
|
||||
|
||||
void Title::handleStartButtonPress(std::shared_ptr<Options::Gamepad> controller) {
|
||||
void Title::handleStartButtonPress(const Options::Gamepad *controller) {
|
||||
if (!canProcessStartButton()) {
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -93,8 +93,8 @@ class Title {
|
||||
void handleControlKeys(SDL_Keycode key); // Maneja las teclas de control específicas
|
||||
[[nodiscard]] auto shouldSkipInputCheck() const -> bool; // Determina si se debe omitir la comprobación de entrada
|
||||
void processControllerInputs(); // Procesa las entradas de los mandos
|
||||
[[nodiscard]] static auto isStartButtonPressed(std::shared_ptr<Options::Gamepad> controller) -> bool; // Comprueba si se ha pulsado el botón Start
|
||||
void handleStartButtonPress(std::shared_ptr<Options::Gamepad> controller); // Maneja la pulsación del botón Start
|
||||
[[nodiscard]] static auto isStartButtonPressed(const Options::Gamepad *controller) -> bool; // Comprueba si se ha pulsado el botón Start
|
||||
void handleStartButtonPress(const Options::Gamepad *controller); // Maneja la pulsación del botón Start
|
||||
[[nodiscard]] auto canProcessStartButton() const -> bool; // Verifica si se puede procesar la pulsación del botón Start
|
||||
void processPlayer1Start(); // Procesa el inicio del jugador 1
|
||||
void processPlayer2Start(); // Procesa el inicio del jugador 2
|
||||
|
||||
Reference in New Issue
Block a user