fix: desbordamiento de indice en el vector de gamecontrollers en la clase input
This commit is contained in:
@@ -21,6 +21,7 @@ Input::Input(std::string file)
|
||||
verbose = true;
|
||||
enabled = true;
|
||||
|
||||
// Listado de los inputs usados para jugar, excluyendo botones para la interfaz
|
||||
gameInputs.clear();
|
||||
gameInputs.push_back(input_fire_left);
|
||||
gameInputs.push_back(input_fire_center);
|
||||
@@ -30,6 +31,7 @@ Input::Input(std::string file)
|
||||
gameInputs.push_back(input_left);
|
||||
gameInputs.push_back(input_right);
|
||||
|
||||
// Listado de los inputs para jugar que utilizan botones, ni palancas ni crucetas
|
||||
buttonInputs.clear();
|
||||
buttonInputs.push_back(input_fire_left);
|
||||
buttonInputs.push_back(input_fire_center);
|
||||
@@ -61,7 +63,7 @@ void Input::bindGameControllerButton(inputs_e input, SDL_GameControllerButton bu
|
||||
// Comprueba si un input esta activo
|
||||
bool Input::checkInput(inputs_e input, bool repeat, int device, int index)
|
||||
{
|
||||
if (!enabled)
|
||||
if (!enabled || index >= numGamepads)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -7,6 +7,15 @@
|
||||
#ifndef INPUT_H
|
||||
#define INPUT_H
|
||||
|
||||
/*
|
||||
connectedControllers es un vector donde estan todos los mandos encontrados [0 .. n]
|
||||
checkInput requiere de un indice para comprobar las pulsaciónes de un controlador en concreto [0 .. n]
|
||||
device contiene el tipo de dispositivo a comprobar:
|
||||
INPUT_USE_KEYBOARD solo mirará el teclado
|
||||
INPUT_USE_GAMECONTROLLER solo mirará el controlador especificado (Si no se especifica, el primero)
|
||||
INPUT_USE_ANY mirará tanto el teclado como el PRIMER controlador
|
||||
*/
|
||||
|
||||
enum inputs_e
|
||||
{
|
||||
// Inputs obligatorios
|
||||
|
||||
Reference in New Issue
Block a user