68 lines
1.9 KiB
C++
68 lines
1.9 KiB
C++
#pragma once
|
||
|
||
#include <SDL2/SDL.h>
|
||
#include "input.h"
|
||
#include "text.h"
|
||
#include "lang.h"
|
||
|
||
struct db_button_t
|
||
{
|
||
std::string label; // Texto en pantalla para el botón
|
||
inputs_e input; // Input asociado
|
||
SDL_GameControllerButton button; // Botón del mando correspondiente
|
||
};
|
||
|
||
// Clase Bullet
|
||
class DefineButtons
|
||
{
|
||
private:
|
||
// Objetos
|
||
Input *input; // Objeto pata gestionar la entrada
|
||
Text *text; // Objeto para escribir texto
|
||
|
||
// Variables
|
||
bool enabled; // Indica si el objeto está habilitado
|
||
int x; // Posición donde dibujar el texto
|
||
int y; // Posición donde dibujar el texto
|
||
std::vector<db_button_t> buttons; // Vector con las nuevas definiciones de botones/acciones
|
||
int indexController; // Indice del controlador a reasignar
|
||
int indexButton; // Indice para saber qué bot´çon se está definiendo
|
||
std::vector<std::string> controllerNames; // Nombres de los mandos
|
||
|
||
// Incrementa el indice de los botones
|
||
void incIndexButton();
|
||
|
||
// Comprueba el botón que se ha pulsado
|
||
void doControllerButtonDown(SDL_ControllerButtonEvent *event);
|
||
|
||
// Asigna los botones definidos al input
|
||
void bindButtons();
|
||
|
||
// Guarda los cambios en las opciones
|
||
void saveBindingsToOptions();
|
||
|
||
public:
|
||
// Constructor
|
||
DefineButtons(Input *input, Text *text);
|
||
|
||
// Destructor
|
||
~DefineButtons();
|
||
|
||
// Actualiza las variables del objeto
|
||
void update();
|
||
|
||
// Dibuja el objeto en pantalla
|
||
void render();
|
||
|
||
// Comprueba las entradas
|
||
void checkInput();
|
||
|
||
// Habilita el objeto
|
||
bool enable(int index);
|
||
|
||
// Comprueba si está habilitado
|
||
bool isEnabled();
|
||
|
||
// Intercambia los jugadores asignados a los dos primeros mandos
|
||
void swapControllers();
|
||
}; |