Files
coffee_crisis_arcade_edition/source/define_buttons.h

70 lines
2.0 KiB
C++
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#pragma once
#include <SDL2/SDL.h>
#include "input.h"
#include "text.h"
#include "const.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
section_t *section; // Indicador para el bucle del titulo
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, section_t *section);
// 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();
};